realtimeclipboard 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/core/config.js +18 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "realtimeclipboard",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Live clipboard sharing. Static frontend of native ES modules — development needs no build, and `npm run build` exists only to assemble the deploy. Nothing here is needed to READ the app.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -441,14 +441,18 @@ export const IMAGES = {
441
441
  * checkout and a self-hosted deploy load no third-party script at all. Filling
442
442
  * these in is the switch that turns tracking and ads on for a build.
443
443
  *
444
- * !! These IDs put third-party script in EVERY document, app.html included.
445
- * That was a deliberate call and it costs the app a security property it used
446
- * to have docs/ARCHITECTURE.md §5 and src/ui/features/ads.js record what.
447
- * Anything running in app.html can read location.hash and the decrypted
448
- * clipboard in the DOM; contextual ad targeting reads page content by design.
444
+ * !! Analytics loads everywhere; ADSENSE loads on the 19 crawlable pages and
445
+ * never in app.html, which holds the share key in its fragment and decrypted
446
+ * clipboard text in its DOM. The difference is who controls what gets reported:
447
+ * gtag takes `page_location` from us, so `pageLocation()` below strips the key
448
+ * out of it, while the ad tag reports the URL itself with no override. That
449
+ * boundary is enforced by app.html's own meta CSP naming no ad origin — not by
450
+ * this file, and not by anyone remembering. docs/ARCHITECTURE.md §5 and
451
+ * src/ui/features/ads.js have the argument. !!
449
452
  *
450
- * Adding an origin here means adding it to the CSP in _headers AND in every
451
- * page's meta tag, which tools/check/site-check.mjs asserts agree.
453
+ * Adding an origin means adding it to the CSP in _headers AND in the crawlable
454
+ * pages' meta tags, which tools/check/site-check.mjs asserts agree — and
455
+ * leaving app.html's alone, which it also asserts.
452
456
  */
453
457
  export const GOOGLE = {
454
458
  /** GA4 measurement ID, "G-XXXXXXXXXX". Admin → Data streams → your stream. */
@@ -465,8 +469,13 @@ export const GOOGLE = {
465
469
  LEADERBOARD: "7038244690",
466
470
  /** index.html, the 300×600 rail beside the FAQ. */
467
471
  RAIL: "8299355473",
468
- /** app.html, below the editor. */
469
- APP: "6948680552",
472
+ /**
473
+ * There is deliberately no APP slot. A unit exists in the AdSense account
474
+ * for it (6948680552) and is left unused: app.html carries the share key in
475
+ * its fragment and decrypted clipboard text in its DOM, and AdSense reports
476
+ * the page URL with no way to strip it. src/ui/features/ads.js has the
477
+ * argument; the app's own CSP is what enforces it.
478
+ */
470
479
  },
471
480
  };
472
481