@ampless/admin 0.2.0-alpha.3 → 0.2.0-alpha.6

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.
@@ -55,9 +55,6 @@ function readAdminSiteIdFromCookie() {
55
55
  return first ?? DEFAULT_SITE_ID;
56
56
  }
57
57
 
58
- // src/components/admin-providers.tsx
59
- import { useEffect } from "react";
60
-
61
58
  // src/lib/amplify-client.ts
62
59
  import { Amplify } from "aws-amplify";
63
60
  var configured = false;
@@ -75,7 +72,6 @@ import {
75
72
  composeSiteIdSlug
76
73
  } from "ampless";
77
74
  function encodeBody(value) {
78
- if (typeof value === "string") return value;
79
75
  return JSON.stringify(value ?? null);
80
76
  }
81
77
  function decodeBody(value) {
@@ -120,36 +116,43 @@ function installAdminPostsProvider() {
120
116
  const newEntries = postTagEntries(post);
121
117
  const oldKeys = new Set(oldEntries.map(entryKey));
122
118
  const newKeys = new Set(newEntries.map(entryKey));
119
+ function fullRow(e) {
120
+ return {
121
+ siteIdTag: e.siteIdTag,
122
+ publishedAtPostId: e.publishedAtPostId,
123
+ siteId: post.siteId,
124
+ tag: e.siteIdTag.slice(post.siteId.length + 1),
125
+ postId: post.postId,
126
+ publishedAt: post.publishedAt,
127
+ slug: post.slug,
128
+ title: post.title,
129
+ excerpt: post.excerpt,
130
+ tags: post.tags ?? []
131
+ };
132
+ }
133
+ async function upsertPostTag(e) {
134
+ const row = fullRow(e);
135
+ const upd = await client.models.PostTag.update(row);
136
+ if (!upd.errors) return;
137
+ const cre = await client.models.PostTag.create(row);
138
+ if (cre.errors) {
139
+ throw new Error(upd.errors[0]?.message ?? "PostTag.update failed");
140
+ }
141
+ }
123
142
  await Promise.all(
124
143
  oldEntries.filter((e) => !newKeys.has(entryKey(e))).map((e) => client.models.PostTag.delete(e))
125
144
  );
126
145
  await Promise.all(
127
- newEntries.filter((e) => !oldKeys.has(entryKey(e))).map(
128
- (e) => client.models.PostTag.create({
129
- siteIdTag: e.siteIdTag,
130
- publishedAtPostId: e.publishedAtPostId,
131
- siteId: post.siteId,
132
- tag: e.siteIdTag.slice(post.siteId.length + 1),
133
- postId: post.postId,
134
- publishedAt: post.publishedAt,
135
- slug: post.slug,
136
- title: post.title,
137
- excerpt: post.excerpt,
138
- tags: post.tags ?? []
139
- })
140
- )
146
+ newEntries.filter((e) => !oldKeys.has(entryKey(e))).map(async (e) => {
147
+ const cre = await client.models.PostTag.create(fullRow(e));
148
+ if (!cre.errors) return;
149
+ const upd = await client.models.PostTag.update(fullRow(e));
150
+ if (upd.errors)
151
+ throw new Error(cre.errors[0]?.message ?? "PostTag.create failed");
152
+ })
141
153
  );
142
154
  await Promise.all(
143
- newEntries.filter((e) => oldKeys.has(entryKey(e))).map(
144
- (e) => client.models.PostTag.update({
145
- siteIdTag: e.siteIdTag,
146
- publishedAtPostId: e.publishedAtPostId,
147
- slug: post.slug,
148
- title: post.title,
149
- excerpt: post.excerpt,
150
- tags: post.tags ?? []
151
- })
152
- )
155
+ newEntries.filter((e) => oldKeys.has(entryKey(e))).map(upsertPostTag)
153
156
  );
154
157
  }
155
158
  const provider = {
@@ -328,15 +331,13 @@ function AdminProviders({ outputs, cmsConfig: cmsConfig3, children }) {
328
331
  setAdminCmsConfig(cmsConfig3);
329
332
  setAdminCmsConfigClient(cmsConfig3);
330
333
  setAdminMediaContext(outputs, cmsConfig3);
331
- useEffect(() => {
332
- installAdminPostsProvider();
333
- installAdminKvProvider();
334
- }, []);
334
+ installAdminPostsProvider();
335
+ installAdminKvProvider();
335
336
  return /* @__PURE__ */ jsx2(Fragment, { children });
336
337
  }
337
338
 
338
339
  // src/components/admin-dashboard.tsx
339
- import { useEffect as useEffect2, useState } from "react";
340
+ import { useEffect, useState } from "react";
340
341
  import Link from "next/link";
341
342
  import { listPosts } from "ampless";
342
343
  import { Button, Card, CardContent, CardHeader, CardTitle } from "@ampless/runtime/ui";
@@ -345,7 +346,7 @@ function AdminDashboard() {
345
346
  const t = useT();
346
347
  const [posts, setPosts] = useState([]);
347
348
  const [loading, setLoading] = useState(true);
348
- useEffect2(() => {
349
+ useEffect(() => {
349
350
  listPosts({ status: "all" }).then(setPosts).finally(() => setLoading(false));
350
351
  }, []);
351
352
  const published = posts.filter((p) => p.status === "published").length;
@@ -376,7 +377,7 @@ function AdminDashboard() {
376
377
  }
377
378
 
378
379
  // src/components/posts-list-view.tsx
379
- import { useEffect as useEffect3, useState as useState2 } from "react";
380
+ import { useEffect as useEffect2, useState as useState2 } from "react";
380
381
  import Link2 from "next/link";
381
382
  import { listPosts as listPosts2 } from "ampless";
382
383
  import {
@@ -393,7 +394,7 @@ function PostsList() {
393
394
  const t = useT();
394
395
  const [posts, setPosts] = useState2([]);
395
396
  const [loading, setLoading] = useState2(true);
396
- useEffect3(() => {
397
+ useEffect2(() => {
397
398
  const siteId = readAdminSiteIdFromCookie();
398
399
  listPosts2({ status: "all", siteId }).then(setPosts).finally(() => setLoading(false));
399
400
  }, []);
@@ -457,7 +458,7 @@ async function uploadProcessedImage(file, options) {
457
458
  }
458
459
 
459
460
  // src/components/image-upload-dialog.tsx
460
- import { useEffect as useEffect4, useRef, useState as useState3 } from "react";
461
+ import { useEffect as useEffect3, useRef, useState as useState3 } from "react";
461
462
  import ReactCrop, { centerCrop, makeAspectCrop } from "react-image-crop";
462
463
  import "react-image-crop/dist/ReactCrop.css";
463
464
  import { shouldSkipProcessing } from "ampless/media";
@@ -535,7 +536,7 @@ function ImageUploadDialog({
535
536
  const [maxDimension, setMaxDimension] = useState3(defaultMaxDimension);
536
537
  const [previewUrl, setPreviewUrl] = useState3(null);
537
538
  const imgRef = useRef(null);
538
- useEffect4(() => {
539
+ useEffect3(() => {
539
540
  setOriginal(false);
540
541
  setAspect("free");
541
542
  setCrop(void 0);
@@ -546,13 +547,13 @@ function ImageUploadDialog({
546
547
  setQuality(defaultQuality);
547
548
  setMaxDimension(defaultMaxDimension);
548
549
  }, [file, defaultQuality, defaultMaxDimension]);
549
- useEffect4(() => {
550
+ useEffect3(() => {
550
551
  if (!naturalSize) return;
551
552
  const next = buildInitialCrop(naturalSize.width, naturalSize.height, ASPECTS[aspect]);
552
553
  setCrop(next);
553
554
  setPercentCrop(next);
554
555
  }, [aspect, naturalSize]);
555
- useEffect4(() => {
556
+ useEffect3(() => {
556
557
  if (!file) {
557
558
  setPreviewUrl(null);
558
559
  return;
@@ -773,7 +774,7 @@ function formatBytes(bytes) {
773
774
  }
774
775
 
775
776
  // src/components/media-picker.tsx
776
- import { useEffect as useEffect5, useRef as useRef2, useState as useState4 } from "react";
777
+ import { useEffect as useEffect4, useRef as useRef2, useState as useState4 } from "react";
777
778
  import { list } from "aws-amplify/storage";
778
779
  import { Upload } from "lucide-react";
779
780
  import {
@@ -795,7 +796,7 @@ function MediaPicker({ trigger, onSelect }) {
795
796
  const [pendingUpload, setPendingUpload] = useState4(null);
796
797
  const [uploading, setUploading] = useState4(false);
797
798
  const fileInputRef = useRef2(null);
798
- useEffect5(() => {
799
+ useEffect4(() => {
799
800
  if (!open) return;
800
801
  let cancelled = false;
801
802
  setLoading(true);
@@ -1484,7 +1485,7 @@ function NewPostPage() {
1484
1485
  }
1485
1486
 
1486
1487
  // src/components/edit-post-view.tsx
1487
- import { useEffect as useEffect6, useState as useState6, use } from "react";
1488
+ import { useEffect as useEffect5, useState as useState6, use } from "react";
1488
1489
  import { notFound } from "next/navigation";
1489
1490
  import { getPostById } from "ampless";
1490
1491
  import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
@@ -1494,7 +1495,7 @@ function EditPostPage({ params }) {
1494
1495
  const [post, setPost] = useState6(null);
1495
1496
  const [loading, setLoading] = useState6(true);
1496
1497
  const [missing, setMissing] = useState6(false);
1497
- useEffect6(() => {
1498
+ useEffect5(() => {
1498
1499
  const siteId = readAdminSiteIdFromCookie();
1499
1500
  getPostById(postId, { siteId }).then((p) => {
1500
1501
  if (!p) setMissing(true);
@@ -1510,7 +1511,7 @@ function EditPostPage({ params }) {
1510
1511
  }
1511
1512
 
1512
1513
  // src/components/media-uploader.tsx
1513
- import { useState as useState7, useEffect as useEffect7, useCallback, useRef as useRef4 } from "react";
1514
+ import { useState as useState7, useEffect as useEffect6, useCallback, useRef as useRef4 } from "react";
1514
1515
  import { uploadData as uploadData2, list as list2, remove, isCancelError } from "aws-amplify/storage";
1515
1516
  import { processImage as processImage2 } from "ampless/media";
1516
1517
  import { Button as Button8, Input as Input3 } from "@ampless/runtime/ui";
@@ -1560,7 +1561,7 @@ function MediaUploader() {
1560
1561
  setError(err instanceof Error ? err.message : String(err));
1561
1562
  }
1562
1563
  }, []);
1563
- useEffect7(() => {
1564
+ useEffect6(() => {
1564
1565
  refresh();
1565
1566
  }, [refresh]);
1566
1567
  function handleFiles(e) {
@@ -36,8 +36,17 @@ interface Props$3 {
36
36
  * the client-side state modules, and installs the admin's posts / kv
37
37
  * providers so 'ampless'-imported functions hit the AppSync client.
38
38
  *
39
- * All side effects are idempotent; mounting this multiple times (e.g.
40
- * during HMR) won't double-register anything.
39
+ * All bootstrap calls happen synchronously during render, NOT in
40
+ * `useEffect`. React runs child useEffects before parent useEffects,
41
+ * so if `installAdminPostsProvider` were inside an effect, a child
42
+ * page's first `listPosts()` call (also in a useEffect) would race
43
+ * the install and fall back to ampless's dummy data. Synchronous
44
+ * registration guarantees the provider is in place before any child
45
+ * component mounts.
46
+ *
47
+ * All side effects are idempotent (the install functions guard with an
48
+ * `installed` flag) — mounting this multiple times (e.g. during HMR or
49
+ * remount) is safe.
41
50
  */
42
51
  declare function AdminProviders({ outputs, cmsConfig, children }: Props$3): react_jsx_runtime.JSX.Element;
43
52
 
@@ -22,7 +22,7 @@ import {
22
22
  uploadProcessedImage,
23
23
  useLocale,
24
24
  useT
25
- } from "../chunk-LYRCUL7H.js";
25
+ } from "../chunk-7WFZULH7.js";
26
26
  import {
27
27
  ADMIN_SITE_COOKIE,
28
28
  publicMediaUrl,
@@ -1 +1 @@
1
- {"inputs":{"src/locales/en.json":{"bytes":7568,"imports":[]},"src/locales/ja.json":{"bytes":9476,"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/admin-site-cookie.ts":{"bytes":420,"imports":[],"format":"esm"},"src/lib/admin-site.ts":{"bytes":1353,"imports":[{"path":"next/headers","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"}],"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":5110,"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/admin-site.ts","kind":"import-statement","original":"./lib/admin-site.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/lib/amplify-client.ts":{"bytes":612,"imports":[{"path":"aws-amplify","kind":"import-statement","external":true}],"format":"esm"},"src/lib/posts-provider.ts":{"bytes":9743,"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":4538,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/admin-site-client.ts":{"bytes":1745,"imports":[{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"}],"format":"esm"},"src/lib/admin-config-client.ts":{"bytes":626,"imports":[],"format":"esm"},"src/components/admin-providers.tsx":{"bytes":1706,"imports":[{"path":"react","kind":"import-statement","external":true},{"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/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.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/components/admin-dashboard.tsx":{"bytes":2180,"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/posts-list-view.tsx":{"bytes":3254,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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/toolbar.tsx":{"bytes":3072,"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":"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":2323,"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":"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/components/post-form.tsx":{"bytes":14850,"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":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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":301,"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/edit-post-view.tsx":{"bytes":1116,"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/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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/media-view.tsx":{"bytes":306,"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/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/theme-actions.ts":{"bytes":858,"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"format":"esm"},"src/components/sidebar.tsx":{"bytes":2723,"imports":[{"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-selector.tsx":{"bytes":1324,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-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/components/site-settings-form.tsx":{"bytes":6542,"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":21046,"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/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/index.ts":{"bytes":1996,"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/components/admin-dashboard.tsx","kind":"import-statement","original":"./admin-dashboard.js"},{"path":"src/components/posts-list-view.tsx","kind":"import-statement","original":"./posts-list-view.js"},{"path":"src/components/new-post-view.tsx","kind":"import-statement","original":"./new-post-view.js"},{"path":"src/components/edit-post-view.tsx","kind":"import-statement","original":"./edit-post-view.js"},{"path":"src/components/media-view.tsx","kind":"import-statement","original":"./media-view.js"},{"path":"src/components/login-view.tsx","kind":"import-statement","original":"./login-view.js"},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.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/site-selector.tsx","kind":"import-statement","original":"./site-selector.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/pages/admin-layout.tsx":{"bytes":1682,"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/site-selector.tsx","kind":"import-statement","original":"../components/site-selector.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/sites-list.tsx":{"bytes":2665,"imports":[{"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}],"format":"esm"},"src/pages/site-edit.tsx":{"bytes":2396,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","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":2201,"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/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":1338,"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/sites-list.tsx","kind":"import-statement","original":"./sites-list.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/login.tsx","kind":"import-statement","original":"./login.js"}],"format":"esm"}},"outputs":{"dist/index.js":{"imports":[{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"next/headers","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"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/admin-site.ts":{"bytesInOutput":732},"src/lib/amplify-server.ts":{"bytesInOutput":164},"src/lib/auth-server.ts":{"bytesInOutput":1165},"src/index.ts":{"bytesInOutput":1312}},"bytes":3667},"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/index.js":{"imports":[{"path":"dist/chunk-LYRCUL7H.js","kind":"import-statement"},{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"}],"exports":["ADMIN_SITE_COOKIE","AdminDashboard","AdminProviders","EditPostPage","I18nProvider","ImageUploadDialog","LoginPage","MediaPage","MediaPicker","MediaUploader","NewPostPage","PostForm","PostsList","Sidebar","SiteSelector","SiteSettingsForm","ThemeSettingsForm","invalidateSiteSettingsCache","publicMediaUrl","readAdminSiteIdFromCookie","sanitizeName","setAdminCmsConfig","setAdminMediaContext","uploadProcessedImage","useLocale","useT"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":0}},"bytes":1048},"dist/lib/theme-actions.js":{"imports":[{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"}],"exports":["invalidateSiteSettingsCache"],"entryPoint":"src/lib/theme-actions.ts","inputs":{},"bytes":126},"dist/pages/index.js":{"imports":[{"path":"dist/chunk-LYRCUL7H.js","kind":"import-statement"},{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.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":"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":"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/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMediaPage","createNewPostPage","createPostsListPage","createSiteEditPage","createSiteThemePage","createSitesListPage"],"entryPoint":"src/pages/index.ts","inputs":{"src/pages/admin-layout.tsx":{"bytesInOutput":997},"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/sites-list.tsx":{"bytesInOutput":2624},"src/pages/site-edit.tsx":{"bytesInOutput":2296},"src/pages/site-theme.tsx":{"bytesInOutput":1737},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":8824},"dist/chunk-LYRCUL7H.js":{"imports":[{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"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":"react/jsx-runtime","kind":"import-statement","external":true},{"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},{"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},{"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":"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},{"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":"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":"@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/jsx-runtime","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":"react/jsx-runtime","kind":"import-statement","external":true},{"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},{"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":"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},{"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":"next/navigation","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/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminDashboard","AdminProviders","EditPostPage","I18nProvider","ImageUploadDialog","LoginPage","MediaPage","MediaPicker","MediaUploader","NewPostPage","PostForm","PostsList","Sidebar","SiteSelector","SiteSettingsForm","ThemeSettingsForm","readAdminSiteIdFromCookie","sanitizeName","setAdminCmsConfig","uploadProcessedImage","useLocale","useT"],"inputs":{"src/components/i18n-provider.tsx":{"bytesInOutput":785},"src/lib/admin-site-client.ts":{"bytesInOutput":642},"src/components/admin-providers.tsx":{"bytesInOutput":462},"src/lib/amplify-client.ts":{"bytesInOutput":194},"src/lib/posts-provider.ts":{"bytesInOutput":6137},"src/lib/kv-provider.ts":{"bytesInOutput":2282},"src/lib/admin-config-client.ts":{"bytesInOutput":173},"src/components/admin-dashboard.tsx":{"bytesInOutput":2406},"src/components/posts-list-view.tsx":{"bytesInOutput":3305},"src/lib/upload.ts":{"bytesInOutput":807},"src/components/image-upload-dialog.tsx":{"bytesInOutput":12953},"src/components/media-picker.tsx":{"bytesInOutput":5186},"src/components/post-form.tsx":{"bytesInOutput":14161},"src/editor/tiptap-editor.tsx":{"bytesInOutput":1549},"src/editor/toolbar.tsx":{"bytesInOutput":3038},"src/editor/image-bubble-menu.tsx":{"bytesInOutput":2901},"src/components/new-post-view.tsx":{"bytesInOutput":341},"src/components/edit-post-view.tsx":{"bytesInOutput":1068},"src/components/media-uploader.tsx":{"bytesInOutput":9183},"src/components/media-view.tsx":{"bytesInOutput":338},"src/components/login-view.tsx":{"bytesInOutput":7191},"src/components/sidebar.tsx":{"bytesInOutput":2995},"src/components/site-selector.tsx":{"bytesInOutput":971},"src/components/site-settings-form.tsx":{"bytesInOutput":7017},"src/components/theme-settings-form.tsx":{"bytesInOutput":16827}},"bytes":104452},"dist/chunk-FI7CM4LH.js":{"imports":[],"exports":["ADMIN_SITE_COOKIE","createMedia","getDictionary","publicMediaUrl","resolveLocale","setAdminMediaContext","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":7204},"src/locales/ja.json":{"bytesInOutput":13701},"src/lib/i18n.ts":{"bytesInOutput":1146},"src/lib/media.ts":{"bytesInOutput":1326},"src/lib/admin-site-cookie.ts":{"bytesInOutput":41}},"bytes":23676},"dist/chunk-VXEVLHGL.js":{"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"exports":["invalidateSiteSettingsCache"],"inputs":{"src/lib/theme-actions.ts":{"bytesInOutput":135}},"bytes":206}}}
1
+ {"inputs":{"src/locales/en.json":{"bytes":7568,"imports":[]},"src/locales/ja.json":{"bytes":9476,"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/admin-site-cookie.ts":{"bytes":420,"imports":[],"format":"esm"},"src/lib/admin-site.ts":{"bytes":1353,"imports":[{"path":"next/headers","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"}],"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":5110,"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/admin-site.ts","kind":"import-statement","original":"./lib/admin-site.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/lib/amplify-client.ts":{"bytes":612,"imports":[{"path":"aws-amplify","kind":"import-statement","external":true}],"format":"esm"},"src/lib/posts-provider.ts":{"bytes":11526,"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":4538,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/admin-site-client.ts":{"bytes":1745,"imports":[{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"},{"path":"src/lib/admin-site-cookie.ts","kind":"import-statement","original":"./admin-site-cookie.js"}],"format":"esm"},"src/lib/admin-config-client.ts":{"bytes":626,"imports":[],"format":"esm"},"src/components/admin-providers.tsx":{"bytes":1777,"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/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.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/components/admin-dashboard.tsx":{"bytes":2180,"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/posts-list-view.tsx":{"bytes":3254,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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/toolbar.tsx":{"bytes":3072,"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":"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":2323,"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":"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/components/post-form.tsx":{"bytes":14850,"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":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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":301,"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/edit-post-view.tsx":{"bytes":1116,"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/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.js"},{"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/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/media-view.tsx":{"bytes":306,"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/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/theme-actions.ts":{"bytes":858,"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"format":"esm"},"src/components/sidebar.tsx":{"bytes":2723,"imports":[{"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-selector.tsx":{"bytes":1324,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-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/components/site-settings-form.tsx":{"bytes":6542,"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":21046,"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/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/index.ts":{"bytes":1996,"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/components/admin-dashboard.tsx","kind":"import-statement","original":"./admin-dashboard.js"},{"path":"src/components/posts-list-view.tsx","kind":"import-statement","original":"./posts-list-view.js"},{"path":"src/components/new-post-view.tsx","kind":"import-statement","original":"./new-post-view.js"},{"path":"src/components/edit-post-view.tsx","kind":"import-statement","original":"./edit-post-view.js"},{"path":"src/components/media-view.tsx","kind":"import-statement","original":"./media-view.js"},{"path":"src/components/login-view.tsx","kind":"import-statement","original":"./login-view.js"},{"path":"src/lib/admin-site-client.ts","kind":"import-statement","original":"../lib/admin-site-client.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/site-selector.tsx","kind":"import-statement","original":"./site-selector.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/pages/admin-layout.tsx":{"bytes":2597,"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/site-selector.tsx","kind":"import-statement","original":"../components/site-selector.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/sites-list.tsx":{"bytes":2665,"imports":[{"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}],"format":"esm"},"src/pages/site-edit.tsx":{"bytes":2396,"imports":[{"path":"next/link","kind":"import-statement","external":true},{"path":"ampless","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":2201,"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/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":1338,"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/sites-list.tsx","kind":"import-statement","original":"./sites-list.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/login.tsx","kind":"import-statement","original":"./login.js"}],"format":"esm"}},"outputs":{"dist/index.js":{"imports":[{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"next/headers","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"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/admin-site.ts":{"bytesInOutput":732},"src/lib/amplify-server.ts":{"bytesInOutput":164},"src/lib/auth-server.ts":{"bytesInOutput":1165},"src/index.ts":{"bytesInOutput":1312}},"bytes":3667},"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/index.js":{"imports":[{"path":"dist/chunk-7WFZULH7.js","kind":"import-statement"},{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"}],"exports":["ADMIN_SITE_COOKIE","AdminDashboard","AdminProviders","EditPostPage","I18nProvider","ImageUploadDialog","LoginPage","MediaPage","MediaPicker","MediaUploader","NewPostPage","PostForm","PostsList","Sidebar","SiteSelector","SiteSettingsForm","ThemeSettingsForm","invalidateSiteSettingsCache","publicMediaUrl","readAdminSiteIdFromCookie","sanitizeName","setAdminCmsConfig","setAdminMediaContext","uploadProcessedImage","useLocale","useT"],"entryPoint":"src/components/index.ts","inputs":{"src/components/index.ts":{"bytesInOutput":0}},"bytes":1048},"dist/lib/theme-actions.js":{"imports":[{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"}],"exports":["invalidateSiteSettingsCache"],"entryPoint":"src/lib/theme-actions.ts","inputs":{},"bytes":126},"dist/pages/index.js":{"imports":[{"path":"dist/chunk-7WFZULH7.js","kind":"import-statement"},{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.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":"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":"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/link","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMediaPage","createNewPostPage","createPostsListPage","createSiteEditPage","createSiteThemePage","createSitesListPage"],"entryPoint":"src/pages/index.ts","inputs":{"src/pages/admin-layout.tsx":{"bytesInOutput":1263},"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/sites-list.tsx":{"bytesInOutput":2624},"src/pages/site-edit.tsx":{"bytesInOutput":2296},"src/pages/site-theme.tsx":{"bytesInOutput":1737},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":9090},"dist/chunk-7WFZULH7.js":{"imports":[{"path":"dist/chunk-FI7CM4LH.js","kind":"import-statement"},{"path":"dist/chunk-VXEVLHGL.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"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":"react/jsx-runtime","kind":"import-statement","external":true},{"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},{"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},{"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":"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},{"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":"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":"@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/jsx-runtime","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":"react/jsx-runtime","kind":"import-statement","external":true},{"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},{"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":"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},{"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":"next/navigation","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/ui","kind":"import-statement","external":true},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"exports":["AdminDashboard","AdminProviders","EditPostPage","I18nProvider","ImageUploadDialog","LoginPage","MediaPage","MediaPicker","MediaUploader","NewPostPage","PostForm","PostsList","Sidebar","SiteSelector","SiteSettingsForm","ThemeSettingsForm","readAdminSiteIdFromCookie","sanitizeName","setAdminCmsConfig","uploadProcessedImage","useLocale","useT"],"inputs":{"src/components/i18n-provider.tsx":{"bytesInOutput":785},"src/lib/admin-site-client.ts":{"bytesInOutput":642},"src/lib/amplify-client.ts":{"bytesInOutput":194},"src/lib/posts-provider.ts":{"bytesInOutput":6430},"src/lib/kv-provider.ts":{"bytesInOutput":2282},"src/lib/admin-config-client.ts":{"bytesInOutput":173},"src/components/admin-providers.tsx":{"bytesInOutput":393},"src/components/admin-dashboard.tsx":{"bytesInOutput":2391},"src/components/posts-list-view.tsx":{"bytesInOutput":3305},"src/lib/upload.ts":{"bytesInOutput":807},"src/components/image-upload-dialog.tsx":{"bytesInOutput":12953},"src/components/media-picker.tsx":{"bytesInOutput":5186},"src/components/post-form.tsx":{"bytesInOutput":14161},"src/editor/tiptap-editor.tsx":{"bytesInOutput":1549},"src/editor/toolbar.tsx":{"bytesInOutput":3038},"src/editor/image-bubble-menu.tsx":{"bytesInOutput":2901},"src/components/new-post-view.tsx":{"bytesInOutput":341},"src/components/edit-post-view.tsx":{"bytesInOutput":1068},"src/components/media-uploader.tsx":{"bytesInOutput":9183},"src/components/media-view.tsx":{"bytesInOutput":338},"src/components/login-view.tsx":{"bytesInOutput":7191},"src/components/sidebar.tsx":{"bytesInOutput":2995},"src/components/site-selector.tsx":{"bytesInOutput":971},"src/components/site-settings-form.tsx":{"bytesInOutput":7017},"src/components/theme-settings-form.tsx":{"bytesInOutput":16827}},"bytes":104622},"dist/chunk-FI7CM4LH.js":{"imports":[],"exports":["ADMIN_SITE_COOKIE","createMedia","getDictionary","publicMediaUrl","resolveLocale","setAdminMediaContext","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":7204},"src/locales/ja.json":{"bytesInOutput":13701},"src/lib/i18n.ts":{"bytesInOutput":1146},"src/lib/media.ts":{"bytesInOutput":1326},"src/lib/admin-site-cookie.ts":{"bytesInOutput":41}},"bytes":23676},"dist/chunk-VXEVLHGL.js":{"imports":[{"path":"next/cache","kind":"import-statement","external":true}],"exports":["invalidateSiteSettingsCache"],"inputs":{"src/lib/theme-actions.ts":{"bytesInOutput":135}},"bytes":206}}}
@@ -11,13 +11,21 @@ import {
11
11
  SiteSelector,
12
12
  SiteSettingsForm,
13
13
  ThemeSettingsForm
14
- } from "../chunk-LYRCUL7H.js";
14
+ } from "../chunk-7WFZULH7.js";
15
15
  import "../chunk-FI7CM4LH.js";
16
16
  import "../chunk-VXEVLHGL.js";
17
17
 
18
18
  // src/pages/admin-layout.tsx
19
19
  import { redirect } from "next/navigation";
20
20
  import { jsx, jsxs } from "react/jsx-runtime";
21
+ function sanitizeCmsConfigForClient(config) {
22
+ return {
23
+ ...config,
24
+ plugins: (config.plugins ?? []).map(
25
+ (p) => typeof p === "string" ? p : { name: p.name, apiVersion: p.apiVersion, trust_level: p.trust_level }
26
+ )
27
+ };
28
+ }
21
29
  function createAdminLayout(admin) {
22
30
  async function AdminLayout({ children }) {
23
31
  const session = await admin.getServerSession();
@@ -27,7 +35,7 @@ function createAdminLayout(admin) {
27
35
  const sites = admin.adminSiteOptions();
28
36
  const currentSiteId = await admin.currentAdminSiteId();
29
37
  const selector = sites.length > 0 ? /* @__PURE__ */ jsx(SiteSelector, { current: currentSiteId, sites }) : null;
30
- return /* @__PURE__ */ jsx(AdminProviders, { outputs: admin.outputs, cmsConfig: admin.cmsConfig, children: /* @__PURE__ */ jsx(I18nProvider, { locale: admin.locale, dict: admin.dict, children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-screen", children: [
38
+ return /* @__PURE__ */ jsx(AdminProviders, { outputs: admin.outputs, cmsConfig: sanitizeCmsConfigForClient(admin.cmsConfig), children: /* @__PURE__ */ jsx(I18nProvider, { locale: admin.locale, dict: admin.dict, children: /* @__PURE__ */ jsxs("div", { className: "flex min-h-screen", children: [
31
39
  /* @__PURE__ */ jsx(Sidebar, { email: session.email, siteSelector: selector }),
32
40
  /* @__PURE__ */ jsx("main", { className: "flex-1 overflow-auto", children })
33
41
  ] }) }) });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ampless/admin",
3
- "version": "0.2.0-alpha.3",
3
+ "version": "0.2.0-alpha.6",
4
4
  "description": "Admin UI for ampless: post editor, media manager, site/theme settings",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -51,7 +51,7 @@
51
51
  "react-image-crop": "^11.0.7",
52
52
  "tailwind-merge": "^3.6.0",
53
53
  "ampless": "0.2.0-alpha.1",
54
- "@ampless/runtime": "0.2.0-alpha.2"
54
+ "@ampless/runtime": "0.2.0-alpha.3"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "next": "^15 || ^16",