siteplane 0.1.57 → 0.1.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.
package/README.md CHANGED
@@ -3,9 +3,10 @@
3
3
  **Image-policy preparation:** When the scan includes image fields, `withSiteplane` prepares
4
4
  Next Image and existing Next-config CSP headers for Siteplane's image route and your website's
5
5
  `/siteplane-assets/` path. Existing image sources stay in place. Local builds require the same public HTTPS
6
- `SITEPLANE_SITE_ORIGIN` supplied by `setup deploy`. Custom loaders and explicit redirect settings need
7
- reconciliation; preflight also flags CSP in middleware, proxy or app source for inspection. Keep existing
8
- policies and check real rendered images after the change. This preparation does not authorize hosting.
6
+ `SITEPLANE_SITE_ORIGIN` supplied by `setup deploy`. The wrapper adds only those exact patterns: existing
7
+ sources, custom loaders and redirect settings remain unchanged. Preflight still flags custom loaders and CSP
8
+ in middleware, proxy or app source for explicit delivery checks. Keep existing policies and verify Siteplane
9
+ images through the website's actual renderer. This preparation does not authorize hosting.
9
10
 
10
11
  Public Siteplane CLI for connected-site setup, field synchronization, Analytics
11
12
  instrumentation and Booking integration.
@@ -98,8 +99,8 @@ Before starting, add `.siteplane/credentials.json` to the repository’s `.gitig
98
99
  unprotected credentials before any provisioning request.
99
100
 
100
101
  ```bash
101
- npx -y siteplane@0.1.55 setup start --modules editing --instructions-file instructions.txt
102
- npx -y siteplane@0.1.55 setup context
102
+ npx -y siteplane@0.1.59 setup start --modules editing --instructions-file instructions.txt
103
+ npx -y siteplane@0.1.59 setup context
103
104
  ```
104
105
 
105
106
  Start performs read-only preflight and saves the installation key and original request privately before the
@@ -9,12 +9,12 @@ import { join as join13, resolve as resolve4 } from "path";
9
9
  import { mkdir, readFile, writeFile } from "fs/promises";
10
10
  import { dirname } from "path";
11
11
 
12
- // ../shared/dist/actors.js
12
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/actors.js
13
13
  import { z } from "zod";
14
14
  var ACTOR_TYPES = ["workspace_member", "site_member", "agent", "setup_guest", "system"];
15
15
  var actorTypeSchema = z.enum(ACTOR_TYPES);
16
16
 
17
- // ../shared/dist/analytics-defaults.js
17
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-defaults.js
18
18
  var ANALYTICS_BATCH_LIMITS = {
19
19
  maxEventsPerRequest: 50,
20
20
  maxJsonBodyBytes: 64 * 1024,
@@ -29,7 +29,7 @@ var ANALYTICS_RETENTION_DEFAULTS = {
29
29
  lateEventWindowHours: 72
30
30
  };
31
31
 
32
- // ../shared/dist/analytics-booking.js
32
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-booking.js
33
33
  import { z as z2 } from "zod";
34
34
  var bookingProviders = ["treatwell", "beautinda", "other"];
35
35
  var bookingAttributionModes = [
@@ -72,7 +72,7 @@ var bookingProviderHintSchema = z2.object({
72
72
  }
73
73
  });
74
74
 
75
- // ../shared/dist/analytics-contract.js
75
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-contract.js
76
76
  import { z as z3 } from "zod";
77
77
  var ANALYTICS_CONTRACT_VERSION = "analytics-contract.v1";
78
78
  var ANALYTICS_CONTRACT_HASH = "sha256:a91bddcc3c5e4196933b0335d03eaf41ff929cb736bdd694fe54d07ab52dada1";
@@ -100,7 +100,7 @@ var analyticsProviderImportSchema = z3.object({
100
100
  rows: z3.array(analyticsProviderImportRowSchema).min(1).max(1e3)
101
101
  }).strict();
102
102
 
103
- // ../shared/dist/analytics-config.js
103
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-config.js
104
104
  import { z as z4 } from "zod";
105
105
  var ANALYTICS_CONFIG_LEASE_MS = 6e4;
106
106
  var analyticsMeasurementConfigSchema = z4.object({
@@ -129,7 +129,7 @@ var analyticsMeasurementConfigSchema = z4.object({
129
129
  }
130
130
  });
131
131
 
132
- // ../shared/dist/analytics-events.js
132
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-events.js
133
133
  import { z as z5 } from "zod";
134
134
  var ANALYTICS_SCHEMA_VERSION = "analytics.v1";
135
135
  var ANALYTICS_KEY_PATTERN = /^(pk|sk)_siteplane_([A-Za-z0-9_-]{16})_[A-Za-z0-9_-]{43}$/;
@@ -338,7 +338,7 @@ function expandAnalyticsDataAttributeEvent(event) {
338
338
  return [event];
339
339
  }
340
340
 
341
- // ../shared/dist/analytics-manifest.js
341
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-manifest.js
342
342
  import { z as z6 } from "zod";
343
343
  var analyticsTargetIdSchema = z6.string().min(1).max(120).regex(/^[a-zA-Z][a-zA-Z0-9]*(?:[._-][a-zA-Z0-9]+)*$/u, {
344
344
  message: "Analytics target IDs must be stable identifiers without whitespace or visible copy."
@@ -491,7 +491,7 @@ function isPlainRecord(value) {
491
491
  return typeof value === "object" && value !== null;
492
492
  }
493
493
 
494
- // ../shared/dist/analytics-metrics.js
494
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-metrics.js
495
495
  import { z as z7 } from "zod";
496
496
  var analyticsVisitorQualities = ["exact", "estimated"];
497
497
  var analyticsVisitorQualitySchema = z7.enum(analyticsVisitorQualities);
@@ -508,7 +508,7 @@ var analyticsKpiKeys = [
508
508
  ];
509
509
  var analyticsKpiKeySchema = z7.enum(analyticsKpiKeys);
510
510
 
511
- // ../shared/dist/analytics-privacy.js
511
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-privacy.js
512
512
  var serverPropertySchemas = {
513
513
  lead_created: {
514
514
  conversionId: "identifier",
@@ -543,7 +543,7 @@ function revenuePropertySchema() {
543
543
  };
544
544
  }
545
545
 
546
- // ../shared/dist/assets.js
546
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/assets.js
547
547
  import { z as z8 } from "zod";
548
548
  var ASSET_STAGES = ["staging", "final", "deleted"];
549
549
  var ASSET_VISIBILITIES = ["private", "public", "deleted"];
@@ -558,7 +558,7 @@ var assetVisibilitySchema = z8.enum(ASSET_VISIBILITIES);
558
558
  var assetUsageEntityTypeSchema = z8.enum(ASSET_USAGE_ENTITY_TYPES);
559
559
  var brandingAccentColorSchema = z8.string().regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);
560
560
 
561
- // ../shared/dist/booking-contracts.js
561
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-contracts.js
562
562
  import { z as z9 } from "zod";
563
563
  var bookingStatuses = [
564
564
  "pending_payment",
@@ -919,13 +919,13 @@ function redactBookingManifest(value) {
919
919
  return value;
920
920
  }
921
921
 
922
- // ../shared/dist/booking-defaults.js
922
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-defaults.js
923
923
  var BOOKING_CREATE_PAYLOAD_LIMIT_BYTES = 16 * 1024;
924
924
 
925
- // ../shared/dist/bridge-protocol.js
925
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
926
926
  import { z as z17 } from "zod";
927
927
 
928
- // ../shared/dist/field-id.js
928
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-id.js
929
929
  import { z as z10 } from "zod";
930
930
  var FIELD_ID_PATTERN = /^[a-z][a-z0-9_-]*(\.[a-z][a-z0-9_-]*)+$/;
931
931
  var fieldIdSchema = z10.string().regex(FIELD_ID_PATTERN, "Invalid field id");
@@ -933,12 +933,12 @@ function isFieldId(value) {
933
933
  return typeof value === "string" && fieldIdSchema.safeParse(value).success;
934
934
  }
935
935
 
936
- // ../shared/dist/field-types.js
936
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-types.js
937
937
  import { z as z11 } from "zod";
938
938
  var FIELD_TYPES = ["text", "longText", "image", "link"];
939
939
  var fieldTypeSchema = z11.enum(FIELD_TYPES);
940
940
 
941
- // ../shared/dist/image-value.js
941
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/image-value.js
942
942
  import { z as z12 } from "zod";
943
943
  var SUPPORTED_IMAGE_CONTENT_TYPES = [
944
944
  "image/jpeg",
@@ -970,7 +970,7 @@ var imageValueSchema = z12.object({
970
970
  ]).optional()
971
971
  });
972
972
 
973
- // ../shared/dist/setup-deployment.js
973
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-deployment.js
974
974
  import { z as z13 } from "zod";
975
975
  var version = z13.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u);
976
976
  var siteSetupPackagesSchema = z13.object({
@@ -1024,13 +1024,13 @@ var setupDeploymentInputSchema = z13.discriminatedUnion("action", [
1024
1024
  }).strict()
1025
1025
  ]);
1026
1026
 
1027
- // ../shared/dist/site-setup.js
1027
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
1028
1028
  import { z as z16 } from "zod";
1029
1029
 
1030
- // ../shared/dist/site-field-contract.js
1030
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
1031
1031
  import { z as z15 } from "zod";
1032
1032
 
1033
- // ../shared/dist/fallback-hash.js
1033
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/fallback-hash.js
1034
1034
  import { z as z14 } from "zod";
1035
1035
  var SAFE_REPRESENTATION_REASONS = [
1036
1036
  "asset_import_rewritten",
@@ -1252,7 +1252,7 @@ var SHA256_CONSTANTS = [
1252
1252
  3329325298
1253
1253
  ];
1254
1254
 
1255
- // ../shared/dist/site-field-contract.js
1255
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
1256
1256
  var fieldContractVersion = "1.0.0";
1257
1257
  var scannerContractVersion = "1.0.0";
1258
1258
  var siteFieldStatusSchema = z15.enum(["hidden", "active"]);
@@ -1341,7 +1341,7 @@ function createSiteFieldContractHash(input) {
1341
1341
  return `sha256:${sha256Hex(payload)}`;
1342
1342
  }
1343
1343
 
1344
- // ../shared/dist/site-setup.js
1344
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
1345
1345
  var SITE_SETUP_RUN_STATUSES = [
1346
1346
  "waiting_for_agent",
1347
1347
  "working",
@@ -1816,6 +1816,7 @@ var siteSetupEvidenceInputSchema = z16.object({
1816
1816
  bridgeSessionId: normalizedSafeTextSchema(256, "bridgeSessionId"),
1817
1817
  observations: z16.array(z16.object({
1818
1818
  fieldId: fieldIdSchema,
1819
+ fieldType: fieldTypeSchema,
1819
1820
  routeKey: siteFieldRouteKeySchema,
1820
1821
  renderedPath: renderedPathSchema,
1821
1822
  targetResolved: z16.boolean(),
@@ -1884,7 +1885,7 @@ var activateSetupModulesInputSchema = activateSiteSetupInputSchema.extend({
1884
1885
  ])
1885
1886
  }).strict();
1886
1887
 
1887
- // ../shared/dist/bridge-protocol.js
1888
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
1888
1889
  var BRIDGE_PROTOCOL_VERSION = 2;
1889
1890
  var bridgeRectSchema = z17.object({
1890
1891
  x: z17.number(),
@@ -2122,10 +2123,10 @@ var fieldBridgeMessageSchema = z17.discriminatedUnion("type", [
2122
2123
  fieldBridgeAnalyticsProbeResultSchema
2123
2124
  ]);
2124
2125
 
2125
- // ../shared/dist/commands.js
2126
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
2126
2127
  import { z as z19 } from "zod";
2127
2128
 
2128
- // ../shared/dist/errors.js
2129
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/errors.js
2129
2130
  import { z as z18 } from "zod";
2130
2131
  var UI_ERROR_CATEGORIES = [
2131
2132
  "site_member",
@@ -2140,7 +2141,7 @@ var commandErrorPayloadSchema = z18.object({
2140
2141
  details: z18.record(z18.string(), z18.unknown()).optional()
2141
2142
  });
2142
2143
 
2143
- // ../shared/dist/commands.js
2144
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
2144
2145
  var commandSuccessSchema = z19.object({
2145
2146
  ok: z19.literal(true),
2146
2147
  data: z19.unknown()
@@ -2154,7 +2155,7 @@ var commandResultSchema = z19.discriminatedUnion("ok", [
2154
2155
  commandErrorSchema
2155
2156
  ]);
2156
2157
 
2157
- // ../shared/dist/editor-settings.js
2158
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/editor-settings.js
2158
2159
  import { z as z20 } from "zod";
2159
2160
  var editorColorSchemeSchema = z20.enum([
2160
2161
  "paper",
@@ -2166,7 +2167,7 @@ var editorColorSchemes = editorColorSchemeSchema.options;
2166
2167
  var editorColorModeSchema = z20.enum(["light", "dark"]);
2167
2168
  var editorColorModes = editorColorModeSchema.options;
2168
2169
 
2169
- // ../shared/dist/site-slug.js
2170
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-slug.js
2170
2171
  import { z as z21 } from "zod";
2171
2172
  var SITE_SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
2172
2173
  var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
@@ -2186,7 +2187,7 @@ var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
2186
2187
  ]);
2187
2188
  var siteSlugSchema = z21.string().regex(SITE_SLUG_PATTERN, "Invalid site slug").refine((value) => !RESERVED_SITE_SLUGS.has(value), "Reserved site slug");
2188
2189
 
2189
- // ../shared/dist/entitlements.js
2190
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/entitlements.js
2190
2191
  import { z as z22 } from "zod";
2191
2192
  var entitlementSnapshotSchema = z22.object({
2192
2193
  planKey: z22.string().trim().min(1),
@@ -2233,10 +2234,10 @@ var EARLY_ACCESS_PLAN = {
2233
2234
  bookingRemindersEnabled: true
2234
2235
  };
2235
2236
 
2236
- // ../shared/dist/first-party-image-upload.js
2237
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/first-party-image-upload.js
2237
2238
  var maxFirstPartyImageUploadBytes = 4 * 1024 * 1024;
2238
2239
 
2239
- // ../shared/dist/readiness.js
2240
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/readiness.js
2240
2241
  import { z as z23 } from "zod";
2241
2242
  var READINESS_CHECK_KEYS = [
2242
2243
  "agent_instructions_installed",
@@ -2255,7 +2256,7 @@ var READINESS_STATUSES = [
2255
2256
  var readinessCheckKeySchema = z23.enum(READINESS_CHECK_KEYS);
2256
2257
  var readinessStatusSchema = z23.enum(READINESS_STATUSES);
2257
2258
 
2258
- // ../shared/dist/site.js
2259
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site.js
2259
2260
  import { z as z24 } from "zod";
2260
2261
  var SITE_STATUSES = [
2261
2262
  "setup",
@@ -2266,7 +2267,7 @@ var SITE_STATUSES = [
2266
2267
  var siteStatusSchema = z24.enum(SITE_STATUSES);
2267
2268
  var websiteUrlSchema = z24.string().trim().url().refine((value) => value.startsWith("https://") || value.startsWith("http://"), "Website URL must use http or https");
2268
2269
 
2269
- // ../shared/dist/setup-assets.js
2270
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-assets.js
2270
2271
  import { z as z25 } from "zod";
2271
2272
  var configureSetupAssetTargetInputSchema = z25.object({
2272
2273
  siteId: z25.string().uuid(),
@@ -2327,7 +2328,7 @@ var checkSetupAssetTargetInputSchema = z25.object({
2327
2328
  intent: z25.enum(["start", "poll"])
2328
2329
  }).strict();
2329
2330
 
2330
- // ../shared/dist/setup-installation.js
2331
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-installation.js
2331
2332
  import { z as z26 } from "zod";
2332
2333
  var setupInstallationRequestSchema = z26.object({
2333
2334
  modules: siteSetupModulesSchema,
@@ -2338,7 +2339,7 @@ var setupInstallationRequestSchema = z26.object({
2338
2339
  }).strict()
2339
2340
  }).strict();
2340
2341
 
2341
- // ../shared/dist/setup-claim.js
2342
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-claim.js
2342
2343
  import { z as z27 } from "zod";
2343
2344
  var setupClaimCodeSchema = z27.string().regex(/^[0-9A-HJKMNP-TV-Z]{8}$/u);
2344
2345
  var setupClaimBindingSchema = z27.object({
@@ -3968,8 +3969,6 @@ async function inspectSetupLocalProject(projectDir) {
3968
3969
  sourceConflicts.push("base_path");
3969
3970
  if (/\bloaderFile\s*:|\bloader\s*:\s*['"](?:custom|imgix|cloudinary|akamai)['"]/u.test(source))
3970
3971
  sourceConflicts.push(`inspect_image_loader:${file}`);
3971
- if (/\bmaximumRedirects\s*:\s*[1-9]/u.test(source))
3972
- sourceConflicts.push(`inspect_image_redirects:${file}`);
3973
3972
  }
3974
3973
  if (sourceConflicts.some((conflict) => conflict === "static_export" || conflict === "base_path"))
3975
3974
  fail("unsupported_server_configuration", "Resolve static export/basePath configuration explicitly; Siteplane requires its server-side admin and revalidation handlers.");
@@ -5606,7 +5605,7 @@ ${task.goal}
5606
5605
 
5607
5606
  ${task.discovery.rules.map((rule) => `- ${rule}`).join("\n")}
5608
5607
 
5609
- Run setup context for the current user instructions and authorized modules. Keep the user instructions distinct from your selection summary. Use setup deploy --wait for environment transfer and deployment; never read or print credential values. For image fields, withSiteplane prepares the exact Siteplane asset route and the website /siteplane-assets/ path in Next Image and existing img-src policies at build time. This grants no hosting permission. Preserve existing image sources; explicitly resolve custom loaders, redirect dependencies, or CSP written by middleware/proxy/meta tags before deployment. Use the provider-selected public SITEPLANE_SITE_ORIGIN for local builds.
5608
+ Run setup context for the current user instructions and authorized modules. Keep the user instructions distinct from your selection summary. Use setup deploy --wait for environment transfer and deployment; never read or print credential values. For image fields, withSiteplane adds only the exact Siteplane asset route and website /siteplane-assets/ pattern while preserving existing sources, loaders, and redirect policy. This grants no hosting permission. If the website uses a global or component image loader, keep it and verify Siteplane image delivery explicitly. Inspect CSP written by middleware/proxy/meta tags before deployment. Use the provider-selected public SITEPLANE_SITE_ORIGIN for local builds.
5610
5609
  `);
