@ampless/admin 1.0.0-alpha.39 → 1.0.0-alpha.40

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.
@@ -1,4 +1,4 @@
1
- import { NextRequest, NextResponse } from 'next/server';
1
+ import { NextRequest } from 'next/server';
2
2
  import { Admin } from '../index.js';
3
3
  import 'ampless';
4
4
  import '@ampless/runtime';
@@ -8,8 +8,21 @@ import '@aws-amplify/adapter-nextjs';
8
8
  /**
9
9
  * Build the `/api/media/[...path]` route handler. Proxies uploaded
10
10
  * media through Next.js so embedded `<img src>` URLs stay permanent.
11
- * The browser hits `/api/media/<path>`, this route fetches the
12
- * short-lived presigned URL via Amplify SSR, then redirects.
11
+ *
12
+ * Delivery model: small files (<=6 MB) are streamed back through the
13
+ * Lambda response so Amplify Hosting's CloudFront edge cache can
14
+ * serve repeat hits without re-invoking Lambda. Larger files fall
15
+ * back to a 302 presigned redirect (CloudFront miss, but the
16
+ * response stays under the Lambda buffered-response cap). The
17
+ * bucket stays private throughout.
18
+ *
19
+ * Metadata resolution order:
20
+ * 1. `admin.getMediaBySrc(key)` — public-keyed AppSync custom query
21
+ * that returns the persisted `{ size, mimeType, etag }` for the
22
+ * asset. One O(1) DynamoDB Query via the `bySrc` GSI.
23
+ * 2. Amplify SSR HEAD via `getProperties` — fallback for orphan /
24
+ * legacy assets whose Media row was never written. Memoised in
25
+ * the stream-back helper's per-Lambda LRU.
13
26
  *
14
27
  * Used when `cms.config.media.delivery !== 's3-direct'` (default).
15
28
  */
@@ -18,7 +31,7 @@ declare function createMediaProxyRoute(admin: Admin): {
18
31
  params: Promise<{
19
32
  path: string[];
20
33
  }>;
21
- }) => Promise<NextResponse<unknown>>;
34
+ }) => Promise<Response>;
22
35
  };
23
36
 
24
37
  export { createMediaProxyRoute };
package/dist/api/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  // src/api/media-proxy.ts
2
- import { NextResponse } from "next/server";
3
2
  import { cookies } from "next/headers";
4
3
  import { getUrl } from "aws-amplify/storage/server";
4
+ import {
5
+ streamS3Object
6
+ } from "@ampless/runtime";
5
7
  function createMediaProxyRoute(admin) {
6
8
  const { runWithAmplifyServerContext } = admin.amplifyServer;
7
9
  async function GET(_req, ctx) {
@@ -9,33 +11,50 @@ function createMediaProxyRoute(admin) {
9
11
  if (!path.length || path.some(
10
12
  (segment) => !segment || segment === "." || segment === ".." || segment.includes("/") || segment.includes("\\") || segment.includes("\0")
11
13
  )) {
12
- return NextResponse.json({ error: "Invalid path" }, { status: 400 });
13
- }
14
- const objectPath = `public/${path.join("/")}`;
15
- try {
16
- const url = await runWithAmplifyServerContext({
17
- nextServerContext: { cookies },
18
- operation: async (amplifyContext) => {
19
- const result = await getUrl(amplifyContext, {
20
- path: objectPath,
21
- options: { expiresIn: 60 * 60 }
22
- });
23
- return result.url.toString();
24
- }
25
- });
26
- return NextResponse.redirect(url, {
27
- status: 302,
28
- headers: { "Cache-Control": "public, max-age=300" }
14
+ return new Response(JSON.stringify({ error: "Invalid path" }), {
15
+ status: 400,
16
+ headers: { "Content-Type": "application/json" }
29
17
  });
30
- } catch (err) {
31
- return NextResponse.json(
32
- { error: err instanceof Error ? err.message : "Failed to fetch media" },
33
- { status: 404 }
34
- );
35
18
  }
19
+ const key = `public/${path.join("/")}`;
20
+ const persisted = await admin.getMediaBySrc(key);
21
+ const meta = persisted ? {
22
+ size: persisted.size ?? 0,
23
+ mimeType: persisted.mimeType ?? "application/octet-stream",
24
+ etag: typeof persisted.metadata?.etag === "string" ? persisted.metadata.etag : void 0
25
+ } : void 0;
26
+ const opts = {
27
+ cacheControl: "public, max-age=31536000, immutable",
28
+ meta,
29
+ presignedUrlFor: (k) => signMediaUrl({ runWithAmplifyServerContext, key: k })
30
+ };
31
+ return runWithAmplifyServerContext({
32
+ nextServerContext: { cookies },
33
+ operation: (amplifyContext) => streamS3Object(amplifyContext, key, opts)
34
+ });
36
35
  }
37
36
  return { GET };
38
37
  }
38
+ async function signMediaUrl({
39
+ runWithAmplifyServerContext,
40
+ key
41
+ }) {
42
+ try {
43
+ return await runWithAmplifyServerContext({
44
+ nextServerContext: { cookies },
45
+ operation: async (amplifyContext) => {
46
+ const result = await getUrl(amplifyContext, {
47
+ path: key,
48
+ options: { expiresIn: 60 * 60 }
49
+ });
50
+ return result.url.toString();
51
+ }
52
+ });
53
+ } catch (err) {
54
+ console.error(`[media-proxy] presign failed for ${key}:`, err);
55
+ return null;
56
+ }
57
+ }
39
58
  export {
40
59
  createMediaProxyRoute
41
60
  };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  PostForm
4
- } from "./chunk-EBMSICAA.js";
4
+ } from "./chunk-UTQRFC6V.js";
5
5
  import {
6
6
  useT
7
7
  } from "./chunk-TGEPARLA.js";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  PostForm
4
- } from "./chunk-EBMSICAA.js";
4
+ } from "./chunk-UTQRFC6V.js";
5
5
  import {
6
6
  useT
7
7
  } from "./chunk-TGEPARLA.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-C7G5AQ3L.js";
8
8
  import {
9
9
  setAdminCmsConfigClient
10
- } from "./chunk-DB4DA6XR.js";
10
+ } from "./chunk-OMWVBK2C.js";
11
11
  import {
12
12
  setAdminMediaContext
13
13
  } from "./chunk-2ITWLRYF.js";
@@ -1,8 +1,71 @@
1
1
  'use client';
2
+ import {
3
+ publicMediaUrl
4
+ } from "./chunk-2ITWLRYF.js";
2
5
  import {
3
6
  useT
4
7
  } from "./chunk-TGEPARLA.js";
5
8
 
