@touchcastllc/napster-companion-api-dev 1.5.0-alpha.0 → 1.5.0-alpha.1

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.
@@ -326,17 +326,42 @@ export interface PersistenceOptions {
326
326
  */
327
327
  iframeOnNavigate?: boolean;
328
328
  /**
329
- * URLs/domains excluded from persistence: instead of loading inside the iframe they
330
- * open as a normal top-level navigation (which ends the session). Use for pages that
331
- * can't be framed (auth / SSO) or shouldn't be (checkout, signout). Cross-origin
332
- * links always open top-level by default, so this only matters for same-origin.
329
+ * Pages of YOUR OWN site that must not be framed: they open as a normal top-level
330
+ * navigation, which ends the session. Use for anything that breaks inside an iframe
331
+ * or shouldn't be wrapped — auth / SSO, checkout, sign-out.
332
+ *
333
+ * Same-origin only, and that is not a limitation: anything cross-origin already opens
334
+ * top-level unless you list it under {@link include}.
333
335
  */
334
336
  exclude?: {
335
- /** Hostnames to exclude (exact host or a parent domain, e.g. `"napster.com"`). */
336
- domains?: string[];
337
- /** URLs to exclude: an absolute `"https://…"` (exact/prefix) or a same-origin path prefix. */
337
+ /** An absolute `"https://…"` (exact or prefix) or a same-origin path prefix (`"/checkout"`). */
338
338
  urls?: string[];
339
339
  };
340
+ /**
341
+ * Other people's domains that ARE allowed to load inside the site frame, so following
342
+ * a link to them keeps the session alive instead of ending it. Everything cross-origin
343
+ * breaks out by default; this is the exception list.
344
+ *
345
+ * ```ts
346
+ * include: { domains: ["docs.example.com", "partner.io"] }
347
+ * ```
348
+ *
349
+ * Matches the exact host or any subdomain of it. Only add a domain you control or have
350
+ * agreed with, and know what you give up — inside a cross-origin page the engine can
351
+ * see nothing:
352
+ *
353
+ * - the site must permit framing at all; one that sends `X-Frame-Options: DENY` or a
354
+ * restrictive `frame-ancestors` shows a blank frame, and that cannot be detected;
355
+ * - links clicked in there are not intercepted, so the user can wander anywhere and
356
+ * nothing brings them back;
357
+ * - the address bar stops following the frame, and back/forward stop syncing with it;
358
+ * - ending the session there cannot reload the page the user is on, so it unwraps to
359
+ * the last page of your own site instead.
360
+ */
361
+ include?: {
362
+ /** Hostnames allowed inside the frame (exact host or a parent domain, e.g. `"example.com"`). */
363
+ domains?: string[];
364
+ };
340
365
  /** Value for the site iframe's `allow` attribute (Permissions Policy). Default: `"autoplay; clipboard-write"`. */
341
366
  iframeAllowAttribute?: string;
342
367
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchcastllc/napster-companion-api-dev",
3
- "version": "1.5.0-alpha.0",
3
+ "version": "1.5.0-alpha.1",
4
4
  "keywords": [
5
5
  "napster",
6
6
  "companion-api",