5611
5610
  for (const [path, content] of files) {
5612
5611
  if (path === layoutPath || path === nextPath || path === guidePath)
package/dist/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
  import { mkdir, readFile, writeFile } from "fs/promises";
3
3
  import { dirname } from "path";
4
4
 
5
- // ../shared/dist/actors.js
5
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/actors.js
6
6
  import { z } from "zod";
7
7
  var ACTOR_TYPES = ["workspace_member", "site_member", "agent", "setup_guest", "system"];
8
8
  var actorTypeSchema = z.enum(ACTOR_TYPES);
9
9
 
10
- // ../shared/dist/analytics-defaults.js
10
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-defaults.js
11
11
  var ANALYTICS_BATCH_LIMITS = {
12
12
  maxEventsPerRequest: 50,
13
13
  maxJsonBodyBytes: 64 * 1024,
@@ -22,7 +22,7 @@ var ANALYTICS_RETENTION_DEFAULTS = {
22
22
  lateEventWindowHours: 72
23
23
  };
24
24
 
25
- // ../shared/dist/analytics-booking.js
25
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-booking.js
26
26
  import { z as z2 } from "zod";
27
27
  var bookingProviders = ["treatwell", "beautinda", "other"];
28
28
  var bookingAttributionModes = [
@@ -65,7 +65,7 @@ var bookingProviderHintSchema = z2.object({
65
65
  }
66
66
  });
67
67
 
68
- // ../shared/dist/analytics-contract.js
68
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-contract.js
69
69
  import { z as z3 } from "zod";
70
70
  var ANALYTICS_CONTRACT_VERSION = "analytics-contract.v1";
71
71
  var ANALYTICS_CONTRACT_HASH = "sha256:a91bddcc3c5e4196933b0335d03eaf41ff929cb736bdd694fe54d07ab52dada1";
@@ -93,7 +93,7 @@ var analyticsProviderImportSchema = z3.object({
93
93
  rows: z3.array(analyticsProviderImportRowSchema).min(1).max(1e3)
94
94
  }).strict();
95
95
 
96
- // ../shared/dist/analytics-config.js
96
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-config.js
97
97
  import { z as z4 } from "zod";
98
98
  var ANALYTICS_CONFIG_LEASE_MS = 6e4;
99
99
  var analyticsMeasurementConfigSchema = z4.object({
@@ -122,7 +122,7 @@ var analyticsMeasurementConfigSchema = z4.object({
122
122
  }
123
123
  });
124
124
 
125
- // ../shared/dist/analytics-events.js
125
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-events.js
126
126
  import { z as z5 } from "zod";
127
127
  var ANALYTICS_SCHEMA_VERSION = "analytics.v1";
128
128
  var analyticsSessionIdSchema = z5.string().regex(/^cpa_s_[a-f0-9]{32}$/u);
@@ -320,7 +320,7 @@ function isServerOnlyAnalyticsEvent(eventName) {
320
320
  return serverOnlyAnalyticsEvents.includes(eventName);
321
321
  }
322
322
 
323
- // ../shared/dist/analytics-manifest.js
323
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-manifest.js
324
324
  import { z as z6 } from "zod";
325
325
  var analyticsTargetIdSchema = z6.string().min(1).max(120).regex(/^[a-zA-Z][a-zA-Z0-9]*(?:[._-][a-zA-Z0-9]+)*$/u, {
326
326
  message: "Analytics target IDs must be stable identifiers without whitespace or visible copy."
@@ -430,7 +430,7 @@ function isPlainRecord(value) {
430
430
  return typeof value === "object" && value !== null;
431
431
  }
432
432
 
433
- // ../shared/dist/analytics-metrics.js
433
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-metrics.js
434
434
  import { z as z7 } from "zod";
435
435
  var analyticsVisitorQualities = ["exact", "estimated"];
436
436
  var analyticsVisitorQualitySchema = z7.enum(analyticsVisitorQualities);
@@ -447,7 +447,7 @@ var analyticsKpiKeys = [
447
447
  ];
448
448
  var analyticsKpiKeySchema = z7.enum(analyticsKpiKeys);
449
449
 
450
- // ../shared/dist/analytics-privacy.js
450
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-privacy.js
451
451
  var serverPropertySchemas = {
452
452
  lead_created: {
453
453
  conversionId: "identifier",
@@ -482,7 +482,7 @@ function revenuePropertySchema() {
482
482
  };
483
483
  }
484
484
 
485
- // ../shared/dist/assets.js
485
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/assets.js
486
486
  import { z as z8 } from "zod";
487
487
  var ASSET_STAGES = ["staging", "final", "deleted"];
488
488
  var ASSET_VISIBILITIES = ["private", "public", "deleted"];
@@ -497,7 +497,7 @@ var assetVisibilitySchema = z8.enum(ASSET_VISIBILITIES);
497
497
  var assetUsageEntityTypeSchema = z8.enum(ASSET_USAGE_ENTITY_TYPES);
498
498
  var brandingAccentColorSchema = z8.string().regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);
499
499
 
500
- // ../shared/dist/booking-contracts.js
500
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-contracts.js
501
501
  import { z as z9 } from "zod";
502
502
  var bookingStatuses = [
503
503
  "pending_payment",
@@ -858,23 +858,23 @@ function redactBookingManifest(value) {
858
858
  return value;
859
859
  }
860
860
 
861
- // ../shared/dist/booking-defaults.js
861
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-defaults.js
862
862
  var BOOKING_CREATE_PAYLOAD_LIMIT_BYTES = 16 * 1024;
863
863
 
864
- // ../shared/dist/bridge-protocol.js
864
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
865
865
  import { z as z17 } from "zod";
866
866
 
867
- // ../shared/dist/field-id.js
867
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-id.js
868
868
  import { z as z10 } from "zod";
869
869
  var FIELD_ID_PATTERN = /^[a-z][a-z0-9_-]*(\.[a-z][a-z0-9_-]*)+$/;
870
870
  var fieldIdSchema = z10.string().regex(FIELD_ID_PATTERN, "Invalid field id");
871
871
 
872
- // ../shared/dist/field-types.js
872
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-types.js
873
873
  import { z as z11 } from "zod";
874
874
  var FIELD_TYPES = ["text", "longText", "image", "link"];
875
875
  var fieldTypeSchema = z11.enum(FIELD_TYPES);
876
876
 
877
- // ../shared/dist/image-value.js
877
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/image-value.js
878
878
  import { z as z12 } from "zod";
879
879
  var SUPPORTED_IMAGE_CONTENT_TYPES = [
880
880
  "image/jpeg",
@@ -906,7 +906,7 @@ var imageValueSchema = z12.object({
906
906
  ]).optional()
907
907
  });
908
908
 
909
- // ../shared/dist/setup-deployment.js
909
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-deployment.js
910
910
  import { z as z13 } from "zod";
911
911
  var version = z13.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u);
912
912
  var siteSetupPackagesSchema = z13.object({
@@ -960,13 +960,13 @@ var setupDeploymentInputSchema = z13.discriminatedUnion("action", [
960
960
  }).strict()
961
961
  ]);
962
962
 
963
- // ../shared/dist/site-setup.js
963
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
964
964
  import { z as z16 } from "zod";
965
965
 
966
- // ../shared/dist/site-field-contract.js
966
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
967
967
  import { z as z15 } from "zod";
968
968
 
969
- // ../shared/dist/fallback-hash.js
969
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/fallback-hash.js
970
970
  import { z as z14 } from "zod";
971
971
  var SAFE_REPRESENTATION_REASONS = [
972
972
  "asset_import_rewritten",
@@ -993,7 +993,7 @@ function sortObjectKeys(value) {
993
993
  return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, entryValue]) => [key, sortObjectKeys(entryValue)]));
994
994
  }
995
995
 
996
- // ../shared/dist/site-field-contract.js
996
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
997
997
  var siteFieldStatusSchema = z15.enum(["hidden", "active"]);
998
998
  var semanticVersionSchema = z15.string().regex(/^\d+\.\d+\.\d+$/u);
999
999
  var siteFieldRouteKeySchema = z15.string().trim().refine((value) => value === "$global" || value.startsWith("/") && !value.includes("?") && !value.includes("#") && (value === "/" || !value.endsWith("/")), "Route keys must be canonical paths or $global.");
@@ -1069,7 +1069,7 @@ var siteFieldContractV1Schema = z15.object({
1069
1069
  }
1070
1070
  });
