Skip to content

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - haloydev/npm: npm distribution for haloy · GitHub
Skip to content

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

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

Repository files navigation

haloy-npm

npm distribution for Haloy, a simple deployment tool for Docker-based applications.

This repository contains the npm packages that wrap the pre-built Go binaries using the platform-specific optional dependencies pattern.

Packages

PackageDescription
haloyMain user-facing package with JS wrapper
@haloydev/cli-darwin-arm64macOS Apple Silicon binary
@haloydev/cli-darwin-x64macOS Intel binary
@haloydev/cli-linux-arm64Linux ARM64 binary
@haloydev/cli-linux-x64Linux x64 binary
@haloydev/cli-win32-arm64Windows ARM64 binary
@haloydev/cli-win32-x64Windows x64 binary

How It Works

The main haloy package declares all platform-specific packages as optional dependencies. When installed, npm will only download the binary for the current platform due to the os and cpu fields in each platform package.

The JS wrapper in haloy detects the current platform and executes the appropriate binary.

Development

Prerequisites

  • Node.js 16+
  • pnpm 9+

Local Testing

  1. Download binaries for a specific version:
./scripts/download-binaries.sh 0.3.5
  1. Install dependencies:
pnpm install
  1. Test the CLI:
node packages/haloy/bin/haloy version

Publishing

Publishing is automated via GitHub Actions. When the main haloydev/haloy repository creates a new release, it triggers the publish workflow in this repository via repository_dispatch.

For manual publishing:

./scripts/download-binaries.sh <version>
./scripts/publish.sh <version>

Setup Checklist (for new repositories)

  1. npm organization: Create haloydev org at https://www.npmjs.com/org/create
  2. Package names: Verify haloy (unscoped) is available
  3. npm token: Generate automation token at npm with publish access
  4. GitHub secrets:
    • haloydev/haloy: Add HALOY_NPM_DISPATCH_TOKEN (GitHub PAT with repo scope)
    • haloydev/haloy-npm: Add NPM_TOKEN (npm automation token)
  5. Main repo CI: Add repository_dispatch step to release workflow:
- name: Trigger npm publishuses: peter-evans/repository-dispatch@v3with:
token: ${{ secrets.HALOY_NPM_DISPATCH_TOKEN }}repository: haloydev/haloy-npmevent-type: releaseclient-payload: '{"version": "${{ github.ref_name }}"}'

License

MIT

About

npm distribution for haloy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages