@nowline/embed 0.4.1 → 0.5.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.
- package/README.md +14 -26
- package/dist/auto-scan.d.ts +11 -0
- package/dist/auto-scan.d.ts.map +1 -1
- package/dist/auto-scan.js +28 -0
- package/dist/auto-scan.js.map +1 -1
- package/dist/index.d.ts +18 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -20
- package/dist/index.js.map +1 -1
- package/dist/meta.json +116 -59
- package/dist/nowline.esm.js +1020 -133
- package/dist/nowline.esm.js.map +4 -4
- package/dist/nowline.min.js +82 -82
- package/dist/nowline.min.js.map +4 -4
- package/dist/share.d.ts +45 -0
- package/dist/share.d.ts.map +1 -0
- package/dist/share.js +75 -0
- package/dist/share.js.map +1 -0
- package/dist/theme.d.ts +3 -3
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +5 -3
- package/dist/theme.js.map +1 -1
- package/package.json +6 -7
- package/src/auto-scan.ts +42 -0
- package/src/index.ts +43 -31
- package/src/share.ts +108 -0
- package/src/theme.ts +7 -5
- package/dist/auth/allowlist.d.ts +0 -20
- package/dist/auth/allowlist.d.ts.map +0 -1
- package/dist/auth/allowlist.js +0 -33
- package/dist/auth/allowlist.js.map +0 -1
- package/dist/auth/env.d.ts +0 -23
- package/dist/auth/env.d.ts.map +0 -1
- package/dist/auth/env.js +0 -24
- package/dist/auth/env.js.map +0 -1
- package/dist/auth/firebase-auth.client.d.ts +0 -21
- package/dist/auth/firebase-auth.client.d.ts.map +0 -1
- package/dist/auth/firebase-auth.client.js +0 -142
- package/dist/auth/firebase-auth.client.js.map +0 -1
- package/src/auth/allowlist.ts +0 -32
- package/src/auth/env.ts +0 -37
- package/src/auth/firebase-auth.client.ts +0 -174
package/README.md
CHANGED
|
@@ -8,25 +8,17 @@ tag and Nowline blocks light up.
|
|
|
8
8
|
## Quick start
|
|
9
9
|
|
|
10
10
|
```html
|
|
11
|
-
<!-- pin
|
|
12
|
-
<script src="https://
|
|
11
|
+
<!-- pin an exact version in production -->
|
|
12
|
+
<script src="https://cdn.jsdelivr.net/npm/@nowline/embed@0.4.2/dist/nowline.min.js"></script>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
That's it. Every `<pre><code class="language-nowline">…</code></pre>`
|
|
16
16
|
block on the page renders on `DOMContentLoaded`.
|
|
17
17
|
|
|
18
|
-
> **Status note (m4 in progress):** the bundle is published to npm
|
|
19
|
-
> today, but the branded `embed.nowline.io` CDN deploy is still
|
|
20
|
-
> pending — see [`specs/handoffs/handoff-m4-embed.md`](../../specs/handoffs/handoff-m4-embed.md)
|
|
21
|
-
> "Carried forward". Until that lands, install via npm and serve the
|
|
22
|
-
> bundle yourself (see [ESM consumers](#esm-consumers) below) or
|
|
23
|
-
> drop in `import { initialize } from '@nowline/embed'` from your
|
|
24
|
-
> app bundle.
|
|
25
|
-
|
|
26
18
|
## Configuration
|
|
27
19
|
|
|
28
20
|
```html
|
|
29
|
-
<script src="https://
|
|
21
|
+
<script src="https://cdn.jsdelivr.net/npm/@nowline/embed@0.4.2/dist/nowline.min.js"></script>
|
|
30
22
|
<script>
|
|
31
23
|
nowline.initialize({
|
|
32
24
|
theme: 'dark', // 'light' | 'dark' | 'auto' (reads prefers-color-scheme once)
|
|
@@ -49,7 +41,7 @@ Theme precedence (highest to lowest):
|
|
|
49
41
|
For dynamically loaded blocks or custom containers:
|
|
50
42
|
|
|
51
43
|
```html
|
|
52
|
-
<script src="https://
|
|
44
|
+
<script src="https://cdn.jsdelivr.net/npm/@nowline/embed@0.4.2/dist/nowline.min.js"></script>
|
|
53
45
|
<script>
|
|
54
46
|
const svg = await nowline.render(`
|
|
55
47
|
roadmap "My Roadmap"
|
|
@@ -68,25 +60,21 @@ mutates.
|
|
|
68
60
|
|
|
69
61
|
## CDN URLs
|
|
70
62
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
See [`specs/embed.md`](../../specs/embed.md) "Distribution" for the
|
|
74
|
-
full URL matrix (immutable patch, mutable minor, `latest`, dev
|
|
75
|
-
channel, per-PR ephemeral previews) and cache-control posture.
|
|
63
|
+
jsDelivr is the documented CDN channel. The bytes are served directly
|
|
64
|
+
from the npm tarball — byte-identical to `npm pack @nowline/embed@X.Y.Z`.
|
|
76
65
|
|
|
77
66
|
| URL pattern | Stability | Audience |
|
|
78
67
|
|-------------|-----------|----------|
|
|
79
|
-
| `https://
|
|
80
|
-
| `https://
|
|
81
|
-
| `https://
|
|
82
|
-
| `https://
|
|
68
|
+
| `https://cdn.jsdelivr.net/npm/@nowline/embed@X.Y.Z/dist/nowline.min.js` | immutable per patch | production embedders pinning a known-good build |
|
|
69
|
+
| `https://cdn.jsdelivr.net/npm/@nowline/embed@X.Y/dist/nowline.min.js` | mutable within minor | embedders who want patch fixes auto-rolled in (pre-1.0 the minor is the breaking-change boundary) |
|
|
70
|
+
| `https://cdn.jsdelivr.net/npm/@nowline/embed/dist/nowline.min.js` | mutable, latest stable | docs, demos, prototypes |
|
|
71
|
+
| `https://cdn.jsdelivr.net/npm/@nowline/embed@next/dist/nowline.min.js` | HEAD-tracking canary (`0.0.0-dev.*`) | "next" preview, opt-in only |
|
|
83
72
|
|
|
84
|
-
|
|
85
|
-
your roadmap.
|
|
73
|
+
unpkg also works (`https://unpkg.com/@nowline/embed@X.Y.Z/dist/nowline.min.js`).
|
|
86
74
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
75
|
+
Pin the version in production so a release does not silently re-render
|
|
76
|
+
your roadmap. See [`specs/embed.md`](../../specs/embed.md) for the
|
|
77
|
+
full distribution spec.
|
|
90
78
|
|
|
91
79
|
## Limitations
|
|
92
80
|
|
package/dist/auto-scan.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { ThemeName } from '@nowline/layout';
|
|
2
|
+
import { type ShareOption } from './share.js';
|
|
2
3
|
export interface AutoScanInputs {
|
|
3
4
|
selector: string;
|
|
4
5
|
theme?: ThemeName;
|
|
5
6
|
locale?: string;
|
|
6
7
|
width?: number;
|
|
7
8
|
today?: Date;
|
|
9
|
+
/**
|
|
10
|
+
* Controls the "Share on Nowline" anchor appended after each rendered
|
|
11
|
+
* SVG. Defaults to `true` when omitted (mirrors the config default).
|
|
12
|
+
*/
|
|
13
|
+
share?: ShareOption;
|
|
14
|
+
/**
|
|
15
|
+
* Global source URL for all blocks. Per-block `data-nowline-source-url`
|
|
16
|
+
* overrides this for individual blocks.
|
|
17
|
+
*/
|
|
18
|
+
sourceUrl?: string;
|
|
8
19
|
/**
|
|
9
20
|
* Document to scan. Defaults to `globalThis.document`. Tests inject
|
|
10
21
|
* a happy-dom document; the IIFE running on a real page picks up
|
package/dist/auto-scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-scan.d.ts","sourceRoot":"","sources":["../src/auto-scan.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-scan.d.ts","sourceRoot":"","sources":["../src/auto-scan.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA0EjF;AA8BD,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
|
package/dist/auto-scan.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// with its rendered SVG. Each block gets a unique `idPrefix` so two
|
|
4
4
|
// roadmaps on the same page never share `<style>` ids.
|
|
5
5
|
import { renderSource } from './pipeline.js';
|
|
6
|
+
import { buildShareLink } from './share.js';
|
|
6
7
|
let runCounter = 0;
|
|
7
8
|
export async function runAutoScan(inputs) {
|
|
8
9
|
const doc = inputs.document ?? globalThis.document;
|
|
@@ -13,6 +14,8 @@ export async function runAutoScan(inputs) {
|
|
|
13
14
|
let rendered = 0;
|
|
14
15
|
let failed = 0;
|
|
15
16
|
const baseRunId = ++runCounter;
|
|
17
|
+
// share defaults to true when omitted (mirrors config.share default)
|
|
18
|
+
const share = inputs.share ?? true;
|
|
16
19
|
const tasks = [];
|
|
17
20
|
let blockIndex = 0;
|
|
18
21
|
for (const code of Array.from(blocks)) {
|
|
@@ -29,9 +32,34 @@ export async function runAutoScan(inputs) {
|
|
|
29
32
|
today: inputs.today,
|
|
30
33
|
idPrefix,
|
|
31
34
|
};
|
|
35
|
+
// Capture DOM position before the async render. outerHTML replacement
|
|
36
|
+
// detaches `target` from the tree, so parent and nextSibling must be
|
|
37
|
+
// read now. The share anchor is inserted at the saved nextSibling
|
|
38
|
+
// position, which lands it as the immediate next sibling of the SVG.
|
|
39
|
+
const parent = target.parentElement;
|
|
40
|
+
const nextSibling = target.nextSibling;
|
|
41
|
+
// Per-block resolution order: data-nowline-source-url → global sourceUrl
|
|
42
|
+
const perBlockUrl = code.getAttribute('data-nowline-source-url') ?? undefined;
|
|
43
|
+
const resolvedSourceUrl = perBlockUrl ?? inputs.sourceUrl;
|
|
32
44
|
tasks.push(renderSource(source, opts).then((svg) => {
|
|
33
45
|
replaceWithSvg(target, svg);
|
|
34
46
|
rendered++;
|
|
47
|
+
if (parent !== null) {
|
|
48
|
+
const href = buildShareLink({
|
|
49
|
+
source,
|
|
50
|
+
sourceUrl: resolvedSourceUrl,
|
|
51
|
+
share,
|
|
52
|
+
});
|
|
53
|
+
if (href !== null) {
|
|
54
|
+
const a = doc.createElement('a');
|
|
55
|
+
a.className = 'nowline-share';
|
|
56
|
+
a.href = href;
|
|
57
|
+
a.target = '_blank';
|
|
58
|
+
a.rel = 'noopener noreferrer';
|
|
59
|
+
a.textContent = 'Share on Nowline';
|
|
60
|
+
parent.insertBefore(a, nextSibling);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
35
63
|
}, (err) => {
|
|
36
64
|
failed++;
|
|
37
65
|
console.error('nowline: render failed', err);
|
package/dist/auto-scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-scan.js","sourceRoot":"","sources":["../src/auto-scan.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,oEAAoE;AACpE,uDAAuD;AAGvD,OAAO,EAA2B,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"auto-scan.js","sourceRoot":"","sources":["../src/auto-scan.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,oEAAoE;AACpE,uDAAuD;AAGvD,OAAO,EAA2B,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAiC9D,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAsB;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,IAAK,UAAsC,CAAC,QAAQ,CAAC;IAChF,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAc,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,SAAS,GAAG,EAAE,UAAU,CAAC;IAE/B,qEAAqE;IACrE,MAAM,KAAK,GAAgB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;IAEhD,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,SAAS;QACb,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,OAAO,SAAS,IAAI,UAAU,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,GAAuB;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ;SACX,CAAC;QAEF,sEAAsE;QACtE,qEAAqE;QACrE,kEAAkE;QAClE,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEvC,yEAAyE;QACzE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,SAAS,CAAC;QAC9E,MAAM,iBAAiB,GAAG,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC;QAE1D,KAAK,CAAC,IAAI,CACN,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3B,CAAC,GAAG,EAAE,EAAE;YACJ,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5B,QAAQ,EAAE,CAAC;YACX,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,cAAc,CAAC;oBACxB,MAAM;oBACN,SAAS,EAAE,iBAAiB;oBAC5B,KAAK;iBACR,CAAC,CAAC;gBACH,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChB,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC,CAAC,SAAS,GAAG,eAAe,CAAC;oBAC9B,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACpB,CAAC,CAAC,GAAG,GAAG,qBAAqB,CAAC;oBAC9B,CAAC,CAAC,WAAW,GAAG,kBAAkB,CAAC;oBACnC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;QACL,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;YACb,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC,CACJ,CACJ,CAAC;IACN,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,qDAAqD;AACrD,uEAAuE;AACvE,uEAAuE;AACvE,qEAAqE;AACrE,mEAAmE;AACnE,UAAU;AACV,SAAS,qBAAqB,CAAC,OAAoB;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACtC,qEAAqE;IACrE,mEAAmE;IACnE,mBAAmB;IACnB,OAAO,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAE,GAAW;IACpD,oEAAoE;IACpE,iEAAiE;IACjE,oEAAoE;IACpE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,uBAAuB;IACnC,UAAU,GAAG,CAAC,CAAC;AACnB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type AutoScanInputs, type AutoScanResult } from './auto-scan.js';
|
|
2
2
|
import { type EmbedParseResult, EmbedRenderError, type EmbedRenderOptions } from './pipeline.js';
|
|
3
|
+
import type { ShareOption } from './share.js';
|
|
3
4
|
import { type EmbedTheme } from './theme.js';
|
|
4
|
-
export { type AutoScanResult, type EmbedParseResult, EmbedRenderError, type EmbedTheme };
|
|
5
|
+
export { type AutoScanResult, type EmbedParseResult, EmbedRenderError, type EmbedTheme, type ShareOption, };
|
|
5
6
|
/**
|
|
6
7
|
* Bundle provenance, mirroring the legal-comment banner that
|
|
7
8
|
* `scripts/bundle.mjs` injects at the top of every artifact:
|
|
@@ -35,6 +36,22 @@ export interface InitializeOptions {
|
|
|
35
36
|
width?: number;
|
|
36
37
|
/** Pin a `today` for deterministic snapshots; defaults to live `new Date()` per render. */
|
|
37
38
|
today?: Date;
|
|
39
|
+
/**
|
|
40
|
+
* Controls the "Share on Nowline" anchor appended after each rendered SVG.
|
|
41
|
+
* - `true` (default) — link to the Free app open route
|
|
42
|
+
* (`https://free.nowline.io/open`).
|
|
43
|
+
* - string — a custom base URL (may include a path); the fragment is appended.
|
|
44
|
+
* - `false` / `'none'` — no anchor rendered.
|
|
45
|
+
* - `{ textUrl, remoteUrl }` — template with `{text}` / `{url}` substitution.
|
|
46
|
+
*/
|
|
47
|
+
share?: ShareOption;
|
|
48
|
+
/**
|
|
49
|
+
* Global source URL for all blocks on the page. When set, share links
|
|
50
|
+
* use `#url=<sourceUrl>` instead of `#text=` (inline encoding).
|
|
51
|
+
* Per-block `data-nowline-source-url` overrides this for individual blocks.
|
|
52
|
+
* Only `https:` URLs are emitted as `#url=`.
|
|
53
|
+
*/
|
|
54
|
+
sourceUrl?: string;
|
|
38
55
|
}
|
|
39
56
|
export declare function initialize(options?: InitializeOptions): void;
|
|
40
57
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,cAAc,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEH,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,kBAAkB,EAG1B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,YAAY,CAAC;AAEjF,OAAO,EACH,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACnB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,EAAE,MACoE,CAAC;AAC3F,eAAO,MAAM,GAAG,EAAE,MACkE,CAAC;AAIrF,MAAM,WAAW,iBAAiB;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,KAAK,CAAC,EAAE,IAAI,CAAC;IACb;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AA4BD,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAgBhE;AAYD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM9F;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAErE;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAYvF;AAED,4DAA4D;AAC5D,eAAO,MAAM,GAAG,aAAO,CAAC;AAiCxB,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
|
package/dist/index.js
CHANGED
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
//
|
|
5
5
|
// The IIFE bundle exposes everything below as `window.nowline.*`. ESM
|
|
6
6
|
// consumers import named exports from the package root.
|
|
7
|
-
import { EMBED_SHA, EMBED_VERSION } from './auth/env.js';
|
|
8
7
|
import { __resetAutoScanForTests, runAutoScan, } from './auto-scan.js';
|
|
9
8
|
import { __resetEmbedPipelineForTests, EmbedRenderError, parseSource, renderSource, } from './pipeline.js';
|
|
10
9
|
import { effectiveTheme, resolveSystemTheme } from './theme.js';
|
|
11
|
-
export { EmbedRenderError };
|
|
10
|
+
export { EmbedRenderError, };
|
|
12
11
|
/**
|
|
13
12
|
* Bundle provenance, mirroring the legal-comment banner that
|
|
14
13
|
* `scripts/bundle.mjs` injects at the top of every artifact:
|
|
@@ -18,14 +17,15 @@ export { EmbedRenderError };
|
|
|
18
17
|
* pages and bug reports can identify the exact build without scraping
|
|
19
18
|
* the comment banner.
|
|
20
19
|
*/
|
|
21
|
-
export const version =
|
|
22
|
-
export const sha =
|
|
20
|
+
export const version = typeof __NOWLINE_EMBED_VERSION__ !== 'undefined' ? __NOWLINE_EMBED_VERSION__ : '0.0.0';
|
|
21
|
+
export const sha = typeof __NOWLINE_EMBED_SHA__ !== 'undefined' ? __NOWLINE_EMBED_SHA__ : 'unknown';
|
|
23
22
|
const DEFAULT_SELECTOR = 'pre code.language-nowline, code.language-nowline';
|
|
24
23
|
const initialConfig = {
|
|
25
24
|
theme: 'auto',
|
|
26
25
|
startOnLoad: true,
|
|
27
26
|
selector: DEFAULT_SELECTOR,
|
|
28
27
|
systemTheme: resolveSystemTheme(),
|
|
28
|
+
share: true,
|
|
29
29
|
};
|
|
30
30
|
let config = { ...initialConfig };
|
|
31
31
|
let autoStartScheduled = false;
|
|
@@ -37,6 +37,8 @@ export function initialize(options = {}) {
|
|
|
37
37
|
locale: options.locale ?? config.locale,
|
|
38
38
|
width: options.width ?? config.width,
|
|
39
39
|
today: options.today ?? config.today,
|
|
40
|
+
share: options.share ?? config.share,
|
|
41
|
+
sourceUrl: options.sourceUrl ?? config.sourceUrl,
|
|
40
42
|
// Re-read `prefers-color-scheme` on every initialize() so callers
|
|
41
43
|
// who explicitly want the latest system theme can ask for it by
|
|
42
44
|
// calling initialize() again. Auto-scan paths still use the value
|
|
@@ -85,6 +87,8 @@ export async function init(overrides) {
|
|
|
85
87
|
locale: overrides?.locale ?? config.locale,
|
|
86
88
|
width: overrides?.width ?? config.width,
|
|
87
89
|
today: overrides?.today ?? config.today,
|
|
90
|
+
share: overrides?.share ?? config.share,
|
|
91
|
+
sourceUrl: overrides?.sourceUrl ?? config.sourceUrl,
|
|
88
92
|
document: overrides?.document,
|
|
89
93
|
};
|
|
90
94
|
return runAutoScan(inputs);
|
|
@@ -102,22 +106,6 @@ export const run = init;
|
|
|
102
106
|
// the auto-scan branch.
|
|
103
107
|
if (typeof document !== 'undefined' && !autoStartScheduled) {
|
|
104
108
|
autoStartScheduled = true;
|
|
105
|
-
// Dev-only Firebase Auth gate (embed.nowline.dev). The condition
|
|
106
|
-
// reads `__NOWLINE_EMBED_ENV__` directly so esbuild's `define`
|
|
107
|
-
// substitutes a literal string at minify time — the prod bundle
|
|
108
|
-
// sees `if ("prod" === "dev")` → `if (false)` and DCEs the dynamic
|
|
109
|
-
// import that pulls in `firebase/app` + `firebase/auth`.
|
|
110
|
-
// `check-size.mjs` asserts no `firebase` literal survives in the
|
|
111
|
-
// prod IIFE as a belt-and-suspenders check.
|
|
112
|
-
if (typeof __NOWLINE_EMBED_ENV__ !== 'undefined' && __NOWLINE_EMBED_ENV__ === 'dev') {
|
|
113
|
-
void import('./auth/firebase-auth.client.js')
|
|
114
|
-
.then(({ startDevAuthGate }) => {
|
|
115
|
-
startDevAuthGate();
|
|
116
|
-
})
|
|
117
|
-
.catch((err) => {
|
|
118
|
-
console.error('[nowline] dev auth gate failed to load:', err);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
109
|
const start = () => {
|
|
122
110
|
if (!config.startOnLoad)
|
|
123
111
|
return;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,uEAAuE;AACvE,0CAA0C;AAC1C,EAAE;AACF,sEAAsE;AACtE,wDAAwD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|