1071
1071
 
1072
- // ../shared/dist/site-setup.js
1072
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
1073
1073
  var SITE_SETUP_RUN_STATUSES = [
1074
1074
  "waiting_for_agent",
1075
1075
  "working",
@@ -1544,6 +1544,7 @@ var siteSetupEvidenceInputSchema = z16.object({
1544
1544
  bridgeSessionId: normalizedSafeTextSchema(256, "bridgeSessionId"),
1545
1545
  observations: z16.array(z16.object({
1546
1546
  fieldId: fieldIdSchema,
1547
+ fieldType: fieldTypeSchema,
1547
1548
  routeKey: siteFieldRouteKeySchema,
1548
1549
  renderedPath: renderedPathSchema,
1549
1550
  targetResolved: z16.boolean(),
@@ -1612,7 +1613,7 @@ var activateSetupModulesInputSchema = activateSiteSetupInputSchema.extend({
1612
1613
  ])
1613
1614
  }).strict();
1614
1615
 
1615
- // ../shared/dist/bridge-protocol.js
1616
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
1616
1617
  var BRIDGE_PROTOCOL_VERSION = 2;
1617
1618
  var bridgeRectSchema = z17.object({
1618
1619
  x: z17.number(),
@@ -1850,10 +1851,10 @@ var fieldBridgeMessageSchema = z17.discriminatedUnion("type", [
1850
1851
  fieldBridgeAnalyticsProbeResultSchema
1851
1852
  ]);
1852
1853
 
1853
- // ../shared/dist/commands.js
1854
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
1854
1855
  import { z as z19 } from "zod";
1855
1856
 
1856
- // ../shared/dist/errors.js
1857
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/errors.js
1857
1858
  import { z as z18 } from "zod";
1858
1859
  var UI_ERROR_CATEGORIES = [
1859
1860
  "site_member",
@@ -1868,7 +1869,7 @@ var commandErrorPayloadSchema = z18.object({
1868
1869
  details: z18.record(z18.string(), z18.unknown()).optional()
1869
1870
  });
1870
1871
 
1871
- // ../shared/dist/commands.js
1872
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
1872
1873
  var commandSuccessSchema = z19.object({
1873
1874
  ok: z19.literal(true),
1874
1875
  data: z19.unknown()
@@ -1882,7 +1883,7 @@ var commandResultSchema = z19.discriminatedUnion("ok", [
1882
1883
  commandErrorSchema
1883
1884
  ]);
1884
1885
 
1885
- // ../shared/dist/editor-settings.js
1886
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/editor-settings.js
1886
1887
  import { z as z20 } from "zod";
1887
1888
  var editorColorSchemeSchema = z20.enum([
1888
1889
  "paper",
@@ -1894,7 +1895,7 @@ var editorColorSchemes = editorColorSchemeSchema.options;
1894
1895
  var editorColorModeSchema = z20.enum(["light", "dark"]);
1895
1896
  var editorColorModes = editorColorModeSchema.options;
1896
1897
 
1897
- // ../shared/dist/site-slug.js
1898
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-slug.js
1898
1899
  import { z as z21 } from "zod";
1899
1900
  var SITE_SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
1900
1901
  var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
@@ -1914,7 +1915,7 @@ var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
1914
1915
  ]);
1915
1916
  var siteSlugSchema = z21.string().regex(SITE_SLUG_PATTERN, "Invalid site slug").refine((value) => !RESERVED_SITE_SLUGS.has(value), "Reserved site slug");
1916
1917
 
1917
- // ../shared/dist/entitlements.js
1918
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/entitlements.js
1918
1919
  import { z as z22 } from "zod";
1919
1920
  var entitlementSnapshotSchema = z22.object({
1920
1921
  planKey: z22.string().trim().min(1),
@@ -1961,10 +1962,10 @@ var EARLY_ACCESS_PLAN = {
1961
1962
  bookingRemindersEnabled: true
1962
1963
  };
1963
1964
 
1964
- // ../shared/dist/first-party-image-upload.js
1965
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/first-party-image-upload.js
1965
1966
  var maxFirstPartyImageUploadBytes = 4 * 1024 * 1024;
1966
1967
 
1967
- // ../shared/dist/readiness.js
1968
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/readiness.js
1968
1969
  import { z as z23 } from "zod";
1969
1970
  var READINESS_CHECK_KEYS = [
1970
1971
  "agent_instructions_installed",
@@ -1983,7 +1984,7 @@ var READINESS_STATUSES = [
1983
1984
  var readinessCheckKeySchema = z23.enum(READINESS_CHECK_KEYS);
1984
1985
  var readinessStatusSchema = z23.enum(READINESS_STATUSES);
1985
1986
 
1986
- // ../shared/dist/site.js
1987
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site.js
1987
1988
  import { z as z24 } from "zod";
1988
1989
  var SITE_STATUSES = [
1989
1990
  "setup",
@@ -1994,7 +1995,7 @@ var SITE_STATUSES = [
1994
1995
  var siteStatusSchema = z24.enum(SITE_STATUSES);
1995
1996
  var websiteUrlSchema = z24.string().trim().url().refine((value) => value.startsWith("https://") || value.startsWith("http://"), "Website URL must use http or https");
1996
1997
 
1997
- // ../shared/dist/setup-assets.js
1998
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-assets.js
1998
1999
  import { z as z25 } from "zod";
1999
2000
  var configureSetupAssetTargetInputSchema = z25.object({
2000
2001
  siteId: z25.string().uuid(),
@@ -2055,7 +2056,7 @@ var checkSetupAssetTargetInputSchema = z25.object({
2055
2056
  intent: z25.enum(["start", "poll"])
2056
2057
  }).strict();
2057
2058
 
2058
- // ../shared/dist/setup-installation.js
2059
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-installation.js
2059
2060
  import { z as z26 } from "zod";
2060
2061
  var setupInstallationRequestSchema = z26.object({
2061
2062
  modules: siteSetupModulesSchema,
@@ -2066,7 +2067,7 @@ var setupInstallationRequestSchema = z26.object({
2066
2067
  }).strict()
2067
2068
  }).strict();
2068
2069
 
2069
- // ../shared/dist/setup-claim.js
2070
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-claim.js
2070
2071
  import { z as z27 } from "zod";
2071
2072
  var setupClaimCodeSchema = z27.string().regex(/^[0-9A-HJKMNP-TV-Z]{8}$/u);
2072
2073
  var setupClaimBindingSchema = z27.object({
@@ -3036,8 +3037,6 @@ async function inspectSetupLocalProject(projectDir) {
3036
3037
  sourceConflicts.push("base_path");
3037
3038
  if (/\bloaderFile\s*:|\bloader\s*:\s*['"](?:custom|imgix|cloudinary|akamai)['"]/u.test(source))
3038
3039
  sourceConflicts.push(`inspect_image_loader:${file}`);
3039
- if (/\bmaximumRedirects\s*:\s*[1-9]/u.test(source))
3040
- sourceConflicts.push(`inspect_image_redirects:${file}`);
3041
3040
  }
3042
3041
  if (sourceConflicts.some((conflict) => conflict === "static_export" || conflict === "base_path"))
3043
3042
  fail("unsupported_server_configuration", "Resolve static export/basePath configuration explicitly; Siteplane requires its server-side admin and revalidation handlers.");
package/dist/next.js CHANGED
@@ -9,12 +9,12 @@ import { promisify as promisify4 } from "util";
9
9
  import { mkdir, readFile, writeFile } from "fs/promises";
10
10
  import { dirname } from "path";
11
11
 
12
- // ../shared/dist/actors.js
12
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/actors.js
13
13
  import { z } from "zod";
14
14
  var ACTOR_TYPES = ["workspace_member", "site_member", "agent", "setup_guest", "system"];
15
15
  var actorTypeSchema = z.enum(ACTOR_TYPES);
16
16
 
17
- // ../shared/dist/analytics-defaults.js
17
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-defaults.js
18
18
  var ANALYTICS_BATCH_LIMITS = {
19
19
  maxEventsPerRequest: 50,
20
20
  maxJsonBodyBytes: 64 * 1024,
@@ -29,7 +29,7 @@ var ANALYTICS_RETENTION_DEFAULTS = {
29
29
  lateEventWindowHours: 72
30
30
  };
31
31
 
32
- // ../shared/dist/analytics-booking.js
32
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-booking.js
33
33
  import { z as z2 } from "zod";
34
34
  var bookingProviders = ["treatwell", "beautinda", "other"];
35
35
  var bookingAttributionModes = [
@@ -72,7 +72,7 @@ var bookingProviderHintSchema = z2.object({
72
72
  }
73
73
  });
74
74
 
75
- // ../shared/dist/analytics-contract.js
75
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-contract.js
76
76
  import { z as z3 } from "zod";
77
77
  var ANALYTICS_CONTRACT_VERSION = "analytics-contract.v1";
78
78
  var ANALYTICS_CONTRACT_HASH = "sha256:a91bddcc3c5e4196933b0335d03eaf41ff929cb736bdd694fe54d07ab52dada1";
@@ -100,7 +100,7 @@ var analyticsProviderImportSchema = z3.object({
100
100
  rows: z3.array(analyticsProviderImportRowSchema).min(1).max(1e3)
101
101
  }).strict();
102
102
 
103
- // ../shared/dist/analytics-config.js
103
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-config.js
104
104
  import { z as z4 } from "zod";
105
105
  var ANALYTICS_CONFIG_LEASE_MS = 6e4;
106
106
  var analyticsMeasurementConfigSchema = z4.object({
@@ -129,7 +129,7 @@ var analyticsMeasurementConfigSchema = z4.object({
129
129
  }
130
130
  });
131
131
 
132
- // ../shared/dist/analytics-events.js
132
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-events.js
133
133
  import { z as z5 } from "zod";
134
134
  var ANALYTICS_SCHEMA_VERSION = "analytics.v1";
135
135
  var analyticsSessionIdSchema = z5.string().regex(/^cpa_s_[a-f0-9]{32}$/u);
@@ -327,7 +327,7 @@ function isServerOnlyAnalyticsEvent(eventName) {
327
327
  return serverOnlyAnalyticsEvents.includes(eventName);
328
328
  }
329
329
 
330
- // ../shared/dist/analytics-manifest.js
330
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-manifest.js
331
331
  import { z as z6 } from "zod";
332
332
  var analyticsTargetIdSchema = z6.string().min(1).max(120).regex(/^[a-zA-Z][a-zA-Z0-9]*(?:[._-][a-zA-Z0-9]+)*$/u, {
333
333
  message: "Analytics target IDs must be stable identifiers without whitespace or visible copy."
@@ -437,7 +437,7 @@ function isPlainRecord(value) {
437
437
  return typeof value === "object" && value !== null;
438
438
  }
439
439
 
440
- // ../shared/dist/analytics-metrics.js
440
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-metrics.js
441
441
  import { z as z7 } from "zod";
442
442
  var analyticsVisitorQualities = ["exact", "estimated"];
443
443
  var analyticsVisitorQualitySchema = z7.enum(analyticsVisitorQualities);
@@ -454,7 +454,7 @@ var analyticsKpiKeys = [
454
454
  ];
455
455
  var analyticsKpiKeySchema = z7.enum(analyticsKpiKeys);
456
456
 
457
- // ../shared/dist/analytics-privacy.js
457
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/analytics-privacy.js
458
458
  var serverPropertySchemas = {
459
459
  lead_created: {
460
460
  conversionId: "identifier",
@@ -489,7 +489,7 @@ function revenuePropertySchema() {
489
489
  };
490
490
  }
491
491
 
492
- // ../shared/dist/assets.js
492
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/assets.js
493
493
  import { z as z8 } from "zod";
494
494
  var ASSET_STAGES = ["staging", "final", "deleted"];
495
495
  var ASSET_VISIBILITIES = ["private", "public", "deleted"];
@@ -504,7 +504,7 @@ var assetVisibilitySchema = z8.enum(ASSET_VISIBILITIES);
504
504
  var assetUsageEntityTypeSchema = z8.enum(ASSET_USAGE_ENTITY_TYPES);
505
505
  var brandingAccentColorSchema = z8.string().regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/);
506
506
 
507
- // ../shared/dist/booking-contracts.js
507
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-contracts.js
508
508
  import { z as z9 } from "zod";
509
509
  var bookingStatuses = [
510
510
  "pending_payment",
@@ -850,13 +850,13 @@ var bookingManifestSchema = z9.object({
850
850
  productionOrigin: z9.string().url().optional()
851
851
  }).passthrough();
852
852
 
853
- // ../shared/dist/booking-defaults.js
853
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/booking-defaults.js
854
854
  var BOOKING_CREATE_PAYLOAD_LIMIT_BYTES = 16 * 1024;
855
855
 
856
- // ../shared/dist/bridge-protocol.js
856
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
857
857
  import { z as z17 } from "zod";
858
858
 
859
- // ../shared/dist/field-id.js
859
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-id.js
860
860
  import { z as z10 } from "zod";
861
861
  var FIELD_ID_PATTERN = /^[a-z][a-z0-9_-]*(\.[a-z][a-z0-9_-]*)+$/;
862
862
  var fieldIdSchema = z10.string().regex(FIELD_ID_PATTERN, "Invalid field id");
@@ -864,12 +864,12 @@ function isFieldId(value) {
864
864
  return typeof value === "string" && fieldIdSchema.safeParse(value).success;
865
865
  }
866
866
 
867
- // ../shared/dist/field-types.js
867
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/field-types.js
868
868
  import { z as z11 } from "zod";
869
869
  var FIELD_TYPES = ["text", "longText", "image", "link"];
870
870
  var fieldTypeSchema = z11.enum(FIELD_TYPES);
871
871
 
872
- // ../shared/dist/image-value.js
872
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/image-value.js
873
873
  import { z as z12 } from "zod";
874
874
  var SUPPORTED_IMAGE_CONTENT_TYPES = [
875
875
  "image/jpeg",
@@ -901,7 +901,7 @@ var imageValueSchema = z12.object({
901
901
  ]).optional()
902
902
  });
903
903
 
904
- // ../shared/dist/setup-deployment.js
904
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-deployment.js
905
905
  import { z as z13 } from "zod";
906
906
  var version = z13.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/u);
907
907
  var siteSetupPackagesSchema = z13.object({
@@ -955,13 +955,13 @@ var setupDeploymentInputSchema = z13.discriminatedUnion("action", [
955
955
  }).strict()
956
956
  ]);
957
957
 
958
- // ../shared/dist/site-setup.js
958
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
959
959
  import { z as z16 } from "zod";
960
960
 
961
- // ../shared/dist/site-field-contract.js
961
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
962
962
  import { z as z15 } from "zod";
963
963
 
964
- // ../shared/dist/fallback-hash.js
964
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/fallback-hash.js
965
965
  import { z as z14 } from "zod";
966
966
  var SAFE_REPRESENTATION_REASONS = [
967
967
  "asset_import_rewritten",
@@ -1183,7 +1183,7 @@ var SHA256_CONSTANTS = [
1183
1183
  3329325298
1184
1184
  ];
1185
1185
 
1186
- // ../shared/dist/site-field-contract.js
1186
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-field-contract.js
1187
1187
  var fieldContractVersion = "1.0.0";
1188
1188
  var scannerContractVersion = "1.0.0";
1189
1189
  var siteFieldStatusSchema = z15.enum(["hidden", "active"]);
@@ -1272,7 +1272,7 @@ function createSiteFieldContractHash(input) {
1272
1272
  return `sha256:${sha256Hex(payload)}`;
1273
1273
  }
1274
1274
 
1275
- // ../shared/dist/site-setup.js
1275
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-setup.js
1276
1276
  var SITE_SETUP_RUN_STATUSES = [
1277
1277
  "waiting_for_agent",
1278
1278
  "working",
@@ -1747,6 +1747,7 @@ var siteSetupEvidenceInputSchema = z16.object({
1747
1747
  bridgeSessionId: normalizedSafeTextSchema(256, "bridgeSessionId"),
1748
1748
  observations: z16.array(z16.object({
1749
1749
  fieldId: fieldIdSchema,
1750
+ fieldType: fieldTypeSchema,
1750
1751
  routeKey: siteFieldRouteKeySchema,
1751
1752
  renderedPath: renderedPathSchema,
1752
1753
  targetResolved: z16.boolean(),
@@ -1815,7 +1816,7 @@ var activateSetupModulesInputSchema = activateSiteSetupInputSchema.extend({
1815
1816
  ])
1816
1817
  }).strict();
1817
1818
 
1818
- // ../shared/dist/bridge-protocol.js
1819
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/bridge-protocol.js
1819
1820
  var BRIDGE_PROTOCOL_VERSION = 2;
1820
1821
  var bridgeRectSchema = z17.object({
1821
1822
  x: z17.number(),
@@ -2053,10 +2054,10 @@ var fieldBridgeMessageSchema = z17.discriminatedUnion("type", [
2053
2054
  fieldBridgeAnalyticsProbeResultSchema
2054
2055
  ]);
2055
2056
 
2056
- // ../shared/dist/commands.js
2057
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
2057
2058
  import { z as z19 } from "zod";
2058
2059
 
2059
- // ../shared/dist/errors.js
2060
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/errors.js
2060
2061
  import { z as z18 } from "zod";
2061
2062
  var UI_ERROR_CATEGORIES = [
2062
2063
  "site_member",
@@ -2071,7 +2072,7 @@ var commandErrorPayloadSchema = z18.object({
2071
2072
  details: z18.record(z18.string(), z18.unknown()).optional()
2072
2073
  });
2073
2074
 
2074
- // ../shared/dist/commands.js
2075
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/commands.js
2075
2076
  var commandSuccessSchema = z19.object({
2076
2077
  ok: z19.literal(true),
2077
2078
  data: z19.unknown()
@@ -2085,7 +2086,7 @@ var commandResultSchema = z19.discriminatedUnion("ok", [
2085
2086
  commandErrorSchema
2086
2087
  ]);
2087
2088
 
2088
- // ../shared/dist/editor-settings.js
2089
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/editor-settings.js
2089
2090
  import { z as z20 } from "zod";
2090
2091
  var editorColorSchemeSchema = z20.enum([
2091
2092
  "paper",
@@ -2097,7 +2098,7 @@ var editorColorSchemes = editorColorSchemeSchema.options;
2097
2098
  var editorColorModeSchema = z20.enum(["light", "dark"]);
2098
2099
  var editorColorModes = editorColorModeSchema.options;
2099
2100
 
2100
- // ../shared/dist/site-slug.js
2101
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site-slug.js
2101
2102
  import { z as z21 } from "zod";
2102
2103
  var SITE_SLUG_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
2103
2104
  var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
@@ -2117,7 +2118,7 @@ var RESERVED_SITE_SLUGS = /* @__PURE__ */ new Set([
2117
2118
  ]);
2118
2119
  var siteSlugSchema = z21.string().regex(SITE_SLUG_PATTERN, "Invalid site slug").refine((value) => !RESERVED_SITE_SLUGS.has(value), "Reserved site slug");
2119
2120
 
2120
- // ../shared/dist/entitlements.js
2121
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/entitlements.js
2121
2122
  import { z as z22 } from "zod";
2122
2123
  var entitlementSnapshotSchema = z22.object({
2123
2124
  planKey: z22.string().trim().min(1),
@@ -2164,10 +2165,10 @@ var EARLY_ACCESS_PLAN = {
2164
2165
  bookingRemindersEnabled: true
2165
2166
  };
2166
2167
 
2167
- // ../shared/dist/first-party-image-upload.js
2168
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/first-party-image-upload.js
2168
2169
  var maxFirstPartyImageUploadBytes = 4 * 1024 * 1024;
2169
2170
 
2170
- // ../shared/dist/readiness.js
2171
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/readiness.js
2171
2172
  import { z as z23 } from "zod";
2172
2173
  var READINESS_CHECK_KEYS = [
2173
2174
  "agent_instructions_installed",
@@ -2186,7 +2187,7 @@ var READINESS_STATUSES = [
2186
2187
  var readinessCheckKeySchema = z23.enum(READINESS_CHECK_KEYS);
2187
2188
  var readinessStatusSchema = z23.enum(READINESS_STATUSES);
2188
2189
 
2189
- // ../shared/dist/site.js
2190
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/site.js
2190
2191
  import { z as z24 } from "zod";
2191
2192
  var SITE_STATUSES = [
2192
2193
  "setup",
@@ -2197,7 +2198,7 @@ var SITE_STATUSES = [
2197
2198
  var siteStatusSchema = z24.enum(SITE_STATUSES);
2198
2199
  var websiteUrlSchema = z24.string().trim().url().refine((value) => value.startsWith("https://") || value.startsWith("http://"), "Website URL must use http or https");
2199
2200
 
2200
- // ../shared/dist/setup-assets.js
2201
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-assets.js
2201
2202
  import { z as z25 } from "zod";
2202
2203
  var configureSetupAssetTargetInputSchema = z25.object({
2203
2204
  siteId: z25.string().uuid(),
@@ -2258,7 +2259,7 @@ var checkSetupAssetTargetInputSchema = z25.object({
2258
2259
  intent: z25.enum(["start", "poll"])
2259
2260
  }).strict();
2260
2261
 
2261
- // ../shared/dist/setup-installation.js
2262
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-installation.js
2262
2263
  import { z as z26 } from "zod";
2263
2264
  var setupInstallationRequestSchema = z26.object({
2264
2265
  modules: siteSetupModulesSchema,
@@ -2269,7 +2270,7 @@ var setupInstallationRequestSchema = z26.object({
2269
2270
  }).strict()
2270
2271
  }).strict();
2271
2272
 
2272
- // ../shared/dist/setup-claim.js
2273
+ // ../../../../../../Web-Dev/Programme/Siteplane/packages/shared/dist/setup-claim.js
2273
2274
  import { z as z27 } from "zod";
2274
2275
  var setupClaimCodeSchema = z27.string().regex(/^[0-9A-HJKMNP-TV-Z]{8}$/u);
2275
2276
  var setupClaimBindingSchema = z27.object({
@@ -2839,8 +2840,6 @@ async function inspectSetupLocalProject(projectDir) {
2839
2840
  sourceConflicts.push("base_path");
2840
2841
  if (/\bloaderFile\s*:|\bloader\s*:\s*['"](?:custom|imgix|cloudinary|akamai)['"]/u.test(source))
2841
2842
  sourceConflicts.push(`inspect_image_loader:${file}`);
2842
- if (/\bmaximumRedirects\s*:\s*[1-9]/u.test(source))
2843
- sourceConflicts.push(`inspect_image_redirects:${file}`);
2844
2843
  }
2845
2844
  if (sourceConflicts.some((conflict) => conflict === "static_export" || conflict === "base_path"))
2846
2845
  fail("unsupported_server_configuration", "Resolve static export/basePath configuration explicitly; Siteplane requires its server-side admin and revalidation handlers.");
@@ -4192,39 +4191,25 @@ async function scanNextProjectFieldContract(projectDir) {
4192
4191
  async function withSiteplane(nextConfig, options = {}) {
4193
4192
  const projectDir = options.projectDir ?? process.cwd();
4194
4193
  const config = await readProjectConfig(projectDir);
4195
- if (!config.fieldContractHash) {
4196
- throw new SiteplaneNextContractError(
4197
- "missing_field_contract",
4198
- "Run siteplane setup apply before starting or building Next.js."
4199
- );
4200
- }
4201
4194
  const scan = await scanNextProjectFieldContract(projectDir);
4202
- if (scan.fieldContractHash !== config.fieldContractHash) {
4203
- throw new SiteplaneNextContractError(
4204
- "stale_field_contract",
4205
- "The instrumented source no longer matches siteplane.config.json. Run siteplane setup apply again."
4206
- );
4207
- }
4208
- const checkoutRevision = await readGitRevision2(projectDir) || await readBuildProvenance(projectDir) || (process.env.VERCEL === "1" ? process.env.VERCEL_GIT_COMMIT_SHA?.trim() : "");
4209
4195
  const requestedRevision = options.buildRevision?.trim() || process.env.SITEPLANE_BUILD_REVISION?.trim();
4210
- if (!checkoutRevision || !/^[0-9a-f]{40}$/u.test(checkoutRevision))
4211
- throw new SiteplaneNextContractError(
4212
- "missing_build_revision",
4213
- "Build from the committed Git checkout with provider Git metadata; an arbitrary revision override is insufficient."
4214
- );
4215
- if (requestedRevision && requestedRevision !== checkoutRevision)
4216
- throw new SiteplaneNextContractError(
4217
- "build_revision_conflict",
4218
- "SITEPLANE_BUILD_REVISION does not match the actual build checkout. Deploy the applied commit with its current configuration."
4219
- );
4220
- const buildRevision = checkoutRevision;
4221
- if (process.env.VERCEL === "1")
4222
- await emitBuildProof(
4223
- projectDir,
4224
- config.packages,
4225
- buildRevision,
4226
- scan.fieldContractHash
4227
- );
4196
+ const providerRevision = process.env.VERCEL === "1" ? process.env.VERCEL_GIT_COMMIT_SHA?.trim() : void 0;
4197
+ const buildRevision = providerRevision || await readGitRevision2(projectDir) || await readBuildProvenance(projectDir) || requestedRevision || "local";
4198
+ if (process.env.VERCEL === "1" && /^[0-9a-f]{40}$/u.test(buildRevision)) {
4199
+ try {
4200
+ await emitBuildProof(
4201
+ projectDir,
4202
+ config.packages,
4203
+ buildRevision,
4204
+ scan.fieldContractHash
4205
+ );
4206
+ } catch (error) {
4207
+ const detail = error instanceof SiteplaneNextContractError ? error.code : "unavailable";
4208
+ console.warn(
4209
+ `[Siteplane] Build proof ${detail}; the website build continues. Run the scoped Siteplane setup verification when editor evidence must be refreshed.`
4210
+ );
4211
+ }
4212
+ }
4228
4213
  const hasImages = scan.contract.fields.some(
4229
4214
  (field) => field.fieldType === "image"
4230
4215
  );
@@ -4306,16 +4291,6 @@ function readImageWebsiteOrigin() {
4306
4291
  }
4307
4292
  }
4308
4293
  function prepareImagePatterns(images, websiteOrigin) {
4309
- if (images?.loaderFile || images?.loader && images.loader !== "default")
4310
- throw new SiteplaneNextContractError(
4311
- "image_policy_conflict",
4312
- "The website uses a custom image loader. Reconcile its handling of Siteplane and repository image URLs while preserving existing images; do not bypass optimization globally."
4313
- );
4314
- if (images?.maximumRedirects !== void 0 && images.maximumRedirects !== 0)
4315
- throw new SiteplaneNextContractError(
4316
- "image_policy_conflict",
4317
- "The website explicitly follows image redirects. Resolve redirecting sources before setting maximumRedirects to 0; Siteplane image destinations must be fetched directly."
4318
- );
4319
4294
  const remotePatterns = [...images?.remotePatterns ?? []];
4320
4295
  for (const [origin, pathname] of [
4321
4296
  [managedImageOrigin, "/api/assets/*/content"],
@@ -4341,8 +4316,7 @@ function prepareImagePatterns(images, websiteOrigin) {
4341
4316
  return {
4342
4317
  ...images,
4343
4318
  remotePatterns,
4344
- ...localPatterns ? { localPatterns } : {},
4345
- maximumRedirects: 0
4319
+ ...localPatterns ? { localPatterns } : {}
4346
4320
  };
4347
4321
  }
4348
4322
  function prepareImageCsp(policy, websiteOrigin) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "siteplane",
3
3
  "private": false,
4
- "version": "0.1.57",
4
+ "version": "0.1.59",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",
7
7
  "publishConfig": {