@ampless/admin 1.0.0-alpha.57 → 1.0.0-alpha.59

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.
@@ -8,11 +8,11 @@ import {
8
8
  } from "./chunk-2SVJONQ7.js";
9
9
 
10
10
  // src/components/plugin-settings-form.tsx
11
- import { useState as useState2 } from "react";
11
+ import { useState as useState2, useEffect as useEffect2 } from "react";
12
12
  import {
13
- resolveLocalized as resolveLocalized2
13
+ resolveLocalized as resolveLocalized3
14
14
  } from "ampless";
15
- import { Button, Input, Label as Label2, Textarea } from "@ampless/runtime/ui";
15
+ import { Button as Button2, Input as Input2, Label as Label3, Textarea } from "@ampless/runtime/ui";
16
16
 
17
17
  // src/lib/plugin-settings.ts
18
18
  import {
@@ -49,6 +49,97 @@ async function deletePluginPublicSetting(instanceId, field) {
49
49
  await store.remove(SITE_CONFIG_PK, pluginSettingKey(instanceId, field.key));
50
50
  }
51
51
 
52
+ // src/lib/plugin-secret.ts
53
+ import { generateClient } from "aws-amplify/api";
54
+ import { isValidPluginKey as isValidPluginKey2, validatePluginSettingValue as validatePluginSettingValue2 } from "ampless";
55
+ function pluginSecretKey(instanceId, fieldKey) {
56
+ return `plugins.${instanceId}.${fieldKey}`;
57
+ }
58
+ function requireClient() {
59
+ return generateClient();
60
+ }
61
+ function requireIndicatorModel(client) {
62
+ const m = client.models.PluginSecretIndicator;
63
+ if (!m) {
64
+ throw new Error(
65
+ "PluginSecretIndicator model is not available on the AppSync client. Did you redeploy the sandbox? Run `npx ampx sandbox` and wait for it to finish, then reload this page."
66
+ );
67
+ }
68
+ return m;
69
+ }
70
+ function requireSetMutation(client) {
71
+ const fn = client.mutations.setPluginSecret;
72
+ if (!fn) {
73
+ throw new Error(
74
+ "setPluginSecret mutation is not available on the AppSync client. Ensure pluginSecretHandlerFunction is wired in amplessSchemaModels() and the sandbox is running."
75
+ );
76
+ }
77
+ return fn;
78
+ }
79
+ function requireClearMutation(client) {
80
+ const fn = client.mutations.clearPluginSecret;
81
+ if (!fn) {
82
+ throw new Error(
83
+ "clearPluginSecret mutation is not available on the AppSync client. Ensure pluginSecretHandlerFunction is wired in amplessSchemaModels() and the sandbox is running."
84
+ );
85
+ }
86
+ return fn;
87
+ }
88
+ async function setPluginSecret(field, instanceId, value) {
89
+ if (!isValidPluginKey2(instanceId)) {
90
+ throw new Error(`[plugin-secret] Invalid instanceId: "${instanceId}"`);
91
+ }
92
+ if (!isValidPluginKey2(field.key)) {
93
+ throw new Error(`[plugin-secret] Invalid fieldKey: "${field.key}"`);
94
+ }
95
+ if (typeof value !== "string") {
96
+ throw new Error(`[plugin-secret] value must be a string`);
97
+ }
98
+ const validated = validatePluginSettingValue2(
99
+ field,
100
+ value,
101
+ "strict"
102
+ );
103
+ if (validated === null) {
104
+ throw new Error(
105
+ `[plugin-secret] Value for field "${field.key}" failed validation (maxLength, pattern, or required constraint).`
106
+ );
107
+ }
108
+ const client = requireClient();
109
+ const mutation = requireSetMutation(client);
110
+ const { errors } = await mutation({ fieldKey: field.key, instanceId, value });
111
+ if (errors && errors.length > 0) {
112
+ throw new Error(errors[0]?.message ?? "setPluginSecret mutation failed");
113
+ }
114
+ }
115
+ async function clearPluginSecret(instanceId, fieldKey) {
116
+ if (!isValidPluginKey2(instanceId)) {
117
+ throw new Error(`[plugin-secret] Invalid instanceId: "${instanceId}"`);
118
+ }
119
+ if (!isValidPluginKey2(fieldKey)) {
120
+ throw new Error(`[plugin-secret] Invalid fieldKey: "${fieldKey}"`);
121
+ }
122
+ const client = requireClient();
123
+ const mutation = requireClearMutation(client);
124
+ const { errors } = await mutation({ fieldKey, instanceId });
125
+ if (errors && errors.length > 0) {
126
+ throw new Error(errors[0]?.message ?? "clearPluginSecret mutation failed");
127
+ }
128
+ }
129
+ async function hasPluginSecret(instanceId, fieldKey) {
130
+ if (!isValidPluginKey2(instanceId)) return false;
131
+ if (!isValidPluginKey2(fieldKey)) return false;
132
+ try {
133
+ const client = requireClient();
134
+ const model = requireIndicatorModel(client);
135
+ const sk = pluginSecretKey(instanceId, fieldKey);
136
+ const result = await model.get({ siteId: "default", sk });
137
+ return result.data !== null;
138
+ } catch {
139
+ return false;
140
+ }
141
+ }
142
+
52
143
  // src/components/repeatable-field-editor.tsx
53
144
  import { useEffect, useState } from "react";
54
145
  import { resolveLocalized } from "ampless";
@@ -223,8 +314,215 @@ function RepeatableFieldEditor({
223
314
  );
224
315
  }
225
316
 
226
- // src/components/plugin-settings-form.tsx
317
+ // src/components/secret-field-input.tsx
318
+ import { useReducer, useId } from "react";
319
+ import { resolveLocalized as resolveLocalized2 } from "ampless";
320
+ import { Button, Input, Label as Label2 } from "@ampless/runtime/ui";
321
+
322
+ // src/lib/secret-field-input.ts
323
+ function initialSecretFieldState(hasValue) {
324
+ return hasValue ? { status: "stored" } : { status: "unset" };
325
+ }
326
+ function secretFieldReducer(state, action) {
327
+ switch (action.type) {
328
+ case "REPLACE":
329
+ if (state.status !== "stored") return state;
330
+ return { status: "editing", value: "" };
331
+ case "CANCEL":
332
+ if (state.status !== "editing") return state;
333
+ return { status: "stored" };
334
+ case "CHANGE":
335
+ if (state.status === "editing") return { status: "editing", value: action.value };
336
+ if (state.status === "unset") return { status: "editing", value: action.value };
337
+ return state;
338
+ case "SAVE": {
339
+ if (state.status === "unset") {
340
+ return { status: "saving", previousStatus: "unset", value: "" };
341
+ }
342
+ if (state.status === "editing") {
343
+ return { status: "saving", previousStatus: "editing", value: state.value };
344
+ }
345
+ return state;
346
+ }
347
+ case "CLEAR":
348
+ if (state.status === "stored") return { status: "clearing" };
349
+ if (state.status === "error") return { status: "clearing" };
350
+ return state;
351
+ case "SAVE_SUCCESS":
352
+ return { status: "stored" };
353
+ case "SAVE_ERROR": {
354
+ const prev = state.status === "saving" ? state.previousStatus : "unset";
355
+ return { status: "error", previousStatus: prev, message: action.message };
356
+ }
357
+ case "CLEAR_SUCCESS":
358
+ return { status: "unset" };
359
+ case "CLEAR_ERROR":
360
+ return {
361
+ status: "error",
362
+ previousStatus: "stored",
363
+ message: action.message
364
+ };
365
+ }
366
+ }
367
+ function showStoredPlaceholder(state) {
368
+ return state.status === "stored" || state.status === "clearing";
369
+ }
370
+ function showInput(state) {
371
+ return state.status === "unset" || state.status === "editing" || state.status === "error" && state.previousStatus !== "stored";
372
+ }
373
+ function currentInputValue(state) {
374
+ if (state.status === "editing") return state.value;
375
+ return "";
376
+ }
377
+ function isBusy(state) {
378
+ return state.status === "saving" || state.status === "clearing";
379
+ }
380
+
381
+ // src/components/secret-field-input.tsx
227
382
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
383
+ function SecretFieldInput({ field, hasValue, onSave, onClear }) {
384
+ const locale = useLocale();
385
+ const inputId = useId();
386
+ const [state, dispatch] = useReducer(
387
+ secretFieldReducer,
388
+ hasValue,
389
+ initialSecretFieldState
390
+ );
391
+ async function handleSave() {
392
+ const value = currentInputValue(state);
393
+ dispatch({ type: "SAVE" });
394
+ try {
395
+ await onSave(value);
396
+ dispatch({ type: "SAVE_SUCCESS" });
397
+ } catch (err) {
398
+ dispatch({
399
+ type: "SAVE_ERROR",
400
+ message: err instanceof Error ? err.message : String(err)
401
+ });
402
+ }
403
+ }
404
+ async function handleClear() {
405
+ dispatch({ type: "CLEAR" });
406
+ try {
407
+ await onClear();
408
+ dispatch({ type: "CLEAR_SUCCESS" });
409
+ } catch (err) {
410
+ dispatch({
411
+ type: "CLEAR_ERROR",
412
+ message: err instanceof Error ? err.message : String(err)
413
+ });
414
+ }
415
+ }
416
+ const label = resolveLocalized2(field.label, locale);
417
+ const description = field.description ? resolveLocalized2(field.description, locale) : void 0;
418
+ const busy = isBusy(state);
419
+ return /* @__PURE__ */ jsxs2("div", { className: "space-y-1.5 rounded-md border border-amber-200 bg-amber-50 p-3 dark:border-amber-900 dark:bg-amber-950/30", children: [
420
+ /* @__PURE__ */ jsx2("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxs2(Label2, { htmlFor: inputId, className: "flex items-center gap-1.5 text-sm font-medium", children: [
421
+ /* @__PURE__ */ jsx2(LockIcon, {}),
422
+ label,
423
+ field.required && /* @__PURE__ */ jsx2("span", { className: "ml-0.5 text-destructive", children: "*" })
424
+ ] }) }),
425
+ description && /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground", children: description }),
426
+ showStoredPlaceholder(state) && /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
427
+ /* @__PURE__ */ jsx2(
428
+ "span",
429
+ {
430
+ className: "flex-1 rounded-md border bg-background px-3 py-1.5 text-sm text-muted-foreground",
431
+ "aria-label": "Secret value is stored",
432
+ children: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022"
433
+ }
434
+ ),
435
+ /* @__PURE__ */ jsx2(
436
+ Button,
437
+ {
438
+ type: "button",
439
+ variant: "outline",
440
+ size: "sm",
441
+ disabled: busy,
442
+ onClick: () => dispatch({ type: "REPLACE" }),
443
+ children: "Replace"
444
+ }
445
+ ),
446
+ /* @__PURE__ */ jsx2(
447
+ Button,
448
+ {
449
+ type: "button",
450
+ variant: "outline",
451
+ size: "sm",
452
+ disabled: busy,
453
+ onClick: () => void handleClear(),
454
+ className: "text-destructive hover:text-destructive",
455
+ children: "Clear"
456
+ }
457
+ )
458
+ ] }),
459
+ showInput(state) && /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
460
+ /* @__PURE__ */ jsx2(
461
+ Input,
462
+ {
463
+ id: inputId,
464
+ type: "text",
465
+ className: "flex-1",
466
+ value: currentInputValue(state),
467
+ placeholder: "Enter secret value\u2026",
468
+ maxLength: field.type === "text" && field.maxLength ? field.maxLength : void 0,
469
+ disabled: busy,
470
+ autoComplete: "off",
471
+ autoCorrect: "off",
472
+ autoCapitalize: "off",
473
+ spellCheck: false,
474
+ onChange: (e) => dispatch({ type: "CHANGE", value: e.target.value })
475
+ }
476
+ ),
477
+ /* @__PURE__ */ jsx2(
478
+ Button,
479
+ {
480
+ type: "button",
481
+ size: "sm",
482
+ disabled: busy || currentInputValue(state) === "",
483
+ onClick: () => void handleSave(),
484
+ children: state.status === "saving" ? "Saving\u2026" : "Save"
485
+ }
486
+ ),
487
+ (state.status === "editing" || state.status === "error" && state.previousStatus === "editing") && /* @__PURE__ */ jsx2(
488
+ Button,
489
+ {
490
+ type: "button",
491
+ variant: "outline",
492
+ size: "sm",
493
+ disabled: busy,
494
+ onClick: () => dispatch({ type: "CANCEL" }),
495
+ children: "Cancel"
496
+ }
497
+ )
498
+ ] }),
499
+ state.status === "clearing" && /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground", children: "Clearing\u2026" }),
500
+ state.status === "error" && /* @__PURE__ */ jsx2("p", { className: "text-xs text-destructive", children: state.message })
501
+ ] });
502
+ }
503
+ function LockIcon() {
504
+ return /* @__PURE__ */ jsx2(
505
+ "svg",
506
+ {
507
+ xmlns: "http://www.w3.org/2000/svg",
508
+ viewBox: "0 0 16 16",
509
+ fill: "currentColor",
510
+ className: "h-3.5 w-3.5 text-amber-600 dark:text-amber-400",
511
+ "aria-hidden": "true",
512
+ children: /* @__PURE__ */ jsx2(
513
+ "path",
514
+ {
515
+ fillRule: "evenodd",
516
+ d: "M8 1a3.5 3.5 0 0 0-3.5 3.5V6H4a2 2 0 0 0-2 2v4.5A2.5 2.5 0 0 0 4.5 15h7a2.5 2.5 0 0 0 2.5-2.5V8a2 2 0 0 0-2-2h-.5V4.5A3.5 3.5 0 0 0 8 1Zm2 5V4.5a2 2 0 1 0-4 0V6h4Z",
517
+ clipRule: "evenodd"
518
+ }
519
+ )
520
+ }
521
+ );
522
+ }
523
+
524
+ // src/components/plugin-settings-form.tsx
525
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
228
526
  var CACHE_REBUILD_DELAY_MS = 8e3;
