@lunora/astro 1.0.0-alpha.9 → 1.0.0-alpha.90
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/LICENSE.md +6 -0
- package/dist/index.d.mts +90 -56
- package/dist/index.d.ts +90 -56
- package/dist/index.mjs +1 -2
- package/dist/packem_shared/lunora-D3tdDncx.mjs +6 -0
- package/dist/server.mjs +1 -1
- package/package.json +4 -4
- package/dist/packem_shared/lunora-DCkPGEVa.mjs +0 -15
package/LICENSE.md
CHANGED
|
@@ -103,3 +103,9 @@ Unless required by applicable law or agreed to in writing, software distributed
|
|
|
103
103
|
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
104
|
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
105
|
specific language governing permissions and limitations under the License.
|
|
106
|
+
|
|
107
|
+
<!-- DEPENDENCIES -->
|
|
108
|
+
<!-- /DEPENDENCIES -->
|
|
109
|
+
|
|
110
|
+
<!-- TYPE_DEPENDENCIES -->
|
|
111
|
+
<!-- /TYPE_DEPENDENCIES -->
|
package/dist/index.d.mts
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
export { type FrameworkHostHandler as AstroWorkerHandler, type LunoraWorker as ComposedWorker, type FrameworkWorkerOptions as LunoraOptions, withFrameworkWorker as withLunora } from '@lunora/runtime';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
* (`@lunora/astro/server`) to Astro server endpoints / `.astro` frontmatter.
|
|
11
|
-
*
|
|
12
|
-
* Reactivity itself comes from whichever island adapter the app hydrates with —
|
|
13
|
-
* `@lunora/react`, `@lunora/solid`, `@lunora/svelte`, or `@lunora/vue` — each of
|
|
14
|
-
* which ships its own `hydratePreloaded(preloaded)` for the SSR-seed → live
|
|
15
|
-
* handoff. This package owns the server/composition half only.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Structural subset of Astro's `AstroIntegration`. Declared locally (rather than
|
|
19
|
-
* importing `astro`'s type) so `@lunora/astro`'s public surface stays decoupled
|
|
20
|
-
* from a specific Astro major and type-checks even when `astro` is not installed
|
|
21
|
-
* — `astro` is an *optional* peer here (only the host Astro app pulls it in).
|
|
22
|
-
* The shape is assignable to/from Astro's real `AstroIntegration`, so adding the
|
|
23
|
-
* returned object to `integrations` type-checks in a real Astro project.
|
|
24
|
-
*/
|
|
3
|
+
* Structural subset of Astro's `AstroIntegration`. Declared locally (rather than
|
|
4
|
+
* importing `astro`'s type) so `@lunora/astro`'s public surface stays decoupled
|
|
5
|
+
* from a specific Astro major and type-checks even when `astro` is not installed
|
|
6
|
+
* — `astro` is an *optional* peer here (only the host Astro app pulls it in).
|
|
7
|
+
* The shape is assignable to/from Astro's real `AstroIntegration`, so adding the
|
|
8
|
+
* returned object to `integrations` type-checks in a real Astro project.
|
|
9
|
+
*/
|
|
25
10
|
interface AstroIntegrationLike {
|
|
26
11
|
readonly hooks: {
|
|
27
12
|
readonly [hook: string]: ((...arguments_: never[]) => unknown) | undefined;
|
|
@@ -31,41 +16,90 @@ interface AstroIntegrationLike {
|
|
|
31
16
|
/** Options for the `lunora` integration. */
|
|
32
17
|
interface LunoraIntegrationOptions {
|
|
33
18
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
* Path (or specifier) of the module that calls `withLunora` and is the
|
|
20
|
+
* composed worker's `export default`. Documented for the wiring story; when
|
|
21
|
+
* omitted the integration assumes the conventional `src/worker.ts`.
|
|
22
|
+
*/
|
|
38
23
|
readonly serverEntry?: string;
|
|
39
24
|
}
|
|
40
25
|
/**
|
|
41
|
-
* The Lunora Astro integration. Add it to `astro.config.*`:
|
|
42
|
-
*
|
|
43
|
-
* ```ts
|
|
44
|
-
* import cloudflare from "@astrojs/cloudflare";
|
|
45
|
-
* import { defineConfig } from "astro/config";
|
|
46
|
-
* import { lunora } from "@lunora/astro";
|
|
47
|
-
*
|
|
48
|
-
* export default defineConfig({
|
|
49
|
-
* output: "server",
|
|
50
|
-
* adapter: cloudflare(),
|
|
51
|
-
* integrations: [lunora()],
|
|
52
|
-
* });
|
|
53
|
-
* ```
|
|
54
|
-
*
|
|
55
|
-
* What it does:
|
|
56
|
-
*
|
|
57
|
-
* -
|
|
58
|
-
* `withLunora
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
|
|
26
|
+
* The Lunora Astro integration. Add it to `astro.config.*`:
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* import cloudflare from "@astrojs/cloudflare";
|
|
30
|
+
* import { defineConfig } from "astro/config";
|
|
31
|
+
* import { lunora } from "@lunora/astro";
|
|
32
|
+
*
|
|
33
|
+
* export default defineConfig({
|
|
34
|
+
* output: "server",
|
|
35
|
+
* adapter: cloudflare(),
|
|
36
|
+
* integrations: [lunora()],
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* What it does:
|
|
41
|
+
*
|
|
42
|
+
* - Documents the `serverEntry` (default `src/worker.ts`) where the
|
|
43
|
+
* `withLunora(astroWorker, { shardDO: env.SHARD, … })` composition lives.
|
|
44
|
+
* - Checks, at `astro:config:done`, that `serverEntry` exists and contains an
|
|
45
|
+
* actual `withLunora(...)` CALL (not merely an import of it) — and warns
|
|
46
|
+
* (does not fail the build) when it doesn't, so a missing wrapper is caught
|
|
47
|
+
* at build time instead of shipping a worker where `/_lunora/*` is unrouted
|
|
48
|
+
* and realtime silently 404s.
|
|
49
|
+
*
|
|
50
|
+
* This integration does NOT wrap the server entry itself — no file is written
|
|
51
|
+
* or modified. The load-bearing composition is the `withLunora` call the
|
|
52
|
+
* project author writes at the server-entry boundary (see `withLunora` for the
|
|
53
|
+
* `@astrojs/cloudflare` injection point); this object exists so the wiring is
|
|
54
|
+
* declared in `astro.config` the idiomatic Astro way, checked once at build
|
|
55
|
+
* time, and has a home for future build-time hooks (binding reconcile, dev
|
|
56
|
+
* middleware) without changing the public surface.
|
|
57
|
+
*/
|
|
70
58
|
declare const lunora: (options?: LunoraIntegrationOptions) => AstroIntegrationLike;
|
|
71
|
-
export {
|
|
59
|
+
export {
|
|
60
|
+
/**
|
|
61
|
+
* `@lunora/astro` — the Astro integration for Lunora (PLAN4 class-B:
|
|
62
|
+
* own-CF-adapter, hook-injection composition).
|
|
63
|
+
*
|
|
64
|
+
* Astro is multi-framework at the UI layer, so this package is **not** a new
|
|
65
|
+
* reactive layer. Reactivity comes from whichever island adapter the app
|
|
66
|
+
* hydrates with (`@lunora/react`, `@lunora/solid`, `@lunora/svelte`,
|
|
67
|
+
* `@lunora/vue`). `@lunora/astro` owns two server-side seams instead.
|
|
68
|
+
*
|
|
69
|
+
* Seam 1 — single-worker composition: `withLunora` wraps the Worker
|
|
70
|
+
* `@astrojs/cloudflare` emits so Lunora realtime (`/_lunora/rpc`, `/_lunora/ws`,
|
|
71
|
+
* `/_lunora/admin/*` + `ShardDO`) is mounted *inside* it, while everything else
|
|
72
|
+
* falls through to Astro's SSR handler — one worker, one deploy. `lunora` is the
|
|
73
|
+
* matching `astro.config` integration.
|
|
74
|
+
*
|
|
75
|
+
* Seam 2 — reactive-loader server helpers: the framework-neutral `@lunora/client/ssr`
|
|
76
|
+
* contract (`createServerClient`, `preloadQuery`, `getServerSession`,
|
|
77
|
+
* `serializePreloaded`) is re-exported from `@lunora/astro/server` for use in
|
|
78
|
+
* Astro server endpoints / `.astro` frontmatter. Preload a query there, then
|
|
79
|
+
* hand the `Preloaded` token to your island adapter's `hydratePreloaded` for the
|
|
80
|
+
* "your loaders are live" SSR-seed → live handoff.
|
|
81
|
+
*/
|
|
82
|
+
type AstroIntegrationLike,
|
|
83
|
+
/**
|
|
84
|
+
* `@lunora/astro` — the Astro integration for Lunora (PLAN4 class-B:
|
|
85
|
+
* own-CF-adapter, hook-injection composition).
|
|
86
|
+
*
|
|
87
|
+
* Astro is multi-framework at the UI layer, so this package is **not** a new
|
|
88
|
+
* reactive layer. Reactivity comes from whichever island adapter the app
|
|
89
|
+
* hydrates with (`@lunora/react`, `@lunora/solid`, `@lunora/svelte`,
|
|
90
|
+
* `@lunora/vue`). `@lunora/astro` owns two server-side seams instead.
|
|
91
|
+
*
|
|
92
|
+
* Seam 1 — single-worker composition: `withLunora` wraps the Worker
|
|
93
|
+
* `@astrojs/cloudflare` emits so Lunora realtime (`/_lunora/rpc`, `/_lunora/ws`,
|
|
94
|
+
* `/_lunora/admin/*` + `ShardDO`) is mounted *inside* it, while everything else
|
|
95
|
+
* falls through to Astro's SSR handler — one worker, one deploy. `lunora` is the
|
|
96
|
+
* matching `astro.config` integration.
|
|
97
|
+
*
|
|
98
|
+
* Seam 2 — reactive-loader server helpers: the framework-neutral `@lunora/client/ssr`
|
|
99
|
+
* contract (`createServerClient`, `preloadQuery`, `getServerSession`,
|
|
100
|
+
* `serializePreloaded`) is re-exported from `@lunora/astro/server` for use in
|
|
101
|
+
* Astro server endpoints / `.astro` frontmatter. Preload a query there, then
|
|
102
|
+
* hand the `Preloaded` token to your island adapter's `hydratePreloaded` for the
|
|
103
|
+
* "your loaders are live" SSR-seed → live handoff.
|
|
104
|
+
*/
|
|
105
|
+
type LunoraIntegrationOptions, lunora };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
export { type FrameworkHostHandler as AstroWorkerHandler, type LunoraWorker as ComposedWorker, type FrameworkWorkerOptions as LunoraOptions, withFrameworkWorker as withLunora } from '@lunora/runtime';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
* (`@lunora/astro/server`) to Astro server endpoints / `.astro` frontmatter.
|
|
11
|
-
*
|
|
12
|
-
* Reactivity itself comes from whichever island adapter the app hydrates with —
|
|
13
|
-
* `@lunora/react`, `@lunora/solid`, `@lunora/svelte`, or `@lunora/vue` — each of
|
|
14
|
-
* which ships its own `hydratePreloaded(preloaded)` for the SSR-seed → live
|
|
15
|
-
* handoff. This package owns the server/composition half only.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Structural subset of Astro's `AstroIntegration`. Declared locally (rather than
|
|
19
|
-
* importing `astro`'s type) so `@lunora/astro`'s public surface stays decoupled
|
|
20
|
-
* from a specific Astro major and type-checks even when `astro` is not installed
|
|
21
|
-
* — `astro` is an *optional* peer here (only the host Astro app pulls it in).
|
|
22
|
-
* The shape is assignable to/from Astro's real `AstroIntegration`, so adding the
|
|
23
|
-
* returned object to `integrations` type-checks in a real Astro project.
|
|
24
|
-
*/
|
|
3
|
+
* Structural subset of Astro's `AstroIntegration`. Declared locally (rather than
|
|
4
|
+
* importing `astro`'s type) so `@lunora/astro`'s public surface stays decoupled
|
|
5
|
+
* from a specific Astro major and type-checks even when `astro` is not installed
|
|
6
|
+
* — `astro` is an *optional* peer here (only the host Astro app pulls it in).
|
|
7
|
+
* The shape is assignable to/from Astro's real `AstroIntegration`, so adding the
|
|
8
|
+
* returned object to `integrations` type-checks in a real Astro project.
|
|
9
|
+
*/
|
|
25
10
|
interface AstroIntegrationLike {
|
|
26
11
|
readonly hooks: {
|
|
27
12
|
readonly [hook: string]: ((...arguments_: never[]) => unknown) | undefined;
|
|
@@ -31,41 +16,90 @@ interface AstroIntegrationLike {
|
|
|
31
16
|
/** Options for the `lunora` integration. */
|
|
32
17
|
interface LunoraIntegrationOptions {
|
|
33
18
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
* Path (or specifier) of the module that calls `withLunora` and is the
|
|
20
|
+
* composed worker's `export default`. Documented for the wiring story; when
|
|
21
|
+
* omitted the integration assumes the conventional `src/worker.ts`.
|
|
22
|
+
*/
|
|
38
23
|
readonly serverEntry?: string;
|
|
39
24
|
}
|
|
40
25
|
/**
|
|
41
|
-
* The Lunora Astro integration. Add it to `astro.config.*`:
|
|
42
|
-
*
|
|
43
|
-
* ```ts
|
|
44
|
-
* import cloudflare from "@astrojs/cloudflare";
|
|
45
|
-
* import { defineConfig } from "astro/config";
|
|
46
|
-
* import { lunora } from "@lunora/astro";
|
|
47
|
-
*
|
|
48
|
-
* export default defineConfig({
|
|
49
|
-
* output: "server",
|
|
50
|
-
* adapter: cloudflare(),
|
|
51
|
-
* integrations: [lunora()],
|
|
52
|
-
* });
|
|
53
|
-
* ```
|
|
54
|
-
*
|
|
55
|
-
* What it does:
|
|
56
|
-
*
|
|
57
|
-
* -
|
|
58
|
-
* `withLunora
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
|
|
26
|
+
* The Lunora Astro integration. Add it to `astro.config.*`:
|
|
27
|
+
*
|
|
28
|
+
* ```ts
|
|
29
|
+
* import cloudflare from "@astrojs/cloudflare";
|
|
30
|
+
* import { defineConfig } from "astro/config";
|
|
31
|
+
* import { lunora } from "@lunora/astro";
|
|
32
|
+
*
|
|
33
|
+
* export default defineConfig({
|
|
34
|
+
* output: "server",
|
|
35
|
+
* adapter: cloudflare(),
|
|
36
|
+
* integrations: [lunora()],
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* What it does:
|
|
41
|
+
*
|
|
42
|
+
* - Documents the `serverEntry` (default `src/worker.ts`) where the
|
|
43
|
+
* `withLunora(astroWorker, { shardDO: env.SHARD, … })` composition lives.
|
|
44
|
+
* - Checks, at `astro:config:done`, that `serverEntry` exists and contains an
|
|
45
|
+
* actual `withLunora(...)` CALL (not merely an import of it) — and warns
|
|
46
|
+
* (does not fail the build) when it doesn't, so a missing wrapper is caught
|
|
47
|
+
* at build time instead of shipping a worker where `/_lunora/*` is unrouted
|
|
48
|
+
* and realtime silently 404s.
|
|
49
|
+
*
|
|
50
|
+
* This integration does NOT wrap the server entry itself — no file is written
|
|
51
|
+
* or modified. The load-bearing composition is the `withLunora` call the
|
|
52
|
+
* project author writes at the server-entry boundary (see `withLunora` for the
|
|
53
|
+
* `@astrojs/cloudflare` injection point); this object exists so the wiring is
|
|
54
|
+
* declared in `astro.config` the idiomatic Astro way, checked once at build
|
|
55
|
+
* time, and has a home for future build-time hooks (binding reconcile, dev
|
|
56
|
+
* middleware) without changing the public surface.
|
|
57
|
+
*/
|
|
70
58
|
declare const lunora: (options?: LunoraIntegrationOptions) => AstroIntegrationLike;
|
|
71
|
-
export {
|
|
59
|
+
export {
|
|
60
|
+
/**
|
|
61
|
+
* `@lunora/astro` — the Astro integration for Lunora (PLAN4 class-B:
|
|
62
|
+
* own-CF-adapter, hook-injection composition).
|
|
63
|
+
*
|
|
64
|
+
* Astro is multi-framework at the UI layer, so this package is **not** a new
|
|
65
|
+
* reactive layer. Reactivity comes from whichever island adapter the app
|
|
66
|
+
* hydrates with (`@lunora/react`, `@lunora/solid`, `@lunora/svelte`,
|
|
67
|
+
* `@lunora/vue`). `@lunora/astro` owns two server-side seams instead.
|
|
68
|
+
*
|
|
69
|
+
* Seam 1 — single-worker composition: `withLunora` wraps the Worker
|
|
70
|
+
* `@astrojs/cloudflare` emits so Lunora realtime (`/_lunora/rpc`, `/_lunora/ws`,
|
|
71
|
+
* `/_lunora/admin/*` + `ShardDO`) is mounted *inside* it, while everything else
|
|
72
|
+
* falls through to Astro's SSR handler — one worker, one deploy. `lunora` is the
|
|
73
|
+
* matching `astro.config` integration.
|
|
74
|
+
*
|
|
75
|
+
* Seam 2 — reactive-loader server helpers: the framework-neutral `@lunora/client/ssr`
|
|
76
|
+
* contract (`createServerClient`, `preloadQuery`, `getServerSession`,
|
|
77
|
+
* `serializePreloaded`) is re-exported from `@lunora/astro/server` for use in
|
|
78
|
+
* Astro server endpoints / `.astro` frontmatter. Preload a query there, then
|
|
79
|
+
* hand the `Preloaded` token to your island adapter's `hydratePreloaded` for the
|
|
80
|
+
* "your loaders are live" SSR-seed → live handoff.
|
|
81
|
+
*/
|
|
82
|
+
type AstroIntegrationLike,
|
|
83
|
+
/**
|
|
84
|
+
* `@lunora/astro` — the Astro integration for Lunora (PLAN4 class-B:
|
|
85
|
+
* own-CF-adapter, hook-injection composition).
|
|
86
|
+
*
|
|
87
|
+
* Astro is multi-framework at the UI layer, so this package is **not** a new
|
|
88
|
+
* reactive layer. Reactivity comes from whichever island adapter the app
|
|
89
|
+
* hydrates with (`@lunora/react`, `@lunora/solid`, `@lunora/svelte`,
|
|
90
|
+
* `@lunora/vue`). `@lunora/astro` owns two server-side seams instead.
|
|
91
|
+
*
|
|
92
|
+
* Seam 1 — single-worker composition: `withLunora` wraps the Worker
|
|
93
|
+
* `@astrojs/cloudflare` emits so Lunora realtime (`/_lunora/rpc`, `/_lunora/ws`,
|
|
94
|
+
* `/_lunora/admin/*` + `ShardDO`) is mounted *inside* it, while everything else
|
|
95
|
+
* falls through to Astro's SSR handler — one worker, one deploy. `lunora` is the
|
|
96
|
+
* matching `astro.config` integration.
|
|
97
|
+
*
|
|
98
|
+
* Seam 2 — reactive-loader server helpers: the framework-neutral `@lunora/client/ssr`
|
|
99
|
+
* contract (`createServerClient`, `preloadQuery`, `getServerSession`,
|
|
100
|
+
* `serializePreloaded`) is re-exported from `@lunora/astro/server` for use in
|
|
101
|
+
* Astro server endpoints / `.astro` frontmatter. Preload a query there, then
|
|
102
|
+
* hand the `Preloaded` token to your island adapter's `hydratePreloaded` for the
|
|
103
|
+
* "your loaders are live" SSR-seed → live handoff.
|
|
104
|
+
*/
|
|
105
|
+
type LunoraIntegrationOptions, lunora };
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { withFrameworkWorker as withLunora } from '@lunora/runtime';
|
|
1
|
+
import{lunora as a}from"./packem_shared/lunora-D3tdDncx.mjs";import{withFrameworkWorker as t}from"@lunora/runtime";export{a as lunora,t as withLunora};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{existsSync as h,readFileSync as c}from"node:fs";import{fileURLToPath as w}from"node:url";const i=['import { withLunora } from "@lunora/astro/server";',"","export default withLunora(astroWorker, { shardDO: env.SHARD /* , … */ });"].join(`
|
|
2
|
+
`),d=/\bwithLunora\s*\(/u,y=(u={})=>{const o=(u.serverEntry??"src/worker.ts").trim();return{hooks:{"astro:config:done":(t={})=>{if(o.length===0)throw new TypeError("@lunora/astro: `serverEntry` must be a non-empty path.");const e=t.config?.root;if(e===void 0)return;const n=r=>{t.logger?.warn?t.logger.warn(r):console.warn(r)},a=w(new URL(o,e));if(!h(a)){n(`@lunora/astro: server entry "${o}" not found — add it (or point \`lunora({ serverEntry })\` at the right path) and wrap the Astro worker with \`withLunora\`, or \`/_lunora/*\` (Lunora realtime) will be unrouted:
|
|
3
|
+
|
|
4
|
+
${i}`);return}let s;try{s=c(a,"utf8")}catch(r){const l=r instanceof Error?r.message:String(r);n(`@lunora/astro: could not read server entry "${o}" (${l}) — skipping the \`withLunora\` check.`);return}d.test(s)||n(`@lunora/astro: couldn't find a \`withLunora(...)\` call in the server entry "${o}" — \`/_lunora/*\` (Lunora realtime) will be unrouted and subscriptions will silently 404. Wrap the Astro worker:
|
|
5
|
+
|
|
6
|
+
${i}`)}},name:"@lunora/astro"}};export{y as lunora};
|
package/dist/server.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{createServerClient as d,deserializePreloaded as l,getServerSession as a,preloadQuery as o,preloadedQueryResult as i,serializePreloaded as s}from"@lunora/client/ssr";export{d as createServerClient,l as deserializePreloaded,a as getServerSession,o as preloadQuery,i as preloadedQueryResult,s as serializePreloaded};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lunora/astro",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.90",
|
|
4
4
|
"description": "Astro integration for Lunora — single-worker composition plus reactive-loader server helpers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astro",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@lunora/client": "1.0.0-alpha.
|
|
54
|
-
"@lunora/runtime": "1.0.0-alpha.
|
|
53
|
+
"@lunora/client": "1.0.0-alpha.57",
|
|
54
|
+
"@lunora/runtime": "1.0.0-alpha.72"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"astro": "
|
|
57
|
+
"astro": ">=6.0.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependenciesMeta": {
|
|
60
60
|
"astro": {
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
const lunora = (options = {}) => {
|
|
2
|
-
const serverEntry = options.serverEntry ?? "src/worker.ts";
|
|
3
|
-
return {
|
|
4
|
-
hooks: {
|
|
5
|
-
"astro:config:done": () => {
|
|
6
|
-
if (serverEntry.length === 0) {
|
|
7
|
-
throw new Error("@lunora/astro: `serverEntry` must be a non-empty path.");
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
},
|
|
11
|
-
name: "@lunora/astro"
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export { lunora };
|