ENGLISH·COURSE API
    Preparing search index...
    • The manifest an unconfigured deployment behaves as: one local store, serving everything from the folder Next.js already serves.

      Returns {
          version: 1;
          stores: Record<
              string,
              | { driver: "local"; baseUrl: string; pathPrefix: string }
              | {
                  driver: "s3";
                  bucket: string;
                  region: string;
                  endpoint?: string;
                  forcePathStyle: boolean;
                  pathPrefix: string;
                  visibility: "public" | "signed";
                  publicUrl?: string;
                  signedUrlTtlSeconds?: number;
              }
              | {
                  driver: "gcs";
                  bucket: string;
                  apiEndpoint?: string;
                  pathPrefix: string;
                  visibility: "public"
                  | "signed";
                  publicUrl?: string;
                  signedUrlTtlSeconds?: number;
              },
          >;
          default: string;
          routes: { prefix: string; store: string }[];
          overrides: Record<string, string>;
          assets: Record<string, { store?: string; objectPath?: string }>;
      }

      A manifest with a single local store as the default

      • version: 1
      • stores: Record<
            string,
            | { driver: "local"; baseUrl: string; pathPrefix: string }
            | {
                driver: "s3";
                bucket: string;
                region: string;
                endpoint?: string;
                forcePathStyle: boolean;
                pathPrefix: string;
                visibility: "public" | "signed";
                publicUrl?: string;
                signedUrlTtlSeconds?: number;
            }
            | {
                driver: "gcs";
                bucket: string;
                apiEndpoint?: string;
                pathPrefix: string;
                visibility: "public"
                | "signed";
                publicUrl?: string;
                signedUrlTtlSeconds?: number;
            },
        >
      • default: string

        Store that answers for a key matching no override and no route.

      • routes: { prefix: string; store: string }[]
      • overrides: Record<string, string>

        Exact key → store name, for single assets that escape their prefix.

      • assets: Record<string, { store?: string; objectPath?: string }>

        Exact key → declared placement. Outranks every other layer.

      Returning a real manifest rather than a special case means every caller has exactly one code path — the routing store never has to ask whether a manifest exists.