229
527
  function stringify(field, raw) {
230
528
  if (raw === void 0 || raw === null) return "";
@@ -288,10 +586,31 @@ function PluginSettingsForm({
288
586
  instanceId,
289
587
  displayName,
290
588
  fields,
291
- initialValues
589
+ initialValues,
590
+ secretFields
292
591
  }) {
293
592
  const t = useT();
294
593
  const locale = useLocale();
594
+ const [secretHasValue, setSecretHasValue] = useState2({});
595
+ useEffect2(() => {
596
+ if (!secretFields || secretFields.length === 0) return;
597
+ let cancelled = false;
598
+ async function check() {
599
+ const results = {};
600
+ for (const field of secretFields) {
601
+ try {
602
+ results[field.key] = await hasPluginSecret(instanceId, field.key);
603
+ } catch {
604
+ results[field.key] = false;
605
+ }
606
+ }
607
+ if (!cancelled) setSecretHasValue(results);
608
+ }
609
+ void check();
610
+ return () => {
611
+ cancelled = true;
612
+ };
613
+ }, [instanceId]);
295
614
  function defaultDisplay(field) {
296
615
  return field.default !== void 0 ? stringify(field, field.default) : "";
297
616
  }
@@ -394,12 +713,12 @@ function PluginSettingsForm({
394
713
  setSaving(false);
395
714
  }
396
715
  }
397
- return /* @__PURE__ */ jsxs2("form", { onSubmit: save, className: "max-w-2xl space-y-5 rounded-md border p-4", children: [
398
- /* @__PURE__ */ jsxs2("div", { children: [
399
- /* @__PURE__ */ jsx2("h2", { className: "text-base font-semibold", children: displayName ? resolveLocalized2(displayName, locale) : instanceId }),
400
- /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground", children: instanceId })
716
+ return /* @__PURE__ */ jsxs3("form", { onSubmit: save, className: "max-w-2xl space-y-5 rounded-md border p-4", children: [
717
+ /* @__PURE__ */ jsxs3("div", { children: [
718
+ /* @__PURE__ */ jsx3("h2", { className: "text-base font-semibold", children: displayName ? resolveLocalized3(displayName, locale) : instanceId }),
719
+ /* @__PURE__ */ jsx3("p", { className: "text-xs text-muted-foreground", children: instanceId })
401
720
  ] }),
402
- fields.map((field) => /* @__PURE__ */ jsx2(
721
+ fields.map((field) => /* @__PURE__ */ jsx3(
403
722
  FieldRow,
404
723
  {
405
724
  field,
@@ -411,26 +730,62 @@ function PluginSettingsForm({
411
730
  },
412
731
  field.key
413
732
  )),
414
- info && /* @__PURE__ */ jsx2("p", { className: "text-sm text-muted-foreground", children: info }),
415
- error && /* @__PURE__ */ jsx2("p", { className: "text-sm text-destructive", children: error }),
416
- /* @__PURE__ */ jsx2(Button, { type: "submit", disabled: saving, children: saving ? t("plugins.saving") : t("plugins.save") })
733
+ info && /* @__PURE__ */ jsx3("p", { className: "text-sm text-muted-foreground", children: info }),
734
+ error && /* @__PURE__ */ jsx3("p", { className: "text-sm text-destructive", children: error }),
735
+ /* @__PURE__ */ jsx3(Button2, { type: "submit", disabled: saving, children: saving ? t("plugins.saving") : t("plugins.save") }),
736
+ secretFields && secretFields.length > 0 && /* @__PURE__ */ jsxs3("div", { className: "mt-6 space-y-4 border-t pt-4", children: [
737
+ /* @__PURE__ */ jsxs3("div", { children: [
738
+ /* @__PURE__ */ jsxs3("h3", { className: "flex items-center gap-1.5 text-sm font-semibold text-amber-700 dark:text-amber-400", children: [
739
+ /* @__PURE__ */ jsx3(
740
+ "svg",
741
+ {
742
+ xmlns: "http://www.w3.org/2000/svg",
743
+ viewBox: "0 0 16 16",
744
+ fill: "currentColor",
745
+ className: "h-3.5 w-3.5",
746
+ "aria-hidden": "true",
747
+ children: /* @__PURE__ */ jsx3(
748
+ "path",
749
+ {
750
+ fillRule: "evenodd",
751
+ d: "M8 1a3.5 3.5 0 0 0-3.5 3.5V6H4a2 2 0 0 0-2 2v4.5A2.5 2.5 0 0 0 4.5 15h7a2.5 2.5 0 0 0 2.5-2.5V8a2 2 0 0 0-2-2h-.5V4.5A3.5 3.5 0 0 0 8 1Zm2 5V4.5a2 2 0 1 0-4 0V6h4Z",
752
+ clipRule: "evenodd"
753
+ }
754
+ )
755
+ }
756
+ ),
757
+ "Secret settings"
758
+ ] }),
759
+ /* @__PURE__ */ jsx3("p", { className: "text-xs text-muted-foreground", children: "Values are stored securely and never displayed after saving. They are only accessible by the trusted processor Lambda \u2014 not by the public site or admin UI." })
760
+ ] }),
761
+ secretFields.map((field) => /* @__PURE__ */ jsx3(
762
+ SecretFieldInput,
763
+ {
764
+ field,
765
+ hasValue: secretHasValue[field.key] ?? false,
766
+ onSave: (value) => setPluginSecret(field, instanceId, value),
767
+ onClear: () => clearPluginSecret(instanceId, field.key)
768
+ },
769
+ field.key
770
+ ))
771
+ ] })
417
772
  ] });
418
773
  }
419
774
  function FieldRow({ field, value, invalid, onChange, onReset, hasStoredValue }) {
420
775
  const t = useT();
421
776
  const locale = useLocale();
422
777
  const id = `plugin-${field.key}`;
423
- const labelEl = /* @__PURE__ */ jsxs2(Label2, { htmlFor: id, className: invalid ? "text-destructive" : void 0, children: [
424
- resolveLocalized2(field.label, locale),
425
- field.required && /* @__PURE__ */ jsx2("span", { className: "ml-1 text-destructive", children: "*" })
778
+ const labelEl = /* @__PURE__ */ jsxs3(Label3, { htmlFor: id, className: invalid ? "text-destructive" : void 0, children: [
779
+ resolveLocalized3(field.label, locale),
780
+ field.required && /* @__PURE__ */ jsx3("span", { className: "ml-1 text-destructive", children: "*" })
426
781
  ] });
427
- const description = field.description ? /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground", children: resolveLocalized2(field.description, locale) }) : null;
782
+ const description = field.description ? /* @__PURE__ */ jsx3("p", { className: "text-xs text-muted-foreground", children: resolveLocalized3(field.description, locale) }) : null;
428
783
  const input = renderInput(field, id, value, invalid, onChange);
429
784
  const placeholder = renderDefaultHint(field, locale);
430
- return /* @__PURE__ */ jsxs2("div", { className: "space-y-1.5", children: [
431
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between", children: [
785
+ return /* @__PURE__ */ jsxs3("div", { className: "space-y-1.5", children: [
786
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between", children: [
432
787
  labelEl,
433
- hasStoredValue && /* @__PURE__ */ jsx2(
788
+ hasStoredValue && /* @__PURE__ */ jsx3(
434
789
  "button",
435
790
  {
436
791
  type: "button",
@@ -459,14 +814,14 @@ function renderDefaultHint(field, _locale) {
459
814
  }
460
815
  }
461
816
  if (!preview) return null;
462
- return /* @__PURE__ */ jsx2("p", { className: "text-xs text-muted-foreground", children: /* @__PURE__ */ jsx2("code", { children: preview }) });
817
+ return /* @__PURE__ */ jsx3("p", { className: "text-xs text-muted-foreground", children: /* @__PURE__ */ jsx3("code", { children: preview }) });
463
818
  }
464
819
  function renderScalarInput(field, id, value, invalid, onChange) {
465
820
  switch (field.type) {
466
821
  case "text":
467
822
  case "url":
468
- return /* @__PURE__ */ jsx2(
469
- Input,
823
+ return /* @__PURE__ */ jsx3(
824
+ Input2,
470
825
  {
471
826
  id,
472
827
  value,
@@ -478,7 +833,7 @@ function renderScalarInput(field, id, value, invalid, onChange) {
478
833
  }
479
834
  );
480
835
  case "textarea":
481
- return /* @__PURE__ */ jsx2(
836
+ return /* @__PURE__ */ jsx3(
482
837
  Textarea,
483
838
  {
484
839
  id,
@@ -491,9 +846,9 @@ function renderScalarInput(field, id, value, invalid, onChange) {
491
846
  }
492
847
  );
493
848
  case "code":
494
- return /* @__PURE__ */ jsxs2("div", { className: "space-y-1", children: [
495
- field.language && /* @__PURE__ */ jsx2("p", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: field.language }),
496
- /* @__PURE__ */ jsx2(
849
+ return /* @__PURE__ */ jsxs3("div", { className: "space-y-1", children: [
850
+ field.language && /* @__PURE__ */ jsx3("p", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: field.language }),
851
+ /* @__PURE__ */ jsx3(
497
852
  Textarea,
498
853
  {
499
854
  id,
@@ -508,8 +863,8 @@ function renderScalarInput(field, id, value, invalid, onChange) {
508
863
  )
509
864
  ] });
510
865
  case "boolean":
511
- return /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2", children: [
512
- /* @__PURE__ */ jsx2(
866
+ return /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
867
+ /* @__PURE__ */ jsx3(
513
868
  "input",
514
869
  {
515
870
  id,
@@ -519,11 +874,11 @@ function renderScalarInput(field, id, value, invalid, onChange) {
519
874
  className: "h-4 w-4"
520
875
  }
521
876
  ),
522
- /* @__PURE__ */ jsx2("span", { className: "text-xs text-muted-foreground", children: value === "true" ? "on" : "off" })
877
+ /* @__PURE__ */ jsx3("span", { className: "text-xs text-muted-foreground", children: value === "true" ? "on" : "off" })
523
878
  ] });
524
879
  case "number":
525
- return /* @__PURE__ */ jsx2(
526
- Input,
880
+ return /* @__PURE__ */ jsx3(
881
+ Input2,
527
882
  {
528
883
  id,
529
884
  type: "number",
@@ -536,7 +891,7 @@ function renderScalarInput(field, id, value, invalid, onChange) {
536
891
  }
537
892
  );
538
893
  case "select":
539
- return /* @__PURE__ */ jsxs2(
894
+ return /* @__PURE__ */ jsxs3(
540
895
  "select",
541
896
  {
542
897
  id,
@@ -545,13 +900,13 @@ function renderScalarInput(field, id, value, invalid, onChange) {
545
900
  onChange: (e) => onChange(e.target.value),
546
901
  "aria-invalid": invalid,
547
902
  children: [
548
- /* @__PURE__ */ jsx2("option", { value: "", children: "\u2014" }),
549
- field.options.map((opt) => /* @__PURE__ */ jsx2("option", { value: opt.value, children: typeof opt.label === "string" ? opt.label : opt.value }, opt.value))
903
+ /* @__PURE__ */ jsx3("option", { value: "", children: "\u2014" }),
904
+ field.options.map((opt) => /* @__PURE__ */ jsx3("option", { value: opt.value, children: typeof opt.label === "string" ? opt.label : opt.value }, opt.value))
550
905
  ]
551
906
  }
552
907
  );
553
908
  case "json":
554
- return /* @__PURE__ */ jsx2(
909
+ return /* @__PURE__ */ jsx3(
555
910
  Textarea,
556
911
  {
557
912
  id,
@@ -568,7 +923,7 @@ function renderScalarInput(field, id, value, invalid, onChange) {
568
923
  function renderInput(field, id, value, invalid, onChange) {
569
924
  switch (field.type) {
570
925
  case "repeatable":
571
- return /* @__PURE__ */ jsx2(
926
+ return /* @__PURE__ */ jsx3(
572
927
  RepeatableFieldEditor,
573
928
  {
574
929
  field,
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { LocalizedString, PluginSettingField, PluginRepeatableField } from 'ampless';
2
+ import { LocalizedString, PluginSettingField, PluginSecretField, PluginRepeatableField } from 'ampless';
3
3
 
4
4
  interface Props {
5
5
  instanceId: string;
@@ -11,8 +11,15 @@ interface Props {
11
11
  * still come through the manifest.
12
12
  */
13
13
  initialValues: Record<string, unknown>;
14
+ /**
15
+ * Secret fields declared in `settings.secret`. Rendered below the
16
+ * public fields in a visually distinct section. Values are NEVER
17
+ * fetched — each SecretFieldInput independently checks existence via
18
+ * `hasPluginSecret()` at mount time.
19
+ */
20
+ secretFields?: ReadonlyArray<PluginSecretField>;
14
21
  }
15
- declare function PluginSettingsForm({ instanceId, displayName, fields, initialValues, }: Props): react_jsx_runtime.JSX.Element;
22
+ declare function PluginSettingsForm({ instanceId, displayName, fields, initialValues, secretFields, }: Props): react_jsx_runtime.JSX.Element;
16
23
  /**
17
24
  * Render a scalar (non-repeatable) plugin field input. Handles the 8
18
25
  * scalar variant types: text, url, textarea, code, boolean, number,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  PluginSettingsForm,
4
4
  renderScalarInput
5
- } from "../chunk-OPRC3VJQ.js";
5
+ } from "../chunk-UNLH355M.js";
6
6
  import "../chunk-D72XF3Q3.js";
7
7
  import "../chunk-2SVJONQ7.js";
8
8
  import "../chunk-KYFSM7MS.js";
@@ -1 +1 @@
1
- {"inputs":{"src/locales/en.json":{"bytes":12487,"imports":[]},"src/locales/ja.json":{"bytes":15723,"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":7898,"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":5835,"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/lib/plugin-settings.ts":{"bytes":3405,"imports":[{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/repeatable-field.ts":{"bytes":5326,"imports":[],"format":"esm"},"src/components/repeatable-field-editor.tsx":{"bytes":5231,"imports":[{"path":"react","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":"src/components/plugin-settings-form.tsx","kind":"import-statement","original":"./plugin-settings-form.js"},{"path":"src/lib/repeatable-field.ts","kind":"import-statement","original":"../lib/repeatable-field.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/plugin-settings-form.tsx":{"bytes":16490,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/plugin-settings.ts","kind":"import-statement","original":"../lib/plugin-settings.js"},{"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":"src/components/repeatable-field-editor.tsx","kind":"import-statement","original":"./repeatable-field-editor.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/plugins.tsx":{"bytes":3602,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/plugin-settings-form.tsx","kind":"import-statement","original":"../components/plugin-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":1441,"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/plugins.tsx","kind":"import-statement","original":"./plugins.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-ABYICFDU.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["NewPostPage"],"entryPoint":"src/components/new-post-view.tsx","inputs":{},"bytes":249},"dist/components/plugin-settings-form.js":{"imports":[{"path":"dist/chunk-OPRC3VJQ.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["PluginSettingsForm","renderScalarInput"],"entryPoint":"src/components/plugin-settings-form.tsx","inputs":{},"bytes":243},"dist/components/posts-list-view.js":{"imports":[{"path":"dist/chunk-ESPXUNVH.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-GUCBNVO2.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-ABYICFDU.js","kind":"import-statement"},{"path":"dist/chunk-OPRC3VJQ.js","kind":"import-statement"},{"path":"dist/chunk-ESPXUNVH.js","kind":"import-statement"},{"path":"dist/chunk-GUCBNVO2.js","kind":"import-statement"},{"path":"dist/chunk-G2VLKMN7.js","kind":"import-statement"},{"path":"dist/chunk-6VOW4WOG.js","kind":"import-statement"},{"path":"dist/chunk-TPGZNAZ4.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-M42TYCKG.js","kind":"import-statement"},{"path":"dist/chunk-26XCPRGS.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-O24LK3X3.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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},{"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":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMcpTokensPage","createMediaPage","createNewPostPage","createPluginsPage","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/plugins.tsx":{"bytesInOutput":2098},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":10175},"dist/chunk-ABYICFDU.js":{"imports":[{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-OPRC3VJQ.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"react","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/jsx-runtime","kind":"import-statement","external":true}],"exports":["PluginSettingsForm","renderScalarInput"],"inputs":{"src/components/plugin-settings-form.tsx":{"bytesInOutput":11861},"src/lib/plugin-settings.ts":{"bytesInOutput":1178},"src/components/repeatable-field-editor.tsx":{"bytesInOutput":3961},"src/lib/repeatable-field.ts":{"bytesInOutput":1651}},"bytes":19079},"dist/chunk-ESPXUNVH.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-GUCBNVO2.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-KYFSM7MS.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":2105}},"bytes":3697},"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-G2VLKMN7.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["AdminDashboard"],"entryPoint":"src/components/admin-dashboard.tsx","inputs":{},"bytes":162},"dist/chunk-G2VLKMN7.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-6VOW4WOG.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["EditPostPage"],"entryPoint":"src/components/edit-post-view.tsx","inputs":{},"bytes":251},"dist/chunk-6VOW4WOG.js":{"imports":[{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-TPGZNAZ4.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-TPGZNAZ4.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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":5867},"src/components/site-settings-form.tsx":{"bytesInOutput":6899},"src/components/theme-settings-form.tsx":{"bytesInOutput":21443}},"bytes":42505},"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-MWTYRQ6V.js":{"imports":[{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-M42TYCKG.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["LoginPage"],"entryPoint":"src/components/login-view.tsx","inputs":{},"bytes":152},"dist/chunk-M42TYCKG.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-26XCPRGS.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["McpTokensView"],"entryPoint":"src/components/mcp-tokens-view.tsx","inputs":{},"bytes":191},"dist/chunk-26XCPRGS.js":{"imports":[{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-O24LK3X3.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["MediaPage"],"entryPoint":"src/components/media-view.tsx","inputs":{},"bytes":245},"dist/chunk-O24LK3X3.js":{"imports":[{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-MM4DNZMS.js":{"imports":[{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-5AMO6HJT.js":{"imports":[{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-2SVJONQ7.js":{"imports":[{"path":"dist/chunk-KYFSM7MS.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-KYFSM7MS.js":{"imports":[],"exports":["getDictionary","resolveLocale","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":11939},"src/locales/ja.json":{"bytesInOutput":23307},"src/lib/i18n.ts":{"bytesInOutput":1146}},"bytes":36518}}}
1
+ {"inputs":{"src/locales/en.json":{"bytes":12487,"imports":[]},"src/locales/ja.json":{"bytes":15723,"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":7898,"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":5835,"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/lib/plugin-settings.ts":{"bytes":3405,"imports":[{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/plugin-secret.ts":{"bytes":8836,"imports":[{"path":"aws-amplify/api","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true}],"format":"esm"},"src/lib/repeatable-field.ts":{"bytes":5326,"imports":[],"format":"esm"},"src/components/repeatable-field-editor.tsx":{"bytes":5231,"imports":[{"path":"react","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":"src/components/plugin-settings-form.tsx","kind":"import-statement","original":"./plugin-settings-form.js"},{"path":"src/lib/repeatable-field.ts","kind":"import-statement","original":"../lib/repeatable-field.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/lib/secret-field-input.ts":{"bytes":6212,"imports":[],"format":"esm"},"src/components/secret-field-input.tsx":{"bytes":7500,"imports":[{"path":"react","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":"src/lib/secret-field-input.ts","kind":"import-statement","original":"../lib/secret-field-input.js"},{"path":"react/jsx-runtime","kind":"import-statement","external":true}],"format":"esm"},"src/components/plugin-settings-form.tsx":{"bytes":19507,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","kind":"import-statement","external":true},{"path":"src/lib/plugin-settings.ts","kind":"import-statement","original":"../lib/plugin-settings.js"},{"path":"src/lib/plugin-secret.ts","kind":"import-statement","original":"../lib/plugin-secret.js"},{"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":"src/components/repeatable-field-editor.tsx","kind":"import-statement","original":"./repeatable-field-editor.js"},{"path":"src/components/secret-field-input.tsx","kind":"import-statement","original":"./secret-field-input.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/plugins.tsx":{"bytes":3602,"imports":[{"path":"next/navigation","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"src/components/plugin-settings-form.tsx","kind":"import-statement","original":"../components/plugin-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":1441,"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/plugins.tsx","kind":"import-statement","original":"./plugins.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-ABYICFDU.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["NewPostPage"],"entryPoint":"src/components/new-post-view.tsx","inputs":{},"bytes":249},"dist/components/plugin-settings-form.js":{"imports":[{"path":"dist/chunk-UNLH355M.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["PluginSettingsForm","renderScalarInput"],"entryPoint":"src/components/plugin-settings-form.tsx","inputs":{},"bytes":243},"dist/components/posts-list-view.js":{"imports":[{"path":"dist/chunk-ESPXUNVH.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-GUCBNVO2.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-ABYICFDU.js","kind":"import-statement"},{"path":"dist/chunk-UNLH355M.js","kind":"import-statement"},{"path":"dist/chunk-ESPXUNVH.js","kind":"import-statement"},{"path":"dist/chunk-GUCBNVO2.js","kind":"import-statement"},{"path":"dist/chunk-G2VLKMN7.js","kind":"import-statement"},{"path":"dist/chunk-6VOW4WOG.js","kind":"import-statement"},{"path":"dist/chunk-TPGZNAZ4.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-M42TYCKG.js","kind":"import-statement"},{"path":"dist/chunk-26XCPRGS.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-O24LK3X3.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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},{"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":["createAdminDashboardPage","createAdminLayout","createEditPostPage","createLoginPage","createMcpTokensPage","createMediaPage","createNewPostPage","createPluginsPage","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/plugins.tsx":{"bytesInOutput":2098},"src/pages/login.tsx":{"bytesInOutput":57}},"bytes":10175},"dist/chunk-ABYICFDU.js":{"imports":[{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-UNLH355M.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"ampless","kind":"import-statement","external":true},{"path":"@ampless/runtime/ui","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","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":"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/jsx-runtime","kind":"import-statement","external":true}],"exports":["PluginSettingsForm","renderScalarInput"],"inputs":{"src/components/plugin-settings-form.tsx":{"bytesInOutput":14170},"src/lib/plugin-settings.ts":{"bytesInOutput":1178},"src/lib/plugin-secret.ts":{"bytesInOutput":3234},"src/components/repeatable-field-editor.tsx":{"bytesInOutput":3961},"src/lib/repeatable-field.ts":{"bytesInOutput":1651},"src/components/secret-field-input.tsx":{"bytesInOutput":5182},"src/lib/secret-field-input.ts":{"bytesInOutput":2013}},"bytes":31964},"dist/chunk-ESPXUNVH.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-GUCBNVO2.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-KYFSM7MS.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":2105}},"bytes":3697},"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-G2VLKMN7.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["AdminDashboard"],"entryPoint":"src/components/admin-dashboard.tsx","inputs":{},"bytes":162},"dist/chunk-G2VLKMN7.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-6VOW4WOG.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["EditPostPage"],"entryPoint":"src/components/edit-post-view.tsx","inputs":{},"bytes":251},"dist/chunk-6VOW4WOG.js":{"imports":[{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-TPGZNAZ4.js","kind":"import-statement"},{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-MWTYRQ6V.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.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-TPGZNAZ4.js":{"imports":[{"path":"dist/chunk-D72XF3Q3.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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":5867},"src/components/site-settings-form.tsx":{"bytesInOutput":6899},"src/components/theme-settings-form.tsx":{"bytesInOutput":21443}},"bytes":42505},"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-MWTYRQ6V.js":{"imports":[{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-M42TYCKG.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["LoginPage"],"entryPoint":"src/components/login-view.tsx","inputs":{},"bytes":152},"dist/chunk-M42TYCKG.js":{"imports":[{"path":"dist/chunk-2SVJONQ7.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-26XCPRGS.js","kind":"import-statement"},{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["McpTokensView"],"entryPoint":"src/components/mcp-tokens-view.tsx","inputs":{},"bytes":191},"dist/chunk-26XCPRGS.js":{"imports":[{"path":"dist/chunk-C7G5AQ3L.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-O24LK3X3.js","kind":"import-statement"},{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.js","kind":"import-statement"},{"path":"dist/chunk-KYFSM7MS.js","kind":"import-statement"}],"exports":["MediaPage"],"entryPoint":"src/components/media-view.tsx","inputs":{},"bytes":245},"dist/chunk-O24LK3X3.js":{"imports":[{"path":"dist/chunk-MM4DNZMS.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-MM4DNZMS.js":{"imports":[{"path":"dist/chunk-5AMO6HJT.js","kind":"import-statement"},{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-5AMO6HJT.js":{"imports":[{"path":"dist/chunk-2ITWLRYF.js","kind":"import-statement"},{"path":"dist/chunk-2SVJONQ7.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-2SVJONQ7.js":{"imports":[{"path":"dist/chunk-KYFSM7MS.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-KYFSM7MS.js":{"imports":[],"exports":["getDictionary","resolveLocale","translate"],"inputs":{"src/locales/en.json":{"bytesInOutput":11939},"src/locales/ja.json":{"bytesInOutput":23307},"src/lib/i18n.ts":{"bytesInOutput":1146}},"bytes":36518}}}
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-ABYICFDU.js";
4
4
  import {
5
5
  PluginSettingsForm
6
- } from "../chunk-OPRC3VJQ.js";
6
+ } from "../chunk-UNLH355M.js";
7
7
  import {
8
8
  PostsList
9
9
  } from "../chunk-ESPXUNVH.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ampless/admin",
3
- "version": "1.0.0-alpha.57",
3
+ "version": "1.0.0-alpha.59",
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.34",
65
- "@ampless/runtime": "1.0.0-alpha.36",
66
- "ampless": "1.0.0-alpha.28"
64
+ "@ampless/mcp-server": "1.0.0-alpha.36",
65
+ "@ampless/runtime": "1.0.0-alpha.38",
66
+ "ampless": "1.0.0-alpha.30"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "@aws-amplify/adapter-nextjs": "^1",