9
+ // src/lib/upload.ts
10
+ import { uploadData } from "aws-amplify/storage";
11
+ import { generateClient } from "aws-amplify/api";
12
+ import { encodeAwsJson } from "ampless";
13
+ import { processImage } from "ampless/media";
14
+ function sanitizeName(name) {
15
+ return name.replace(/[\x00-\x1f\x7f]/g, "").replace(/[\\/:*?"<>|]/g, "_").replace(/\s+/g, "_").replace(/^\.+/, "_").slice(0, 200) || "upload";
16
+ }
17
+ async function createMediaRow(input) {
18
+ try {
19
+ const client = generateClient();
20
+ const model = client.models.Media;
21
+ if (!model) {
22
+ console.error(
23
+ "[upload.createMediaRow] Media model not available on the AppSync client. Run `npx ampx sandbox` and wait for it to finish, then retry the upload."
24
+ );
25
+ return;
26
+ }
27
+ const metadata = {};
28
+ if (input.etag) metadata.etag = input.etag;
29
+ const mediaId = `media-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
30
+ const { errors } = await model.create({
31
+ mediaId,
32
+ src: input.src,
33
+ mimeType: input.mimeType,
34
+ size: input.size,
35
+ delivery: "nextjs",
36
+ metadata: encodeAwsJson(metadata)
37
+ });
38
+ if (errors && errors.length > 0) {
39
+ console.error(
40
+ `[upload.createMediaRow] createMedia errors for ${input.src}`,
41
+ errors.map((e) => e.message)
42
+ );
43
+ }
44
+ } catch (err) {
45
+ console.error(`[upload.createMediaRow] threw for ${input.src}`, err);
46
+ }
47
+ }
48
+ async function uploadProcessedImage(file, options) {
49
+ const processed = await processImage(file, options);
50
+ const safeName = sanitizeName(processed.suggestedName);
51
+ const now = /* @__PURE__ */ new Date();
52
+ const yyyy = now.getFullYear();
53
+ const mm = String(now.getMonth() + 1).padStart(2, "0");
54
+ const path = `public/media/${yyyy}/${mm}/${Date.now()}-${safeName}`;
55
+ const item = await uploadData({
56
+ path,
57
+ data: processed.blob,
58
+ options: { contentType: processed.mime }
59
+ }).result;
60
+ await createMediaRow({
61
+ src: path,
62
+ mimeType: processed.mime,
63
+ size: item.size ?? processed.blob.size,
64
+ etag: item.eTag
65
+ });
66
+ return { path, url: publicMediaUrl(path) };
67
+ }
68
+
6
69
  // src/components/image-upload-dialog.tsx
7
70
  import { useEffect, useRef, useState } from "react";
8
71
  import ReactCrop, { centerCrop, makeAspectCrop } from "react-image-crop";
@@ -329,6 +392,9 @@ function getMediaProcessingDefaults() {
329
392
  }
330
393
 
331
394
  export {
395
+ sanitizeName,
396
+ createMediaRow,
397
+ uploadProcessedImage,
332
398
  ImageUploadDialog,
333
399
  setAdminCmsConfigClient,
334
400
  getMediaProcessingDefaults
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  MediaUploader
4
- } from "./chunk-H7KD5FNW.js";
4
+ } from "./chunk-YNQR3AFO.js";
5
5
  import {
6
6
  useT
7
7
  } from "./chunk-TGEPARLA.js";
@@ -1,8 +1,9 @@
1
1
  'use client';
2
2
  import {
3
3
  ImageUploadDialog,
4
- getMediaProcessingDefaults
5
- } from "./chunk-DB4DA6XR.js";
4
+ getMediaProcessingDefaults,
5
+ uploadProcessedImage
6
+ } from "./chunk-OMWVBK2C.js";
6
7
  import {
7
8
  publicMediaUrl
8
9
  } from "./chunk-2ITWLRYF.js";
@@ -10,27 +11,6 @@ import {
10
11
  useT
11
12
  } from "./chunk-TGEPARLA.js";
12
13
 
13
- // src/lib/upload.ts
14
- import { uploadData } from "aws-amplify/storage";
15
- import { processImage } from "ampless/media";
16
- function sanitizeName(name) {
17
- return name.replace(/[\x00-\x1f\x7f]/g, "").replace(/[\\/:*?"<>|]/g, "_").replace(/\s+/g, "_").replace(/^\.+/, "_").slice(0, 200) || "upload";
18
- }
19
- async function uploadProcessedImage(file, options) {
20
- const processed = await processImage(file, options);
21
- const safeName = sanitizeName(processed.suggestedName);
22
- const now = /* @__PURE__ */ new Date();
23
- const yyyy = now.getFullYear();
24
- const mm = String(now.getMonth() + 1).padStart(2, "0");
25
- const path = `public/media/${yyyy}/${mm}/${Date.now()}-${safeName}`;
26
- await uploadData({
27
- path,
28
- data: processed.blob,
29
- options: { contentType: processed.mime }
30
- }).result;
31
- return { path, url: publicMediaUrl(path) };
32
- }
33
-
34
14
  // src/components/media-picker.tsx
35
15
  import { useEffect, useRef, useState } from "react";
36
16
  import { list } from "aws-amplify/storage";
@@ -644,7 +624,7 @@ import { Button as Button5 } from "@ampless/runtime/ui";
644
624
 
645
625
  // src/lib/static-bundle.ts
646
626
  import JSZip from "jszip";
647
- import { uploadData as uploadData2, list as list2, remove } from "aws-amplify/storage";
627
+ import { uploadData, list as list2, remove } from "aws-amplify/storage";
648
628
  import {
649
629
  mimeTypeFor,
650
630
  validateBundlePath,
@@ -691,24 +671,30 @@ async function uploadBundle(opts) {
691
671
  await deleteBundle(opts.slug).catch(() => void 0);
692
672
  const prefix = bundlePrefix(opts.slug);
693
673
  let uploaded = 0;
674
+ const filesMeta = {};
694
675
  for (const f of opts.files) {
695
- const task = uploadData2({
676
+ const mimeType = mimeTypeFor(f.path);
677
+ const task = uploadData({
696
678
  path: `${prefix}${f.path}`,
697
679
  data: f.data,
698
680
  // Forcing Content-Type at upload means CloudFront / browsers see
699
681
  // it directly when serving the file via the public bucket URL.
700
682
  // (The runtime route handler overrides it for the proxied path,
701
683
  // but tooling that hits S3 directly benefits from a correct CT.)
702
- options: { contentType: mimeTypeFor(f.path) }
684
+ options: { contentType: mimeType }
703
685
  });
704
686
  await task.result;
687
+ filesMeta[f.path] = { size: f.data.byteLength, mimeType };
705
688
  uploaded += f.data.byteLength;
706
689
  opts.onProgress?.(uploaded, totalBytes);
707
690
  }
708
691
  return {
709
- entrypoint,
710
- files: opts.files.map((f) => f.path).sort(),
711
- uploadedAt: (/* @__PURE__ */ new Date()).toISOString()
692
+ body: {
693
+ entrypoint,
694
+ files: opts.files.map((f) => f.path).sort(),
695
+ uploadedAt: (/* @__PURE__ */ new Date()).toISOString()
696
+ },
697
+ filesMeta
712
698
  };
713
699
  }
714
700
  async function deleteBundle(slug) {
@@ -1034,16 +1020,18 @@ function PostForm({ post }) {
1034
1020
  setError(null);
1035
1021
  try {
1036
1022
  const tags = parseTags(tagsInput);
1037
- const metadata = buildMetadata();
1023
+ let metadata = buildMetadata();
1038
1024
  const finalSlug = slug || slugify(title);
1039
1025
  let nextBody = body;
1040
1026
  if (format === "static") {
1041
1027
  if (pendingBundle) {
1042
- nextBody = await uploadBundle({
1028
+ const result = await uploadBundle({
1043
1029
  slug: finalSlug,
1044
1030
  files: pendingBundle.files,
1045
1031
  entrypoint: pendingBundle.entrypoint
1046
1032
  });
1033
+ nextBody = result.body;
1034
+ metadata = { ...metadata ?? {}, files: result.filesMeta };
1047
1035
  } else if (initialStaticBody) {
1048
1036
  nextBody = initialStaticBody;
1049
1037
  } else {
@@ -1312,8 +1300,6 @@ function PostForm({ post }) {
1312
1300
  }
1313
1301
 
1314
1302
  export {
1315
- sanitizeName,
1316
- uploadProcessedImage,
1317
1303
  MediaPicker,
1318
1304
  PostForm
1319
1305
  };
@@ -1,8 +1,9 @@
1
1
  'use client';
2
2
  import {
3
3
  ImageUploadDialog,
4
+ createMediaRow,
4
5
  getMediaProcessingDefaults
5
- } from "./chunk-DB4DA6XR.js";
6
+ } from "./chunk-OMWVBK2C.js";
6
7
  import {
7
8
  publicMediaUrl
8
9
  } from "./chunk-2ITWLRYF.js";
@@ -94,7 +95,13 @@ function MediaUploader() {
94
95
  options: { contentType: processed.mime }
95
96
  });
96
97
  uploadTaskRef.current = task;
97
- await task.result;
98
+ const item = await task.result;
99
+ await createMediaRow({
100
+ src: path,
101
+ mimeType: processed.mime,
102
+ size: item.size ?? processed.blob.size,
103
+ etag: item.eTag
104
+ });
98
105
  await refresh();
99
106
  } catch (err) {
100
107
  if (isCancelError(err) || token.cancelled) {
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  EditPostPage
4
- } from "../chunk-XQQRFWFR.js";
5
- import "../chunk-EBMSICAA.js";
6
- import "../chunk-DB4DA6XR.js";
4
+ } from "../chunk-GJSMMQVO.js";
5
+ import "../chunk-UTQRFC6V.js";
6
+ import "../chunk-OMWVBK2C.js";
7
7
  import "../chunk-2ITWLRYF.js";
8
8
  import "../chunk-TGEPARLA.js";
9
9
  import "../chunk-5DWBQ73J.js";
@@ -78,7 +78,10 @@ declare function publicMediaUrl(input: string): string;
78
78
  declare function sanitizeName(name: string): string;
79
79
  /**
80
80
  * Run the image through processImage (crop/resize/encode) and upload the
81
- * result to S3 under `public/media/YYYY/MM/`. Returns a stable public URL.
81
+ * result to S3 under `public/media/YYYY/MM/`. Records a Media
82
+ * DynamoDB row with size + mimeType + etag so the public media-proxy
83
+ * route can stream the bytes back without a HEAD round-trip. Returns
84
+ * a stable public URL.
82
85
  *
83
86
  * Used by both /admin/media (gallery uploads) and the editor's MediaPicker
84
87
  * (upload-and-embed) so the storage layout and naming stay consistent.
@@ -4,23 +4,23 @@ import {
4
4
  Sidebar,
5
5
  SiteSettingsForm,
6
6
  ThemeSettingsForm
7
- } from "../chunk-T2J5TEJC.js";
7
+ } from "../chunk-MHTKDXSP.js";
8
8
  import {
9
9
  invalidateSiteSettingsCache
10
10
  } from "../chunk-D72XF3Q3.js";
11
11
  import {
12
12
  MediaPicker,
13
- PostForm,
14
- sanitizeName,
15
- uploadProcessedImage
16
- } from "../chunk-EBMSICAA.js";
13
+ PostForm
14
+ } from "../chunk-UTQRFC6V.js";
17
15
  import "../chunk-C7G5AQ3L.js";
18
16
  import {
19
17
  MediaUploader
20
- } from "../chunk-H7KD5FNW.js";
18
+ } from "../chunk-YNQR3AFO.js";
21
19
  import {
22
- ImageUploadDialog
23
- } from "../chunk-DB4DA6XR.js";
20
+ ImageUploadDialog,
21
+ sanitizeName,
22
+ uploadProcessedImage
23
+ } from "../chunk-OMWVBK2C.js";
24
24
  import {
25
25
  publicMediaUrl,
26
26
  setAdminMediaContext
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  MediaPage
4
- } from "../chunk-ODZGQTZW.js";
5
- import "../chunk-H7KD5FNW.js";
6
- import "../chunk-DB4DA6XR.js";
4
+ } from "../chunk-Q3FMKPAQ.js";
5
+ import "../chunk-YNQR3AFO.js";
6
+ import "../chunk-OMWVBK2C.js";
7
7
  import "../chunk-2ITWLRYF.js";
8
8
  import "../chunk-TGEPARLA.js";
9
9
  import "../chunk-5DWBQ73J.js";
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  NewPostPage
4
- } from "../chunk-MVPZEJ42.js";
5
- import "../chunk-EBMSICAA.js";
6
- import "../chunk-DB4DA6XR.js";
4
+ } from "../chunk-MDBBDBE5.js";
5
+ import "../chunk-UTQRFC6V.js";
6
+ import "../chunk-OMWVBK2C.js";
7
7
  import "../chunk-2ITWLRYF.js";
8
8
  import "../chunk-TGEPARLA.js";
9
9
  import "../chunk-5DWBQ73J.js";
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Config } from 'ampless';
2
- import { AmplessOutputs, EffectiveSiteSettings, EffectiveThemeConfig, Ampless } from '@ampless/runtime';
2
+ import { AmplessOutputs, EffectiveSiteSettings, EffectiveThemeConfig, ResolvedMedia, Ampless } from '@ampless/runtime';
3
3
  import { L as Locale, D as Dictionary } from './i18n-sYi0kbnC.js';
4
4
  export { A as AdminLocaleStrings, g as getDictionary, r as resolveLocale, t as translate } from './i18n-sYi0kbnC.js';
5
5
  import * as _aws_amplify_adapter_nextjs from '@aws-amplify/adapter-nextjs';
@@ -63,6 +63,14 @@ interface Admin {
63
63
  */
64
64
  readStoredActiveThemeFresh(): Promise<string | null>;
65
65
  publicMediaUrl(input: string): string;
66
+ /**
67
+ * Look up the Media DynamoDB row for the given S3 key. Used by the
68
+ * `/api/media/...` route handler so the stream-back path can skip a
69
+ * HEAD round-trip on cold reads. Returns null for orphan / legacy
70
+ * assets (caller falls back to a HEAD via Amplify SSR). Requires
71
+ * the `ampless` opt — throws if it wasn't supplied.
72
+ */
73
+ getMediaBySrc(src: string): Promise<ResolvedMedia | null>;
66
74
  readonly outputs: AmplessOutputs;
67
75
  readonly cmsConfig: Config;
68
76
  readonly ampless: Ampless | null;
package/dist/index.js CHANGED
@@ -82,6 +82,7 @@ function createAdmin(opts) {
82
82
  loadThemeConfig: async () => (await resolveAmpless()).loadThemeConfig(),
83
83
  readStoredActiveThemeFresh: async () => (await resolveAmpless()).readStoredActiveThemeFresh(),
84
84
  publicMediaUrl: media.publicMediaUrl,
85
+ getMediaBySrc: async (src) => (await resolveAmpless()).getMediaBySrc(src),
85
86
  outputs,
86
87
  cmsConfig,
87
88
  ampless: eagerAmpless
@@ -1 +1 @@
1
- {"inputs":{"src/locales/en.json":{"bytes":11758,"imports":[]},"src/locales/ja.json":{"bytes":14811,"imports":[]},"src/lib/i18n.ts":{"bytes":2935,"imports":[{"path":"src/locales/en.json","kind":"import-statement","original":"../locales/en.json"},{"path":"src/locales/ja.json","kind":"import-statement","original":"../locales/ja.json"}],"format":"esm"},"src/lib/media.ts":{"bytes":3109,"imports":[],"format":"esm"},"src/lib/amplify-server.ts":{"bytes":593,"imports":[{"path":"@aws-amplify/adapter-nextjs","kind":"import-statement","external":true}],"format":"esm"},"src/lib/auth-server.ts":{"bytes":1678,"imports":[{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/auth/server","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":6373,"imports":[{"path":"src/lib/i18n.ts","kind":"import-statement","original":"./lib/i18n.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"./lib/media.js"},{"path":"src/lib/amplify-server.ts","kind":"import-statement","original":"./lib/amplify-server.js"},{"path":"src/lib/auth-server.ts","kind":"import-statement","original":"./lib/auth-server.js"},{"path":"src/lib/i18n.ts","kind":"import-statement","original":"./lib/i18n.js"}],"format":"esm"},"src/api/media-proxy.ts":{"bytes":2196,"imports":[{"path":"next/server","kind":"import-statement","external":true},{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/storage/server","kind":"import-statement","external":true}],"format":"esm"},"src/api/index.ts":{"bytes":562,"imports":[{"path":"src/api/media-proxy.ts","kind":"import-statement","original":"./media-proxy.js"}],"format":"esm"},"src/components/i18n-provider.tsx":{"bytes":1526,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/lib/i18n.ts","kind":"import-statement","original":"../lib/i18n.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/admin-dashboard.tsx":{"bytes":2256,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/upload.ts":{"bytes":1490,"imports":[{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"./media.js"}],"format":"esm"},"src/components/image-upload-dialog.tsx":{"bytes":14701,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-image-crop","kind":"import-statement","external":true},{"path":"react-image-crop/dist/ReactCrop.css","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/admin-config-client.ts":{"bytes":626,"imports":[],"format":"esm"},"src/components/media-picker.tsx":{"bytes":5261,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/upload.ts","kind":"import-statement","original":"../lib/upload.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/table-controls.tsx":{"bytes":4583,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/toolbar.tsx":{"bytes":4887,"imports":[{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"../components/media-picker.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"src/editor/table-controls.tsx","kind":"import-statement","original":"./table-controls.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/image-bubble-menu.tsx":{"bytes":2716,"imports":[{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/react/menus","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/tiptap-editor.tsx":{"bytes":5217,"imports":[{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/starter-kit","kind":"import-statement","external":true},{"path":"@tiptap/extension-link","kind":"import-statement","external":true},{"path":"@tiptap/extension-image","kind":"import-statement","external":true},{"path":"@tiptap/extension-table","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-row","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-header","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-cell","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-list","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-item","kind":"import-statement","external":true},{"path":"@tiptap/extension-underline","kind":"import-statement","external":true},{"path":"@tiptap/extension-highlight","kind":"import-statement","external":true},{"path":"@tiptap/extension-text-align","kind":"import-statement","external":true},{"path":"src/editor/toolbar.tsx","kind":"import-statement","original":"./toolbar.js"},{"path":"src/editor/image-bubble-menu.tsx","kind":"import-statement","original":"./image-bubble-menu.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/static-bundle.ts":{"bytes":4991,"imports":[{"path":"jszip","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/components/static-uploader.tsx":{"bytes":8959,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/static-bundle.ts","kind":"import-statement","original":"../lib/static-bundle.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/post-form.tsx":{"bytes":19515,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/editor/tiptap-editor.tsx","kind":"import-statement","original":"../editor/tiptap-editor.js"},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"./media-picker.js"},{"path":"src/components/static-uploader.tsx","kind":"import-statement","original":"./static-uploader.js"},{"path":"src/lib/static-bundle.ts","kind":"import-statement","original":"../lib/static-bundle.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/edit-post-view.tsx":{"bytes":1059,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/amplify-client.ts":{"bytes":612,"imports":[{"path":"aws-amplify","kind":"import-statement","external":true}],"format":"esm"},"src/lib/posts-provider.ts":{"bytes":6171,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/kv-provider.ts":{"bytes":4266,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-store.ts":{"bytes":1823,"imports":[],"format":"esm"},"src/lib/mcp-token-provider.ts":{"bytes":2918,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"src/lib/mcp-token-store.ts","kind":"import-statement","original":"./mcp-token-store.js"}],"format":"esm"},"src/components/admin-providers.tsx":{"bytes":1791,"imports":[{"path":"src/lib/amplify-client.ts","kind":"import-statement","original":"../lib/amplify-client.js"},{"path":"src/lib/posts-provider.ts","kind":"import-statement","original":"../lib/posts-provider.js"},{"path":"src/lib/kv-provider.ts","kind":"import-statement","original":"../lib/kv-provider.js"},{"path":"src/lib/mcp-token-provider.ts","kind":"import-statement","original":"../lib/mcp-token-provider.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/theme-actions.ts":{"bytes":1517,"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"format":"esm"},"src/components/sidebar.tsx":{"bytes":5757,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/site-settings-form.tsx":{"bytes":6509,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/theme-settings-form.tsx":{"bytes":30118,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/theme-actions.ts","kind":"import-statement","original":"../lib/theme-actions.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/media-uploader.tsx":{"bytes":10866,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/index.ts":{"bytes":1684,"imports":[{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"src/components/admin-providers.tsx","kind":"import-statement","original":"./admin-providers.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/upload.ts","kind":"import-statement","original":"../lib/upload.js"},{"path":"src/lib/theme-actions.ts","kind":"import-statement","original":"../lib/theme-actions.js"},{"path":"src/components/sidebar.tsx","kind":"import-statement","original":"./sidebar.js"},{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/site-settings-form.tsx","kind":"import-statement","original":"./site-settings-form.js"},{"path":"src/components/theme-settings-form.tsx","kind":"import-statement","original":"./theme-settings-form.js"},{"path":"src/components/media-uploader.tsx","kind":"import-statement","original":"./media-uploader.js"},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"./media-picker.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"}],"format":"esm"},"src/components/login-view.tsx":{"bytes":7062,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-format.ts":{"bytes":1662,"imports":[{"path":"crypto","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-storage.ts":{"bytes":1728,"imports":[{"path":"src/lib/mcp-token-store.ts","kind":"import-statement","original":"./mcp-token-store.js"}],"format":"esm"},"src/components/mcp-tokens-view.tsx":{"bytes":13127,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"src/lib/mcp-token-format.ts","kind":"import-statement","original":"../lib/mcp-token-format.js"},{"path":"src/lib/mcp-token-storage.ts","kind":"import-statement","original":"../lib/mcp-token-storage.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/media-view.tsx":{"bytes":351,"imports":[{"path":"src/components/media-uploader.tsx","kind":"import-statement","original":"./media-uploader.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/new-post-view.tsx":{"bytes":346,"imports":[{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/posts-list-view.tsx":{"bytes":3204,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/users-list-view.tsx":{"bytes":7042,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/admin-layout.tsx":{"bytes":2342,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"src/components/sidebar.tsx","kind":"import-statement","original":"../components/sidebar.js"},{"path":"src/components/admin-providers.tsx","kind":"import-statement","original":"../components/admin-providers.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/dashboard.tsx":{"bytes":448,"imports":[{"path":"src/components/admin-dashboard.tsx","kind":"import-statement","original":"../components/admin-dashboard.js"}],"format":"esm"},"src/pages/posts-list.tsx":{"bytes":382,"imports":[{"path":"src/components/posts-list-view.tsx","kind":"import-statement","original":"../components/posts-list-view.js"}],"format":"esm"},"src/pages/post-new.tsx":{"bytes":385,"imports":[{"path":"src/components/new-post-view.tsx","kind":"import-statement","original":"../components/new-post-view.js"}],"format":"esm"},"src/pages/post-edit.tsx":{"bytes":390,"imports":[{"path":"src/components/edit-post-view.tsx","kind":"import-statement","original":"../components/edit-post-view.js"}],"format":"esm"},"src/pages/media.tsx":{"bytes":381,"imports":[{"path":"src/components/media-view.tsx","kind":"import-statement","original":"../components/media-view.js"}],"format":"esm"},"src/pages/site-edit.tsx":{"bytes":2165,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"src/components/site-settings-form.tsx","kind":"import-statement","original":"../components/site-settings-form.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/site-theme.tsx":{"bytes":4013,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/theme-settings-form.tsx","kind":"import-statement","original":"../components/theme-settings-form.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/users-list.tsx":{"bytes":647,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/users-list-view.tsx","kind":"import-statement","original":"../components/users-list-view.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/mcp-tokens.tsx":{"bytes":1395,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/mcp-tokens-view.tsx","kind":"import-statement","original":"../components/mcp-tokens-view.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/login.tsx":{"bytes":400,"imports":[{"path":"src/components/login-view.tsx","kind":"import-statement","original":"../components/login-view.js"}],"format":"esm"},"src/pages/index.ts":{"bytes":1392,"imports":[{"path":"src/pages/admin-layout.tsx","kind":"import-statement","original":"./admin-layout.js"},{"path":"src/pages/dashboard.tsx","kind":"import-statement","original":"./dashboard.js"},{"path":"src/pages/posts-list.tsx","kind":"import-statement","original":"./posts-list.js"},{"path":"src/pages/post-new.tsx","kind":"import-statement","original":"./post-new.js"},{"path":"src/pages/post-edit.tsx","kind":"import-statement","original":"./post-edit.js"},{"path":"src/pages/media.tsx","kind":"import-statement","original":"./media.js"},{"path":"src/pages/site-edit.tsx","kind":"import-statement","original":"./site-edit.js"},{"path":"src/pages/site-theme.tsx","kind":"import-statement","original":"./site-theme.js"},{"path":"src/pages/users-list.tsx","kind":"import-statement","original":"./users-list.js"},{"path":"src/pages/mcp-tokens.tsx","kind":"import-statement","original":"./mcp-tokens.js"},{"path":"src/pages/login.tsx","kind":"import-statement","original":"./login.js"}],"format":"esm"}},"outputs":{"dist/components/new-post-view.js":{"imports":[{"path":"dist/chunk-MVPZEJ42.js","kind":"import-statement"},{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["NewPostPage"],"entryPoint":"src/components/new-post-view.tsx","inputs":{},"bytes":249},"dist/components/posts-list-view.js":{"imports":[{"path":"dist/chunk-BF6XV6TP.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["PostsList"],"entryPoint":"src/components/posts-list-view.tsx","inputs":{},"bytes":152},"dist/components/users-list-view.js":{"imports":[{"path":"dist/chunk-DNMENH6C.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["UsersListView"],"entryPoint":"src/components/users-list-view.tsx","inputs":{},"bytes":160},"dist/lib/theme-actions.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"}],"exports":["invalidateSiteSettingsCache"],"entryPoint":"src/lib/theme-actions.ts","inputs":{},"bytes":126},"dist/pages/index.js":{"imports":[{"path":"dist/chunk-MVPZEJ42.js","kind":"import-statement"},{"path":"dist/chunk-BF6XV6TP.js","kind":"import-statement"},{"path":"dist/chunk-DNMENH6C.js","kind":"import-statement"},{"path":"dist/chunk-3QXCPMPD.js","kind":"import-statement"},{"path":"dist/chunk-XQQRFWFR.js","kind":"import-statement"},{"path":"dist/chunk-T2J5TEJC.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-ZR35TWHV.js","kind":"import-statement"},{"path":"dist/chunk-VZJU74K3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-ODZGQTZW.js","kind":"import-statement"},{"path":"dist/chunk-H7KD5FNW.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMcpTokensPage","createMediaPage","createNewPostPage","createPostsListPage","createSiteEditPage","createSiteThemePage","createUsersListPage"],"entryPoint":"src/pages/index.ts","inputs":{"src/pages/admin-layout.tsx":{"bytesInOutput":1118},"src/pages/index.ts":{"bytesInOutput":0},"src/pages/dashboard.tsx":{"bytesInOutput":71},"src/pages/posts-list.tsx":{"bytesInOutput":61},"src/pages/post-new.tsx":{"bytesInOutput":61},"src/pages/post-edit.tsx":{"bytesInOutput":63},"src/pages/media.tsx":{"bytesInOutput":57},"src/pages/site-edit.tsx":{"bytesInOutput":1723},"src/pages/site-theme.tsx":{"bytesInOutput":2299},"src/pages/users-list.tsx":{"bytesInOutput":404},"src/pages/mcp-tokens.tsx":{"bytesInOutput":679},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":7969},"dist/chunk-MVPZEJ42.js":{"imports":[{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["NewPostPage"],"inputs":{"src/components/new-post-view.tsx":{"bytesInOutput":363}},"bytes":523},"dist/chunk-BF6XV6TP.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["PostsList"],"inputs":{"src/components/posts-list-view.tsx":{"bytesInOutput":3221}},"bytes":3331},"dist/chunk-DNMENH6C.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["UsersListView"],"inputs":{"src/components/users-list-view.tsx":{"bytesInOutput":5995}},"bytes":6109},"dist/index.js":{"imports":[{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"@aws-amplify/adapter-nextjs","kind":"import-statement","external":true},{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/auth/server","kind":"import-statement","external":true}],"exports":["createAdmin","getDictionary","resolveLocale","translate"],"entryPoint":"src/index.ts","inputs":{"src/lib/amplify-server.ts":{"bytesInOutput":164},"src/lib/auth-server.ts":{"bytesInOutput":1143},"src/index.ts":{"bytesInOutput":1587}},"bytes":3179},"dist/api/index.js":{"imports":[{"path":"next/server","kind":"import-statement","external":true},{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/storage/server","kind":"import-statement","external":true}],"exports":["createMediaProxyRoute"],"entryPoint":"src/api/index.ts","inputs":{"src/api/media-proxy.ts":{"bytesInOutput":1318},"src/api/index.ts":{"bytesInOutput":0}},"bytes":1380},"dist/components/admin-dashboard.js":{"imports":[{"path":"dist/chunk-3QXCPMPD.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["AdminDashboard"],"entryPoint":"src/components/admin-dashboard.tsx","inputs":{},"bytes":162},"dist/chunk-3QXCPMPD.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminDashboard"],"inputs":{"src/components/admin-dashboard.tsx":{"bytesInOutput":2444}},"bytes":2559},"dist/components/edit-post-view.js":{"imports":[{"path":"dist/chunk-XQQRFWFR.js","kind":"import-statement"},{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["EditPostPage"],"entryPoint":"src/components/edit-post-view.tsx","inputs":{},"bytes":251},"dist/chunk-XQQRFWFR.js":{"imports":[{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["EditPostPage"],"inputs":{"src/components/edit-post-view.tsx":{"bytesInOutput":1024}},"bytes":1186},"dist/components/index.js":{"imports":[{"path":"dist/chunk-T2J5TEJC.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-EBMSICAA.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-H7KD5FNW.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["AdminProviders","I18nProvider","ImageUploadDialog","MediaPicker","MediaUploader","PostForm","Sidebar","SiteSettingsForm","ThemeSettingsForm","invalidateSiteSettingsCache","publicMediaUrl","sanitizeName","setAdminMediaContext","uploadProcessedImage","useLocale","useT"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":0}},"bytes":916},"dist/chunk-T2J5TEJC.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"aws-amplify","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminProviders","Sidebar","SiteSettingsForm","ThemeSettingsForm"],"inputs":{"src/lib/amplify-client.ts":{"bytesInOutput":194},"src/lib/posts-provider.ts":{"bytesInOutput":3422},"src/lib/kv-provider.ts":{"bytesInOutput":2125},"src/lib/mcp-token-provider.ts":{"bytesInOutput":1513},"src/components/admin-providers.tsx":{"bytesInOutput":371},"src/components/sidebar.tsx":{"bytesInOutput":5789},"src/components/site-settings-form.tsx":{"bytesInOutput":6899},"src/components/theme-settings-form.tsx":{"bytesInOutput":21443}},"bytes":42427},"dist/chunk-D72XF3Q3.js":{"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"exports":["invalidateSiteSettingsCache"],"inputs":{"src/lib/theme-actions.ts":{"bytesInOutput":134}},"bytes":205},"dist/chunk-EBMSICAA.js":{"imports":[{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/starter-kit","kind":"import-statement","external":true},{"path":"@tiptap/extension-link","kind":"import-statement","external":true},{"path":"@tiptap/extension-image","kind":"import-statement","external":true},{"path":"@tiptap/extension-table","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-row","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-header","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-cell","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-list","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-item","kind":"import-statement","external":true},{"path":"@tiptap/extension-underline","kind":"import-statement","external":true},{"path":"@tiptap/extension-highlight","kind":"import-statement","external":true},{"path":"@tiptap/extension-text-align","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"@tiptap/react/menus","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"jszip","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaPicker","PostForm","sanitizeName","uploadProcessedImage"],"inputs":{"src/lib/upload.ts":{"bytesInOutput":807},"src/components/media-picker.tsx":{"bytesInOutput":4988},"src/components/post-form.tsx":{"bytesInOutput":16746},"src/editor/tiptap-editor.tsx":{"bytesInOutput":4031},"src/editor/toolbar.tsx":{"bytesInOutput":4823},"src/editor/table-controls.tsx":{"bytesInOutput":4227},"src/editor/image-bubble-menu.tsx":{"bytesInOutput":2901},"src/components/static-uploader.tsx":{"bytesInOutput":7717},"src/lib/static-bundle.ts":{"bytesInOutput":2665}},"bytes":49597},"dist/components/login-view.js":{"imports":[{"path":"dist/chunk-ZR35TWHV.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["LoginPage"],"entryPoint":"src/components/login-view.tsx","inputs":{},"bytes":152},"dist/chunk-ZR35TWHV.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["LoginPage"],"inputs":{"src/components/login-view.tsx":{"bytesInOutput":6967}},"bytes":7072},"dist/components/mcp-tokens-view.js":{"imports":[{"path":"dist/chunk-VZJU74K3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["McpTokensView"],"entryPoint":"src/components/mcp-tokens-view.tsx","inputs":{},"bytes":191},"dist/chunk-VZJU74K3.js":{"imports":[{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"crypto","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["McpTokensView"],"inputs":{"src/components/mcp-tokens-view.tsx":{"bytesInOutput":12281},"src/lib/mcp-token-format.ts":{"bytesInOutput":459},"src/lib/mcp-token-storage.ts":{"bytesInOutput":575}},"bytes":13591},"dist/chunk-C7G5AQ3L.js":{"imports":[],"exports":["getMcpTokenStore","setMcpTokenStore"],"inputs":{"src/lib/mcp-token-store.ts":{"bytesInOutput":297}},"bytes":379},"dist/components/media-view.js":{"imports":[{"path":"dist/chunk-ODZGQTZW.js","kind":"import-statement"},{"path":"dist/chunk-H7KD5FNW.js","kind":"import-statement"},{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["MediaPage"],"entryPoint":"src/components/media-view.tsx","inputs":{},"bytes":245},"dist/chunk-ODZGQTZW.js":{"imports":[{"path":"dist/chunk-H7KD5FNW.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaPage"],"inputs":{"src/components/media-view.tsx":{"bytesInOutput":358}},"bytes":518},"dist/chunk-H7KD5FNW.js":{"imports":[{"path":"dist/chunk-DB4DA6XR.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaUploader"],"inputs":{"src/components/media-uploader.tsx":{"bytesInOutput":8980}},"bytes":9238},"dist/chunk-DB4DA6XR.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react-image-crop","kind":"import-statement","external":true},{"path":"react-image-crop/dist/ReactCrop.css","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["ImageUploadDialog","getMediaProcessingDefaults","setAdminCmsConfigClient"],"inputs":{"src/components/image-upload-dialog.tsx":{"bytesInOutput":12823},"src/lib/admin-config-client.ts":{"bytesInOutput":170}},"bytes":13207},"dist/chunk-2ITWLRYF.js":{"imports":[],"exports":["createMedia","publicMediaUrl","setAdminMediaContext"],"inputs":{"src/lib/media.ts":{"bytesInOutput":1326}},"bytes":1415},"dist/chunk-TGEPARLA.js":{"imports":[{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["I18nProvider","useLocale","useT"],"inputs":{"src/components/i18n-provider.tsx":{"bytesInOutput":785}},"bytes":922},"dist/chunk-5DWBQ73J.js":{"imports":[],"exports":["getDictionary","resolveLocale","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":11232},"src/locales/ja.json":{"bytesInOutput":21817},"src/lib/i18n.ts":{"bytesInOutput":1146}},"bytes":34321}}}
1
+ {"inputs":{"src/locales/en.json":{"bytes":11758,"imports":[]},"src/locales/ja.json":{"bytes":14811,"imports":[]},"src/lib/i18n.ts":{"bytes":2935,"imports":[{"path":"src/locales/en.json","kind":"import-statement","original":"../locales/en.json"},{"path":"src/locales/ja.json","kind":"import-statement","original":"../locales/ja.json"}],"format":"esm"},"src/lib/media.ts":{"bytes":3109,"imports":[],"format":"esm"},"src/lib/amplify-server.ts":{"bytes":593,"imports":[{"path":"@aws-amplify/adapter-nextjs","kind":"import-statement","external":true}],"format":"esm"},"src/lib/auth-server.ts":{"bytes":1678,"imports":[{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/auth/server","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":6876,"imports":[{"path":"src/lib/i18n.ts","kind":"import-statement","original":"./lib/i18n.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"./lib/media.js"},{"path":"src/lib/amplify-server.ts","kind":"import-statement","original":"./lib/amplify-server.js"},{"path":"src/lib/auth-server.ts","kind":"import-statement","original":"./lib/auth-server.js"},{"path":"src/lib/i18n.ts","kind":"import-statement","original":"./lib/i18n.js"}],"format":"esm"},"src/api/media-proxy.ts":{"bytes":4392,"imports":[{"path":"next/server","kind":"import-statement","external":true},{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/storage/server","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true}],"format":"esm"},"src/api/index.ts":{"bytes":562,"imports":[{"path":"src/api/media-proxy.ts","kind":"import-statement","original":"./media-proxy.js"}],"format":"esm"},"src/components/i18n-provider.tsx":{"bytes":1526,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/lib/i18n.ts","kind":"import-statement","original":"../lib/i18n.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/admin-dashboard.tsx":{"bytes":2256,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/upload.ts":{"bytes":4604,"imports":[{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"./media.js"}],"format":"esm"},"src/components/image-upload-dialog.tsx":{"bytes":14701,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react-image-crop","kind":"import-statement","external":true},{"path":"react-image-crop/dist/ReactCrop.css","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/admin-config-client.ts":{"bytes":626,"imports":[],"format":"esm"},"src/components/media-picker.tsx":{"bytes":5261,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/upload.ts","kind":"import-statement","original":"../lib/upload.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/table-controls.tsx":{"bytes":4583,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/toolbar.tsx":{"bytes":4887,"imports":[{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"../components/media-picker.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"src/editor/table-controls.tsx","kind":"import-statement","original":"./table-controls.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/image-bubble-menu.tsx":{"bytes":2716,"imports":[{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/react/menus","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/editor/tiptap-editor.tsx":{"bytes":5217,"imports":[{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/starter-kit","kind":"import-statement","external":true},{"path":"@tiptap/extension-link","kind":"import-statement","external":true},{"path":"@tiptap/extension-image","kind":"import-statement","external":true},{"path":"@tiptap/extension-table","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-row","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-header","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-cell","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-list","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-item","kind":"import-statement","external":true},{"path":"@tiptap/extension-underline","kind":"import-statement","external":true},{"path":"@tiptap/extension-highlight","kind":"import-statement","external":true},{"path":"@tiptap/extension-text-align","kind":"import-statement","external":true},{"path":"src/editor/toolbar.tsx","kind":"import-statement","original":"./toolbar.js"},{"path":"src/editor/image-bubble-menu.tsx","kind":"import-statement","original":"./image-bubble-menu.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/static-bundle.ts":{"bytes":5812,"imports":[{"path":"jszip","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/components/static-uploader.tsx":{"bytes":8959,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/static-bundle.ts","kind":"import-statement","original":"../lib/static-bundle.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/post-form.tsx":{"bytes":19995,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/editor/tiptap-editor.tsx","kind":"import-statement","original":"../editor/tiptap-editor.js"},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"./media-picker.js"},{"path":"src/components/static-uploader.tsx","kind":"import-statement","original":"./static-uploader.js"},{"path":"src/lib/static-bundle.ts","kind":"import-statement","original":"../lib/static-bundle.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/edit-post-view.tsx":{"bytes":1059,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/amplify-client.ts":{"bytes":612,"imports":[{"path":"aws-amplify","kind":"import-statement","external":true}],"format":"esm"},"src/lib/posts-provider.ts":{"bytes":6171,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/kv-provider.ts":{"bytes":4266,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-store.ts":{"bytes":1823,"imports":[],"format":"esm"},"src/lib/mcp-token-provider.ts":{"bytes":2918,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"src/lib/mcp-token-store.ts","kind":"import-statement","original":"./mcp-token-store.js"}],"format":"esm"},"src/components/admin-providers.tsx":{"bytes":1791,"imports":[{"path":"src/lib/amplify-client.ts","kind":"import-statement","original":"../lib/amplify-client.js"},{"path":"src/lib/posts-provider.ts","kind":"import-statement","original":"../lib/posts-provider.js"},{"path":"src/lib/kv-provider.ts","kind":"import-statement","original":"../lib/kv-provider.js"},{"path":"src/lib/mcp-token-provider.ts","kind":"import-statement","original":"../lib/mcp-token-provider.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/theme-actions.ts":{"bytes":1517,"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"format":"esm"},"src/components/sidebar.tsx":{"bytes":5757,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/site-settings-form.tsx":{"bytes":6509,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/theme-settings-form.tsx":{"bytes":30118,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/theme-actions.ts","kind":"import-statement","original":"../lib/theme-actions.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/media-uploader.tsx":{"bytes":11631,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/upload.ts","kind":"import-statement","original":"../lib/upload.js"},{"path":"src/lib/admin-config-client.ts","kind":"import-statement","original":"../lib/admin-config-client.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/index.ts":{"bytes":1684,"imports":[{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"src/components/admin-providers.tsx","kind":"import-statement","original":"./admin-providers.js"},{"path":"src/lib/media.ts","kind":"import-statement","original":"../lib/media.js"},{"path":"src/lib/upload.ts","kind":"import-statement","original":"../lib/upload.js"},{"path":"src/lib/theme-actions.ts","kind":"import-statement","original":"../lib/theme-actions.js"},{"path":"src/components/sidebar.tsx","kind":"import-statement","original":"./sidebar.js"},{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/site-settings-form.tsx","kind":"import-statement","original":"./site-settings-form.js"},{"path":"src/components/theme-settings-form.tsx","kind":"import-statement","original":"./theme-settings-form.js"},{"path":"src/components/media-uploader.tsx","kind":"import-statement","original":"./media-uploader.js"},{"path":"src/components/media-picker.tsx","kind":"import-statement","original":"./media-picker.js"},{"path":"src/components/image-upload-dialog.tsx","kind":"import-statement","original":"./image-upload-dialog.js"}],"format":"esm"},"src/components/login-view.tsx":{"bytes":7062,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-format.ts":{"bytes":1662,"imports":[{"path":"crypto","kind":"import-statement","external":true}],"format":"esm"},"src/lib/mcp-token-storage.ts":{"bytes":1728,"imports":[{"path":"src/lib/mcp-token-store.ts","kind":"import-statement","original":"./mcp-token-store.js"}],"format":"esm"},"src/components/mcp-tokens-view.tsx":{"bytes":13127,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"src/lib/mcp-token-format.ts","kind":"import-statement","original":"../lib/mcp-token-format.js"},{"path":"src/lib/mcp-token-storage.ts","kind":"import-statement","original":"../lib/mcp-token-storage.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/media-view.tsx":{"bytes":351,"imports":[{"path":"src/components/media-uploader.tsx","kind":"import-statement","original":"./media-uploader.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/new-post-view.tsx":{"bytes":346,"imports":[{"path":"src/components/post-form.tsx","kind":"import-statement","original":"./post-form.js"},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/posts-list-view.tsx":{"bytes":3204,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/users-list-view.tsx":{"bytes":7042,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"./i18n-provider.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/admin-layout.tsx":{"bytes":2342,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/i18n-provider.tsx","kind":"import-statement","original":"../components/i18n-provider.js"},{"path":"src/components/sidebar.tsx","kind":"import-statement","original":"../components/sidebar.js"},{"path":"src/components/admin-providers.tsx","kind":"import-statement","original":"../components/admin-providers.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/dashboard.tsx":{"bytes":448,"imports":[{"path":"src/components/admin-dashboard.tsx","kind":"import-statement","original":"../components/admin-dashboard.js"}],"format":"esm"},"src/pages/posts-list.tsx":{"bytes":382,"imports":[{"path":"src/components/posts-list-view.tsx","kind":"import-statement","original":"../components/posts-list-view.js"}],"format":"esm"},"src/pages/post-new.tsx":{"bytes":385,"imports":[{"path":"src/components/new-post-view.tsx","kind":"import-statement","original":"../components/new-post-view.js"}],"format":"esm"},"src/pages/post-edit.tsx":{"bytes":390,"imports":[{"path":"src/components/edit-post-view.tsx","kind":"import-statement","original":"../components/edit-post-view.js"}],"format":"esm"},"src/pages/media.tsx":{"bytes":381,"imports":[{"path":"src/components/media-view.tsx","kind":"import-statement","original":"../components/media-view.js"}],"format":"esm"},"src/pages/site-edit.tsx":{"bytes":2165,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"src/components/site-settings-form.tsx","kind":"import-statement","original":"../components/site-settings-form.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/site-theme.tsx":{"bytes":4013,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/theme-settings-form.tsx","kind":"import-statement","original":"../components/theme-settings-form.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/users-list.tsx":{"bytes":647,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/users-list-view.tsx","kind":"import-statement","original":"../components/users-list-view.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/mcp-tokens.tsx":{"bytes":1395,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/components/mcp-tokens-view.tsx","kind":"import-statement","original":"../components/mcp-tokens-view.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/pages/login.tsx":{"bytes":400,"imports":[{"path":"src/components/login-view.tsx","kind":"import-statement","original":"../components/login-view.js"}],"format":"esm"},"src/pages/index.ts":{"bytes":1392,"imports":[{"path":"src/pages/admin-layout.tsx","kind":"import-statement","original":"./admin-layout.js"},{"path":"src/pages/dashboard.tsx","kind":"import-statement","original":"./dashboard.js"},{"path":"src/pages/posts-list.tsx","kind":"import-statement","original":"./posts-list.js"},{"path":"src/pages/post-new.tsx","kind":"import-statement","original":"./post-new.js"},{"path":"src/pages/post-edit.tsx","kind":"import-statement","original":"./post-edit.js"},{"path":"src/pages/media.tsx","kind":"import-statement","original":"./media.js"},{"path":"src/pages/site-edit.tsx","kind":"import-statement","original":"./site-edit.js"},{"path":"src/pages/site-theme.tsx","kind":"import-statement","original":"./site-theme.js"},{"path":"src/pages/users-list.tsx","kind":"import-statement","original":"./users-list.js"},{"path":"src/pages/mcp-tokens.tsx","kind":"import-statement","original":"./mcp-tokens.js"},{"path":"src/pages/login.tsx","kind":"import-statement","original":"./login.js"}],"format":"esm"}},"outputs":{"dist/components/new-post-view.js":{"imports":[{"path":"dist/chunk-MDBBDBE5.js","kind":"import-statement"},{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["NewPostPage"],"entryPoint":"src/components/new-post-view.tsx","inputs":{},"bytes":249},"dist/components/posts-list-view.js":{"imports":[{"path":"dist/chunk-BF6XV6TP.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["PostsList"],"entryPoint":"src/components/posts-list-view.tsx","inputs":{},"bytes":152},"dist/components/users-list-view.js":{"imports":[{"path":"dist/chunk-DNMENH6C.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["UsersListView"],"entryPoint":"src/components/users-list-view.tsx","inputs":{},"bytes":160},"dist/lib/theme-actions.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"}],"exports":["invalidateSiteSettingsCache"],"entryPoint":"src/lib/theme-actions.ts","inputs":{},"bytes":126},"dist/pages/index.js":{"imports":[{"path":"dist/chunk-MDBBDBE5.js","kind":"import-statement"},{"path":"dist/chunk-BF6XV6TP.js","kind":"import-statement"},{"path":"dist/chunk-DNMENH6C.js","kind":"import-statement"},{"path":"dist/chunk-3QXCPMPD.js","kind":"import-statement"},{"path":"dist/chunk-GJSMMQVO.js","kind":"import-statement"},{"path":"dist/chunk-MHTKDXSP.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-ZR35TWHV.js","kind":"import-statement"},{"path":"dist/chunk-VZJU74K3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-Q3FMKPAQ.js","kind":"import-statement"},{"path":"dist/chunk-YNQR3AFO.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMcpTokensPage","createMediaPage","createNewPostPage","createPostsListPage","createSiteEditPage","createSiteThemePage","createUsersListPage"],"entryPoint":"src/pages/index.ts","inputs":{"src/pages/admin-layout.tsx":{"bytesInOutput":1118},"src/pages/index.ts":{"bytesInOutput":0},"src/pages/dashboard.tsx":{"bytesInOutput":71},"src/pages/posts-list.tsx":{"bytesInOutput":61},"src/pages/post-new.tsx":{"bytesInOutput":61},"src/pages/post-edit.tsx":{"bytesInOutput":63},"src/pages/media.tsx":{"bytesInOutput":57},"src/pages/site-edit.tsx":{"bytesInOutput":1723},"src/pages/site-theme.tsx":{"bytesInOutput":2299},"src/pages/users-list.tsx":{"bytesInOutput":404},"src/pages/mcp-tokens.tsx":{"bytesInOutput":679},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":7969},"dist/chunk-MDBBDBE5.js":{"imports":[{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["NewPostPage"],"inputs":{"src/components/new-post-view.tsx":{"bytesInOutput":363}},"bytes":523},"dist/chunk-BF6XV6TP.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["PostsList"],"inputs":{"src/components/posts-list-view.tsx":{"bytesInOutput":3221}},"bytes":3331},"dist/chunk-DNMENH6C.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["UsersListView"],"inputs":{"src/components/users-list-view.tsx":{"bytesInOutput":5995}},"bytes":6109},"dist/index.js":{"imports":[{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"@aws-amplify/adapter-nextjs","kind":"import-statement","external":true},{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/auth/server","kind":"import-statement","external":true}],"exports":["createAdmin","getDictionary","resolveLocale","translate"],"entryPoint":"src/index.ts","inputs":{"src/lib/amplify-server.ts":{"bytesInOutput":164},"src/lib/auth-server.ts":{"bytesInOutput":1143},"src/index.ts":{"bytesInOutput":1666}},"bytes":3258},"dist/api/index.js":{"imports":[{"path":"next/headers","kind":"import-statement","external":true},{"path":"aws-amplify/storage/server","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true}],"exports":["createMediaProxyRoute"],"entryPoint":"src/api/index.ts","inputs":{"src/api/media-proxy.ts":{"bytesInOutput":1883},"src/api/index.ts":{"bytesInOutput":0}},"bytes":1945},"dist/components/admin-dashboard.js":{"imports":[{"path":"dist/chunk-3QXCPMPD.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["AdminDashboard"],"entryPoint":"src/components/admin-dashboard.tsx","inputs":{},"bytes":162},"dist/chunk-3QXCPMPD.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminDashboard"],"inputs":{"src/components/admin-dashboard.tsx":{"bytesInOutput":2444}},"bytes":2559},"dist/components/edit-post-view.js":{"imports":[{"path":"dist/chunk-GJSMMQVO.js","kind":"import-statement"},{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["EditPostPage"],"entryPoint":"src/components/edit-post-view.tsx","inputs":{},"bytes":251},"dist/chunk-GJSMMQVO.js":{"imports":[{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["EditPostPage"],"inputs":{"src/components/edit-post-view.tsx":{"bytesInOutput":1024}},"bytes":1186},"dist/components/index.js":{"imports":[{"path":"dist/chunk-MHTKDXSP.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-UTQRFC6V.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-YNQR3AFO.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["AdminProviders","I18nProvider","ImageUploadDialog","MediaPicker","MediaUploader","PostForm","Sidebar","SiteSettingsForm","ThemeSettingsForm","invalidateSiteSettingsCache","publicMediaUrl","sanitizeName","setAdminMediaContext","uploadProcessedImage","useLocale","useT"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":0}},"bytes":916},"dist/chunk-MHTKDXSP.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"aws-amplify","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminProviders","Sidebar","SiteSettingsForm","ThemeSettingsForm"],"inputs":{"src/lib/amplify-client.ts":{"bytesInOutput":194},"src/lib/posts-provider.ts":{"bytesInOutput":3422},"src/lib/kv-provider.ts":{"bytesInOutput":2125},"src/lib/mcp-token-provider.ts":{"bytesInOutput":1513},"src/components/admin-providers.tsx":{"bytesInOutput":371},"src/components/sidebar.tsx":{"bytesInOutput":5789},"src/components/site-settings-form.tsx":{"bytesInOutput":6899},"src/components/theme-settings-form.tsx":{"bytesInOutput":21443}},"bytes":42427},"dist/chunk-D72XF3Q3.js":{"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"exports":["invalidateSiteSettingsCache"],"inputs":{"src/lib/theme-actions.ts":{"bytesInOutput":134}},"bytes":205},"dist/chunk-UTQRFC6V.js":{"imports":[{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"@tiptap/react","kind":"import-statement","external":true},{"path":"@tiptap/starter-kit","kind":"import-statement","external":true},{"path":"@tiptap/extension-link","kind":"import-statement","external":true},{"path":"@tiptap/extension-image","kind":"import-statement","external":true},{"path":"@tiptap/extension-table","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-row","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-header","kind":"import-statement","external":true},{"path":"@tiptap/extension-table-cell","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-list","kind":"import-statement","external":true},{"path":"@tiptap/extension-task-item","kind":"import-statement","external":true},{"path":"@tiptap/extension-underline","kind":"import-statement","external":true},{"path":"@tiptap/extension-highlight","kind":"import-statement","external":true},{"path":"@tiptap/extension-text-align","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"@tiptap/react/menus","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"jszip","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaPicker","PostForm"],"inputs":{"src/components/media-picker.tsx":{"bytesInOutput":4988},"src/components/post-form.tsx":{"bytesInOutput":16851},"src/editor/tiptap-editor.tsx":{"bytesInOutput":4031},"src/editor/toolbar.tsx":{"bytesInOutput":4823},"src/editor/table-controls.tsx":{"bytesInOutput":4227},"src/editor/image-bubble-menu.tsx":{"bytesInOutput":2901},"src/components/static-uploader.tsx":{"bytesInOutput":7717},"src/lib/static-bundle.ts":{"bytesInOutput":2806}},"bytes":48998},"dist/components/login-view.js":{"imports":[{"path":"dist/chunk-ZR35TWHV.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["LoginPage"],"entryPoint":"src/components/login-view.tsx","inputs":{},"bytes":152},"dist/chunk-ZR35TWHV.js":{"imports":[{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"next/navigation","kind":"import-statement","external":true},{"path":"aws-amplify/auth","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["LoginPage"],"inputs":{"src/components/login-view.tsx":{"bytesInOutput":6967}},"bytes":7072},"dist/components/mcp-tokens-view.js":{"imports":[{"path":"dist/chunk-VZJU74K3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["McpTokensView"],"entryPoint":"src/components/mcp-tokens-view.tsx","inputs":{},"bytes":191},"dist/chunk-VZJU74K3.js":{"imports":[{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"crypto","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["McpTokensView"],"inputs":{"src/components/mcp-tokens-view.tsx":{"bytesInOutput":12281},"src/lib/mcp-token-format.ts":{"bytesInOutput":459},"src/lib/mcp-token-storage.ts":{"bytesInOutput":575}},"bytes":13591},"dist/chunk-C7G5AQ3L.js":{"imports":[],"exports":["getMcpTokenStore","setMcpTokenStore"],"inputs":{"src/lib/mcp-token-store.ts":{"bytesInOutput":297}},"bytes":379},"dist/components/media-view.js":{"imports":[{"path":"dist/chunk-Q3FMKPAQ.js","kind":"import-statement"},{"path":"dist/chunk-YNQR3AFO.js","kind":"import-statement"},{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"}],"exports":["MediaPage"],"entryPoint":"src/components/media-view.tsx","inputs":{},"bytes":245},"dist/chunk-Q3FMKPAQ.js":{"imports":[{"path":"dist/chunk-YNQR3AFO.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaPage"],"inputs":{"src/components/media-view.tsx":{"bytesInOutput":358}},"bytes":518},"dist/chunk-YNQR3AFO.js":{"imports":[{"path":"dist/chunk-OMWVBK2C.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"lucide-react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["MediaUploader"],"inputs":{"src/components/media-uploader.tsx":{"bytesInOutput":9157}},"bytes":9433},"dist/chunk-OMWVBK2C.js":{"imports":[{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-TGEPARLA.js","kind":"import-statement"},{"path":"aws-amplify/storage","kind":"import-statement","external":true},{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react-image-crop","kind":"import-statement","external":true},{"path":"react-image-crop/dist/ReactCrop.css","kind":"import-statement","external":true},{"path":"ampless/media","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["ImageUploadDialog","createMediaRow","getMediaProcessingDefaults","sanitizeName","setAdminCmsConfigClient","uploadProcessedImage"],"inputs":{"src/lib/upload.ts":{"bytesInOutput":2048},"src/components/image-upload-dialog.tsx":{"bytesInOutput":12823},"src/lib/admin-config-client.ts":{"bytesInOutput":170}},"bytes":15391},"dist/chunk-2ITWLRYF.js":{"imports":[],"exports":["createMedia","publicMediaUrl","setAdminMediaContext"],"inputs":{"src/lib/media.ts":{"bytesInOutput":1326}},"bytes":1415},"dist/chunk-TGEPARLA.js":{"imports":[{"path":"dist/chunk-5DWBQ73J.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["I18nProvider","useLocale","useT"],"inputs":{"src/components/i18n-provider.tsx":{"bytesInOutput":785}},"bytes":922},"dist/chunk-5DWBQ73J.js":{"imports":[],"exports":["getDictionary","resolveLocale","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":11232},"src/locales/ja.json":{"bytesInOutput":21817},"src/lib/i18n.ts":{"bytesInOutput":1146}},"bytes":34321}}}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NewPostPage
3
- } from "../chunk-MVPZEJ42.js";
3
+ } from "../chunk-MDBBDBE5.js";
4
4
  import {
5
5
  PostsList
6
6
  } from "../chunk-BF6XV6TP.js";
@@ -12,15 +12,15 @@ import {
12
12
  } from "../chunk-3QXCPMPD.js";
13
13
  import {
14
14
  EditPostPage
15
- } from "../chunk-XQQRFWFR.js";
15
+ } from "../chunk-GJSMMQVO.js";
16
16
  import {
17
17
  AdminProviders,
18
18
  Sidebar,
19
19
  SiteSettingsForm,
20
20
  ThemeSettingsForm
21
- } from "../chunk-T2J5TEJC.js";
21
+ } from "../chunk-MHTKDXSP.js";
22
22
  import "../chunk-D72XF3Q3.js";
23
- import "../chunk-EBMSICAA.js";
23
+ import "../chunk-UTQRFC6V.js";
24
24
  import {
25
25
  LoginPage
26
26
  } from "../chunk-ZR35TWHV.js";
@@ -30,9 +30,9 @@ import {
30
30
  import "../chunk-C7G5AQ3L.js";
31
31
  import {
32
32
  MediaPage
33
- } from "../chunk-ODZGQTZW.js";
34
- import "../chunk-H7KD5FNW.js";
35
- import "../chunk-DB4DA6XR.js";
33
+ } from "../chunk-Q3FMKPAQ.js";
34
+ import "../chunk-YNQR3AFO.js";
35
+ import "../chunk-OMWVBK2C.js";
36
36
  import "../chunk-2ITWLRYF.js";
37
37
  import {
38
38
  I18nProvider
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ampless/admin",
3
- "version": "1.0.0-alpha.39",
3
+ "version": "1.0.0-alpha.40",
4
4
  "description": "Admin UI for ampless: post editor, media manager, site/theme settings",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -61,9 +61,9 @@
61
61
  "lucide-react": "^1.16.0",
62
62
  "react-image-crop": "^11.0.10",
63
63
  "tailwind-merge": "^3.6.0",
64
- "@ampless/mcp-server": "1.0.0-alpha.19",
65
- "@ampless/runtime": "1.0.0-alpha.21",
66
- "ampless": "1.0.0-alpha.15"
64
+ "@ampless/mcp-server": "1.0.0-alpha.20",
65
+ "@ampless/runtime": "1.0.0-alpha.22",
66
+ "ampless": "1.0.0-alpha.16"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "@aws-amplify/adapter-nextjs": "^1",