Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/6943-fields-tooling-dirs-out-of-emit.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
---
'@object-ui/fields': patch
---

Stop shipping `dist/__tests__/numberInputBrowserReadings.d.ts` in the published tarball
(objectui#6943). `packages/fields/tsconfig.json` now excludes the tooling DIRECTORIES
(`__tests__`, `__mocks__`, `__benchmarks__`), not just the `*.test.*` NAME.

`numberInputBrowserReadings.ts` holds the measured Chromium/happy-dom readings the number
widget suites share. It is deliberately not a `*.test.ts` — it carries no assertions — so
the name-only exclude list did not catch it, and it was emitted into `dist` and published
while its 79 neighbours in the same directory were kept out. That made
`check:published-dist` red on `main`, and because the same script is the first link in
`changeset:publish`, it also failed the publish command at its first step.

This is the third instance of the same name-versus-directory mismatch (objectui#4006 here,
objectui#4836 in plugin-grid / plugin-view / plugin-designer), so the exclude table is now
the directory convention itself rather than a list of names to extend.

Which program had to be fixed was measured rather than assumed, because this package's
build is `tsc && vite build` and the `tsc` leg inherits the root's `noEmit`: run alone the
`tsc` leg exited 0 and wrote zero files, while `vite build` alone produced the whole
81-file output including the offending declaration. vite-plugin-dts is the emitting
program, and it builds its declaration program from this package's `tsconfig.json`, so
that is where the exclude belongs.

No type coverage moves with the change and no API surface moves: `numberInputBrowserReadings.ts`
is the only file the directory patterns newly remove from the build program, and the
`tsconfig.test.json` chained off `type-check` already reads it as a transitive input of the
three suites that import it. The name patterns stay, because 52 `*.test.ts(x)` files in this
package sit outside any `__tests__/` directory.
39 changes: 38 additions & 1 deletion packages/fields/tsconfig.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,5 +30,42 @@
// Their type coverage did not go away with them: it moved to the
// `tsconfig.test.json` chained off this package's `type-check` script, which
// is what scripts/check-type-check-coverage.mjs verifies.
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]
//
// The exclusions cover TOOLING DIRECTORIES, not just the `*.test.*` name
// (objectui#6943 — the THIRD instance of that mismatch, after objectui#4006
// here and objectui#4836 in plugin-{grid,view,designer}). Which program the
// directories have to be excluded FROM was measured on 56453410f rather than
// assumed, because the comment above says `tsc` here only checks: run alone,
// the `tsc` leg of `build` exited 0 and wrote ZERO files, while `vite build`
// alone produced the whole 81-file output — including
// `dist/__tests__/numberInputBrowserReadings.d.ts`. So vite-plugin-dts is the
// emitting program, and it builds its declaration program from THIS config
// (`dts()` in `vite.config.ts` passes no `exclude` of its own), which is why
// the fix belongs here and not in the plugin options.
//
// That file is not a `*.test.ts` by NAME, so the name-only list let it ship in
// the tarball while its 79 neighbours in the same directory were caught.
//
// The name patterns stay: 52 `*.test.ts(x)` files in this package sit outside
// any `__tests__/` directory, so the directory patterns do not subsume them.
// `__mocks__` / `__benchmarks__` match nothing here today and are listed so
// the table is the directory convention itself — exactly as `TOOLING_FILE` in
// scripts/check-phantom-dependencies.mjs spells it — rather than a list that
// has to be extended the next time such a directory appears.
//
// No type coverage moves with this change. `numberInputBrowserReadings.ts` is
// the only file the directory patterns newly remove from this program, and the
// `tsconfig.test.json` chained off `type-check` already reads it as a
// transitive input of the three suites that import it (measured with
// `tsc -p tsconfig.test.json --listFiles`, before and after), so it needs no
// entry there — the same reason plugin-grid's `explainDouble.ts` needed none.
"exclude": [
"node_modules",
"dist",
"**/__tests__/**",
"**/__mocks__/**",
"**/__benchmarks__/**",
"**/*.test.ts",
"**/*.test.tsx"
]
}
Loading