@plasmicapp/loader-nextjs 1.0.359 → 1.0.361

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/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ import { DataCtxReader } from '@plasmicapp/loader-react';
8
8
  import { DataProvider } from '@plasmicapp/loader-react';
9
9
  import { extractPlasmicQueryData } from '@plasmicapp/loader-react';
10
10
  import { FetchComponentDataOpts as FetchComponentDataOpts_2 } from '@plasmicapp/loader-react';
11
+ import { GlobalActionsContext } from '@plasmicapp/loader-react';
12
+ import { GlobalActionsProvider } from '@plasmicapp/loader-react';
11
13
  import { IncomingMessage } from 'http';
12
14
  import { InitOptions } from '@plasmicapp/loader-react/react-server-conditional';
13
15
  import { InternalPlasmicComponentLoader } from '@plasmicapp/loader-react';
@@ -52,6 +54,10 @@ export declare interface FetchComponentDataOpts extends FetchComponentDataOpts_2
52
54
  deferChunks?: boolean;
53
55
  }
54
56
 
57
+ export { GlobalActionsContext }
58
+
59
+ export { GlobalActionsProvider }
60
+
55
61
  export { InitOptions }
56
62
 
57
63
  export declare function initPlasmicLoader(opts: NextInitOptions): NextJsPlasmicComponentLoader;
package/dist/index.esm.js CHANGED
@@ -222,6 +222,8 @@ import {
222
222
  DataCtxReader,
223
223
  DataProvider,
224
224
  extractPlasmicQueryData,
225
+ GlobalActionsContext,
226
+ GlobalActionsProvider,
225
227
  PageParamsProvider,
226
228
  PlasmicCanvasContext,
227
229
  PlasmicCanvasHost,
@@ -300,7 +302,7 @@ var NextJsPlasmicComponentLoader = class extends PlasmicComponentLoader {
300
302
  return __async(this, null, function* () {
301
303
  const data = yield __superGet(NextJsPlasmicComponentLoader.prototype, this, "maybeFetchComponentData").call(this, ...args);
302
304
  const { opts } = parseFetchComponentDataArgs(...args);
303
- if (data && (opts == null ? void 0 : opts.deferChunks)) {
305
+ if (data && ((opts == null ? void 0 : opts.deferChunks) || (opts == null ? void 0 : opts.deferChunks) === void 0 && data.bundle.deferChunksByDefault)) {
304
306
  filterCodeFromRenderData(data);
305
307
  }
306
308
  return data;
@@ -310,7 +312,7 @@ var NextJsPlasmicComponentLoader = class extends PlasmicComponentLoader {
310
312
  return __async(this, null, function* () {
311
313
  const data = yield __superGet(NextJsPlasmicComponentLoader.prototype, this, "fetchComponentData").call(this, ...args);
312
314
  const { opts } = parseFetchComponentDataArgs(...args);
313
- if (opts == null ? void 0 : opts.deferChunks) {
315
+ if ((opts == null ? void 0 : opts.deferChunks) || (opts == null ? void 0 : opts.deferChunks) === void 0 && data.bundle.deferChunksByDefault) {
314
316
  filterCodeFromRenderData(data);
315
317
  }
316
318
  return data;
@@ -443,6 +445,8 @@ function renderDynamicPayloadScripts(loader, prefetchedData) {
443
445
  export {
444
446
  DataCtxReader,
445
447
  DataProvider,
448
+ GlobalActionsContext,
449
+ GlobalActionsProvider,
446
450
  NextJsPlasmicComponentLoader,
447
451
  PageParamsProvider,
448
452
  PlasmicCanvasContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/cache.ts", "../src/server-require.ts"],
4
- "sourcesContent": ["import {\n ComponentLookupSpec,\n FetchComponentDataOpts as InternalFetchComponentDataOpts,\n InternalPlasmicComponentLoader,\n PlasmicComponentLoader,\n PlasmicRootProvider as CommonPlasmicRootProvider,\n} from \"@plasmicapp/loader-react\";\nimport { IncomingMessage, ServerResponse } from \"http\";\n// NextHead and NextLink must be default imported (`import Pkg`) instead of a namespace import (`import * as Pkg`).\n// Otherwise, there's a Next.js 12 bug when referencing these dependencies due to default import interop.\n// The transpiled CommonJS code would create a `default` field on the package,\n// causing React to think it's an invalid React object:\n// ```\n// const NextHead = __defaultInterop(require('next/head.js'))\n// assert(typeof NextHead === 'object')\n// assert(typeof NextHead.default === 'function')\n// ```\nimport type { CodeModule } from \"@plasmicapp/loader-core\";\nimport NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport Script from \"next/script\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\nimport type { ComponentRenderData, NextInitOptions } from \"./shared-exports\";\n\nexport {\n DataCtxReader,\n DataProvider,\n extractPlasmicQueryData,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n plasmicPrepass,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n usePlasmicQueryData,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport type {\n CodeComponentMeta,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport * from \"./shared-exports\";\n\ntype ServerRequest = IncomingMessage & {\n cookies: {\n [key: string]: string;\n };\n};\n\nconst reactMajorVersion = +React.version.split(\".\")[0];\n\nfunction filterCodeFromRenderData(data: ComponentRenderData) {\n if (reactMajorVersion >= 18 && !!data.bundle.bundleKey) {\n // Keep the entrypoints\n const entrypoints = new Set([\n ...data.entryCompMetas.map((compMeta) => compMeta.entry),\n \"root-provider.js\",\n ...data.bundle.projects\n .map((x) => x.globalContextsProviderFileName)\n .filter((x) => !!x),\n ...data.bundle.components\n .filter((c) => c.isGlobalContextProvider)\n .map((c) => c.entry),\n ...data.bundle.globalGroups.map((g) => g.contextFile),\n ]);\n\n data.bundle.modules.browser = data.bundle.modules.browser.map((module) => {\n if (module.type !== \"code\" || entrypoints.has(module.fileName)) {\n return module;\n }\n return { ...module, code: \"\" };\n });\n }\n}\n\nexport interface FetchComponentDataOpts extends InternalFetchComponentDataOpts {\n /**\n * Defer loading code chunks to script tags, reducing initial payload size.\n */\n deferChunks?: boolean;\n}\n\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n }\n\n async getActiveVariation(opts: {\n req?: ServerRequest;\n res?: ServerResponse;\n known?: Record<string, string>;\n traits: Record<string, string | number | boolean>;\n }) {\n const extractBuiltinTraits = () => {\n const url = new URL(\n opts.req?.url ?? \"/\",\n `https://${opts.req?.headers.host ?? \"server.side\"}`\n );\n return {\n pageUrl: url.href,\n };\n };\n\n return this._getActiveVariation({\n traits: {\n ...extractBuiltinTraits(),\n ...opts.traits,\n },\n getKnownValue: (key: string) => {\n if (opts.known) {\n return opts.known[key];\n } else {\n return opts.req?.cookies[`plasmic:${key}`] ?? undefined;\n }\n },\n updateKnownValue: (key: string, value: string) => {\n if (opts.res) {\n const cookie = `plasmic:${key}=${value}`;\n const resCookie = opts.res?.getHeader(\"Set-Cookie\") ?? [];\n let newCookies: string[] = [];\n if (Array.isArray(resCookie)) {\n newCookies = [...resCookie, `plasmic:${key}=${value}`];\n } else {\n newCookies = [`${resCookie}`, cookie];\n }\n\n opts.res?.setHeader(\"Set-Cookie\", newCookies);\n }\n },\n });\n }\n\n maybeFetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData | null>;\n maybeFetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData | null>;\n async maybeFetchComponentData(\n ...args: any[]\n ): Promise<ComponentRenderData | null> {\n const data = await super.maybeFetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (data && opts?.deferChunks) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n\n fetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData>;\n fetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData>;\n async fetchComponentData(...args: any[]): Promise<ComponentRenderData> {\n const data = await super.fetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (opts?.deferChunks) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n}\n\nfunction parseFetchComponentDataArgs(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n): { specs: ComponentLookupSpec[]; opts?: FetchComponentDataOpts };\nfunction parseFetchComponentDataArgs(...specs: ComponentLookupSpec[]): {\n specs: ComponentLookupSpec[];\n opts?: FetchComponentDataOpts;\n};\nfunction parseFetchComponentDataArgs(...args: any[]) {\n let specs: ComponentLookupSpec[];\n let opts: FetchComponentDataOpts | undefined;\n if (Array.isArray(args[0])) {\n specs = args[0];\n opts = args[1];\n } else {\n specs = args;\n opts = undefined;\n }\n return { specs, opts };\n}\n\nexport function initPlasmicLoader(opts: NextInitOptions) {\n const loader = initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n (opts) =>\n new NextJsPlasmicComponentLoader(\n new InternalPlasmicComponentLoader(opts)\n ),\n opts\n );\n loader.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\n if (opts.nextNavigation) {\n loader.registerModules({\n \"next/navigation\": opts.nextNavigation,\n });\n }\n return loader;\n}\n\nconst PlasmicNextLink = React.forwardRef(function PlasmicNextLink(\n props: React.ComponentProps<typeof NextLink>,\n ref: React.Ref<HTMLAnchorElement>\n) {\n // Basically renders NextLink, except when href is undefined,\n // which freaks out NextLink :-/\n if (props.href) {\n const {\n href,\n replace,\n scroll,\n shallow,\n passHref,\n prefetch,\n locale,\n ...rest\n } = props;\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = typeof href === \"string\" && href.startsWith(\"#\");\n // We use legacyBehavior, because we don't know which\n // version of next the user has installed\n return (\n <NextLink\n href={href}\n replace={replace}\n scroll={scroll != null ? scroll : isFragment ? false : undefined}\n shallow={shallow}\n passHref={passHref}\n prefetch={prefetch}\n locale={locale}\n {...({ legacyBehavior: true } as any)}\n >\n <a {...rest} ref={ref} />\n </NextLink>\n );\n } else {\n return <a {...props} href={undefined} ref={ref} />;\n }\n});\n\nexport function PlasmicRootProvider(\n // We omit Head but still allow override for Link\n props: Omit<\n React.ComponentProps<typeof CommonPlasmicRootProvider>,\n \"Head\"\n > & { skipChunks?: boolean }\n) {\n return (\n <>\n {!props.skipChunks &&\n renderDynamicPayloadScripts(props.loader, props.prefetchedData)}\n <CommonPlasmicRootProvider\n Head={NextHead}\n Link={PlasmicNextLink}\n {...props}\n />\n </>\n );\n}\n\nfunction renderDynamicPayloadScripts(\n loader: PlasmicComponentLoader,\n prefetchedData: ComponentRenderData | undefined\n) {\n const missingModulesData =\n prefetchedData &&\n prefetchedData.bundle.modules.browser.filter(\n (module): module is CodeModule => module.type === \"code\" && !module.code\n );\n if (!missingModulesData || missingModulesData.length === 0) {\n return null;\n }\n return (\n <>\n <Script\n strategy=\"beforeInteractive\"\n key={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n dangerouslySetInnerHTML={{\n __html: `\n if (!globalThis.__PlasmicBundlePromises) {\n globalThis.__PlasmicBundlePromises = {};\n }\n ${missingModulesData\n .map(\n (\n module\n ) => `if (!globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}]) {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}] = new Promise((resolve) => {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n \"__promise_resolve_\" + module.fileName\n )}] = resolve;\n })\n }\n `\n )\n .join(\"\\n\")}`.trim(),\n }}\n ></Script>\n {missingModulesData.length > 0 && (\n <Script\n strategy=\"beforeInteractive\"\n key={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n defer\n async\n src={loader.getChunksUrl(prefetchedData.bundle, missingModulesData)}\n />\n )}\n </>\n );\n}\n", "import { LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport type { InitOptions } from \"@plasmicapp/loader-react/react-server-conditional\";\nimport type * as Watcher from \"@plasmicapp/watcher\";\nimport path from \"path\";\nimport { serverRequire, serverRequireFs } from \"./server-require\";\nimport type { NextInitOptions } from \"./shared-exports\";\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = await serverRequireFs();\n try {\n await fs.promises.mkdir(path.dirname(this.filePath), { recursive: true });\n const data = (await fs.promises.readFile(this.filePath)).toString();\n return JSON.parse(data);\n } catch {\n return undefined;\n }\n }\n\n async set(data: LoaderBundleOutput) {\n const fs = await serverRequireFs();\n try {\n await fs.promises.writeFile(this.filePath, JSON.stringify(data));\n } catch (err) {\n console.warn(`Error writing to Plasmic cache: ${err}`);\n }\n }\n\n async clear() {\n const fs = await serverRequireFs();\n try {\n fs.promises.unlink(this.filePath);\n } catch (err) {\n // noop\n }\n }\n}\n\nfunction makeCache(opts: InitOptions) {\n const cacheDir = path.resolve(process.cwd(), \".next\", \".plasmic\");\n const cachePath = path.join(\n cacheDir,\n `plasmic-${[...opts.projects.map((p) => `${p.id}@${p.version ?? \"\"}`)]\n .sort()\n .join(\"-\")}${opts.preview ? \"-preview\" : \"\"}-cache.json`\n );\n return new FileCache(cachePath);\n}\n\nexport function initPlasmicLoaderWithCache<\n T extends {\n clearCache(): void;\n }\n>(\n initFn: (opts: InitOptions) => T,\n { nextNavigation, ...opts }: NextInitOptions\n): T {\n const isBrowser = typeof window !== \"undefined\";\n const isProd = process.env.NODE_ENV === \"production\";\n const cache = isBrowser || isProd ? undefined : makeCache(opts);\n const loader = initFn({\n onClientSideFetch: \"warn\",\n ...opts,\n cache,\n platform: \"nextjs\",\n platformOptions: {\n nextjs: {\n appDir: !!nextNavigation,\n },\n },\n // For Nextjs 12, revalidate may in fact re-use an existing instance\n // of PlasmicComponentLoader that's already in memory, so we need to\n // make sure we don't re-use the data cached in memory.\n // We also enforce this for dev mode, so that we don't have to restart\n // the dev server, in case getStaticProps() re-uses the same PlasmicComponentLoader\n alwaysFresh: !isBrowser,\n });\n\n if (!isProd) {\n const stringOpts = JSON.stringify(opts);\n\n if (process.env.PLASMIC_OPTS && process.env.PLASMIC_OPTS !== stringOpts) {\n console.warn(\n `PLASMIC: We detected that you created a new PlasmicLoader with different configurations. You may need to restart your dev server.\\n`\n );\n }\n\n process.env.PLASMIC_OPTS = stringOpts;\n }\n\n if (cache) {\n if (!isProd) {\n if (process.env.PLASMIC_WATCHED !== \"true\") {\n (async () => {\n process.env.PLASMIC_WATCHED = \"true\";\n console.log(`Subscribing to Plasmic changes...`);\n\n // Import using serverRequire, so webpack doesn't bundle us into client bundle\n try {\n const PlasmicRemoteChangeWatcher = (\n await serverRequire<typeof Watcher>(\"@plasmicapp/watcher\")\n ).PlasmicRemoteChangeWatcher;\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n const clearCache = () => {\n cache.clear();\n loader.clearCache();\n };\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n clearCache();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n clearCache();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n })();\n }\n } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type * as FS from \"fs\";\n\nlet secretRequire: ((module: string) => any) | undefined;\ntry {\n // Secretly use require/import without webpack knowing\n // eslint-disable-next-line\n secretRequire = eval(\"require\");\n} catch (err) {\n try {\n // eslint-disable-next-line\n secretRequire = eval(\"(module) => import(module)\");\n } catch (err) {\n secretRequire = undefined;\n }\n}\n\nexport async function serverRequire<T>(module: string): Promise<T> {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module) as Promise<T>;\n}\n\nexport async function serverRequireFs() {\n return serverRequire<typeof FS>(\"fs\");\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n ComponentLookupSpec,\n FetchComponentDataOpts as InternalFetchComponentDataOpts,\n InternalPlasmicComponentLoader,\n PlasmicComponentLoader,\n PlasmicRootProvider as CommonPlasmicRootProvider,\n} from \"@plasmicapp/loader-react\";\nimport { IncomingMessage, ServerResponse } from \"http\";\n// NextHead and NextLink must be default imported (`import Pkg`) instead of a namespace import (`import * as Pkg`).\n// Otherwise, there's a Next.js 12 bug when referencing these dependencies due to default import interop.\n// The transpiled CommonJS code would create a `default` field on the package,\n// causing React to think it's an invalid React object:\n// ```\n// const NextHead = __defaultInterop(require('next/head.js'))\n// assert(typeof NextHead === 'object')\n// assert(typeof NextHead.default === 'function')\n// ```\nimport type { CodeModule } from \"@plasmicapp/loader-core\";\nimport NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport Script from \"next/script\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\nimport type { ComponentRenderData, NextInitOptions } from \"./shared-exports\";\n\nexport {\n DataCtxReader,\n DataProvider,\n extractPlasmicQueryData,\n GlobalActionsContext,\n GlobalActionsProvider,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n plasmicPrepass,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n usePlasmicQueryData,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport type {\n CodeComponentMeta,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport * from \"./shared-exports\";\n\ntype ServerRequest = IncomingMessage & {\n cookies: {\n [key: string]: string;\n };\n};\n\nconst reactMajorVersion = +React.version.split(\".\")[0];\n\nfunction filterCodeFromRenderData(data: ComponentRenderData) {\n if (reactMajorVersion >= 18 && !!data.bundle.bundleKey) {\n // Keep the entrypoints\n const entrypoints = new Set([\n ...data.entryCompMetas.map((compMeta) => compMeta.entry),\n \"root-provider.js\",\n ...data.bundle.projects\n .map((x) => x.globalContextsProviderFileName)\n .filter((x) => !!x),\n ...data.bundle.components\n .filter((c) => c.isGlobalContextProvider)\n .map((c) => c.entry),\n ...data.bundle.globalGroups.map((g) => g.contextFile),\n ]);\n\n data.bundle.modules.browser = data.bundle.modules.browser.map((module) => {\n if (module.type !== \"code\" || entrypoints.has(module.fileName)) {\n return module;\n }\n return { ...module, code: \"\" };\n });\n }\n}\n\nexport interface FetchComponentDataOpts extends InternalFetchComponentDataOpts {\n /**\n * Defer loading code chunks to script tags, reducing initial payload size.\n */\n deferChunks?: boolean;\n}\n\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n }\n\n async getActiveVariation(opts: {\n req?: ServerRequest;\n res?: ServerResponse;\n known?: Record<string, string>;\n traits: Record<string, string | number | boolean>;\n }) {\n const extractBuiltinTraits = () => {\n const url = new URL(\n opts.req?.url ?? \"/\",\n `https://${opts.req?.headers.host ?? \"server.side\"}`\n );\n return {\n pageUrl: url.href,\n };\n };\n\n return this._getActiveVariation({\n traits: {\n ...extractBuiltinTraits(),\n ...opts.traits,\n },\n getKnownValue: (key: string) => {\n if (opts.known) {\n return opts.known[key];\n } else {\n return opts.req?.cookies[`plasmic:${key}`] ?? undefined;\n }\n },\n updateKnownValue: (key: string, value: string) => {\n if (opts.res) {\n const cookie = `plasmic:${key}=${value}`;\n const resCookie = opts.res?.getHeader(\"Set-Cookie\") ?? [];\n let newCookies: string[] = [];\n if (Array.isArray(resCookie)) {\n newCookies = [...resCookie, `plasmic:${key}=${value}`];\n } else {\n newCookies = [`${resCookie}`, cookie];\n }\n\n opts.res?.setHeader(\"Set-Cookie\", newCookies);\n }\n },\n });\n }\n\n maybeFetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData | null>;\n maybeFetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData | null>;\n async maybeFetchComponentData(\n ...args: any[]\n ): Promise<ComponentRenderData | null> {\n const data = await super.maybeFetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (\n data &&\n (opts?.deferChunks ||\n (opts?.deferChunks === undefined && data.bundle.deferChunksByDefault))\n ) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n\n fetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData>;\n fetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData>;\n async fetchComponentData(...args: any[]): Promise<ComponentRenderData> {\n const data = await super.fetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (\n opts?.deferChunks ||\n (opts?.deferChunks === undefined && data.bundle.deferChunksByDefault)\n ) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n}\n\nfunction parseFetchComponentDataArgs(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n): { specs: ComponentLookupSpec[]; opts?: FetchComponentDataOpts };\nfunction parseFetchComponentDataArgs(...specs: ComponentLookupSpec[]): {\n specs: ComponentLookupSpec[];\n opts?: FetchComponentDataOpts;\n};\nfunction parseFetchComponentDataArgs(...args: any[]) {\n let specs: ComponentLookupSpec[];\n let opts: FetchComponentDataOpts | undefined;\n if (Array.isArray(args[0])) {\n specs = args[0];\n opts = args[1];\n } else {\n specs = args;\n opts = undefined;\n }\n return { specs, opts };\n}\n\nexport function initPlasmicLoader(opts: NextInitOptions) {\n const loader = initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n (opts) =>\n new NextJsPlasmicComponentLoader(\n new InternalPlasmicComponentLoader(opts)\n ),\n opts\n );\n loader.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\n if (opts.nextNavigation) {\n loader.registerModules({\n \"next/navigation\": opts.nextNavigation,\n });\n }\n return loader;\n}\n\nconst PlasmicNextLink = React.forwardRef(function PlasmicNextLink(\n props: React.ComponentProps<typeof NextLink>,\n ref: React.Ref<HTMLAnchorElement>\n) {\n // Basically renders NextLink, except when href is undefined,\n // which freaks out NextLink :-/\n if (props.href) {\n const {\n href,\n replace,\n scroll,\n shallow,\n passHref,\n prefetch,\n locale,\n ...rest\n } = props;\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = typeof href === \"string\" && href.startsWith(\"#\");\n // We use legacyBehavior, because we don't know which\n // version of next the user has installed\n return (\n <NextLink\n href={href}\n replace={replace}\n scroll={scroll != null ? scroll : isFragment ? false : undefined}\n shallow={shallow}\n passHref={passHref}\n prefetch={prefetch}\n locale={locale}\n {...({ legacyBehavior: true } as any)}\n >\n <a {...rest} ref={ref} />\n </NextLink>\n );\n } else {\n return <a {...props} href={undefined} ref={ref} />;\n }\n});\n\nexport function PlasmicRootProvider(\n // We omit Head but still allow override for Link\n props: Omit<\n React.ComponentProps<typeof CommonPlasmicRootProvider>,\n \"Head\"\n > & { skipChunks?: boolean }\n) {\n return (\n <>\n {!props.skipChunks &&\n renderDynamicPayloadScripts(props.loader, props.prefetchedData)}\n <CommonPlasmicRootProvider\n Head={NextHead}\n Link={PlasmicNextLink}\n {...props}\n />\n </>\n );\n}\n\nfunction renderDynamicPayloadScripts(\n loader: PlasmicComponentLoader,\n prefetchedData: ComponentRenderData | undefined\n) {\n const missingModulesData =\n prefetchedData &&\n prefetchedData.bundle.modules.browser.filter(\n (module): module is CodeModule => module.type === \"code\" && !module.code\n );\n if (!missingModulesData || missingModulesData.length === 0) {\n return null;\n }\n return (\n <>\n <Script\n strategy=\"beforeInteractive\"\n key={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n dangerouslySetInnerHTML={{\n __html: `\n if (!globalThis.__PlasmicBundlePromises) {\n globalThis.__PlasmicBundlePromises = {};\n }\n ${missingModulesData\n .map(\n (\n module\n ) => `if (!globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}]) {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}] = new Promise((resolve) => {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n \"__promise_resolve_\" + module.fileName\n )}] = resolve;\n })\n }\n `\n )\n .join(\"\\n\")}`.trim(),\n }}\n ></Script>\n {missingModulesData.length > 0 && (\n <Script\n strategy=\"beforeInteractive\"\n key={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n defer\n async\n src={loader.getChunksUrl(prefetchedData.bundle, missingModulesData)}\n />\n )}\n </>\n );\n}\n", "import { LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport type { InitOptions } from \"@plasmicapp/loader-react/react-server-conditional\";\nimport type * as Watcher from \"@plasmicapp/watcher\";\nimport path from \"path\";\nimport { serverRequire, serverRequireFs } from \"./server-require\";\nimport type { NextInitOptions } from \"./shared-exports\";\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = await serverRequireFs();\n try {\n await fs.promises.mkdir(path.dirname(this.filePath), { recursive: true });\n const data = (await fs.promises.readFile(this.filePath)).toString();\n return JSON.parse(data);\n } catch {\n return undefined;\n }\n }\n\n async set(data: LoaderBundleOutput) {\n const fs = await serverRequireFs();\n try {\n await fs.promises.writeFile(this.filePath, JSON.stringify(data));\n } catch (err) {\n console.warn(`Error writing to Plasmic cache: ${err}`);\n }\n }\n\n async clear() {\n const fs = await serverRequireFs();\n try {\n fs.promises.unlink(this.filePath);\n } catch (err) {\n // noop\n }\n }\n}\n\nfunction makeCache(opts: InitOptions) {\n const cacheDir = path.resolve(process.cwd(), \".next\", \".plasmic\");\n const cachePath = path.join(\n cacheDir,\n `plasmic-${[...opts.projects.map((p) => `${p.id}@${p.version ?? \"\"}`)]\n .sort()\n .join(\"-\")}${opts.preview ? \"-preview\" : \"\"}-cache.json`\n );\n return new FileCache(cachePath);\n}\n\nexport function initPlasmicLoaderWithCache<\n T extends {\n clearCache(): void;\n }\n>(\n initFn: (opts: InitOptions) => T,\n { nextNavigation, ...opts }: NextInitOptions\n): T {\n const isBrowser = typeof window !== \"undefined\";\n const isProd = process.env.NODE_ENV === \"production\";\n const cache = isBrowser || isProd ? undefined : makeCache(opts);\n const loader = initFn({\n onClientSideFetch: \"warn\",\n ...opts,\n cache,\n platform: \"nextjs\",\n platformOptions: {\n nextjs: {\n appDir: !!nextNavigation,\n },\n },\n // For Nextjs 12, revalidate may in fact re-use an existing instance\n // of PlasmicComponentLoader that's already in memory, so we need to\n // make sure we don't re-use the data cached in memory.\n // We also enforce this for dev mode, so that we don't have to restart\n // the dev server, in case getStaticProps() re-uses the same PlasmicComponentLoader\n alwaysFresh: !isBrowser,\n });\n\n if (!isProd) {\n const stringOpts = JSON.stringify(opts);\n\n if (process.env.PLASMIC_OPTS && process.env.PLASMIC_OPTS !== stringOpts) {\n console.warn(\n `PLASMIC: We detected that you created a new PlasmicLoader with different configurations. You may need to restart your dev server.\\n`\n );\n }\n\n process.env.PLASMIC_OPTS = stringOpts;\n }\n\n if (cache) {\n if (!isProd) {\n if (process.env.PLASMIC_WATCHED !== \"true\") {\n (async () => {\n process.env.PLASMIC_WATCHED = \"true\";\n console.log(`Subscribing to Plasmic changes...`);\n\n // Import using serverRequire, so webpack doesn't bundle us into client bundle\n try {\n const PlasmicRemoteChangeWatcher = (\n await serverRequire<typeof Watcher>(\"@plasmicapp/watcher\")\n ).PlasmicRemoteChangeWatcher;\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n const clearCache = () => {\n cache.clear();\n loader.clearCache();\n };\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n clearCache();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n clearCache();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n })();\n }\n } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type * as FS from \"fs\";\n\nlet secretRequire: ((module: string) => any) | undefined;\ntry {\n // Secretly use require/import without webpack knowing\n // eslint-disable-next-line\n secretRequire = eval(\"require\");\n} catch (err) {\n try {\n // eslint-disable-next-line\n secretRequire = eval(\"(module) => import(module)\");\n } catch (err) {\n secretRequire = undefined;\n }\n}\n\nexport async function serverRequire<T>(module: string): Promise<T> {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module) as Promise<T>;\n}\n\nexport async function serverRequireFs() {\n return serverRequire<typeof FS>(\"fs\");\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["err", "err", "opts", "PlasmicNextLink"]
7
7
  }
package/dist/index.js CHANGED
@@ -84,6 +84,8 @@ var src_exports = {};
84
84
  __export(src_exports, {
85
85
  DataCtxReader: () => import_loader_react2.DataCtxReader,
86
86
  DataProvider: () => import_loader_react2.DataProvider,
87
+ GlobalActionsContext: () => import_loader_react2.GlobalActionsContext,
88
+ GlobalActionsProvider: () => import_loader_react2.GlobalActionsProvider,
87
89
  NextJsPlasmicComponentLoader: () => NextJsPlasmicComponentLoader,
88
90
  PageParamsProvider: () => import_loader_react2.PageParamsProvider,
89
91
  PlasmicCanvasContext: () => import_loader_react2.PlasmicCanvasContext,
@@ -327,7 +329,7 @@ var NextJsPlasmicComponentLoader = class extends import_loader_react.PlasmicComp
327
329
  return __async(this, null, function* () {
328
330
  const data = yield __superGet(NextJsPlasmicComponentLoader.prototype, this, "maybeFetchComponentData").call(this, ...args);
329
331
  const { opts } = parseFetchComponentDataArgs(...args);
330
- if (data && (opts == null ? void 0 : opts.deferChunks)) {
332
+ if (data && ((opts == null ? void 0 : opts.deferChunks) || (opts == null ? void 0 : opts.deferChunks) === void 0 && data.bundle.deferChunksByDefault)) {
331
333
  filterCodeFromRenderData(data);
332
334
  }
333
335
  return data;
@@ -337,7 +339,7 @@ var NextJsPlasmicComponentLoader = class extends import_loader_react.PlasmicComp
337
339
  return __async(this, null, function* () {
338
340
  const data = yield __superGet(NextJsPlasmicComponentLoader.prototype, this, "fetchComponentData").call(this, ...args);
339
341
  const { opts } = parseFetchComponentDataArgs(...args);
340
- if (opts == null ? void 0 : opts.deferChunks) {
342
+ if ((opts == null ? void 0 : opts.deferChunks) || (opts == null ? void 0 : opts.deferChunks) === void 0 && data.bundle.deferChunksByDefault) {
341
343
  filterCodeFromRenderData(data);
342
344
  }
343
345
  return data;
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.tsx", "../src/cache.ts", "../src/server-require.ts"],
4
- "sourcesContent": ["import {\n ComponentLookupSpec,\n FetchComponentDataOpts as InternalFetchComponentDataOpts,\n InternalPlasmicComponentLoader,\n PlasmicComponentLoader,\n PlasmicRootProvider as CommonPlasmicRootProvider,\n} from \"@plasmicapp/loader-react\";\nimport { IncomingMessage, ServerResponse } from \"http\";\n// NextHead and NextLink must be default imported (`import Pkg`) instead of a namespace import (`import * as Pkg`).\n// Otherwise, there's a Next.js 12 bug when referencing these dependencies due to default import interop.\n// The transpiled CommonJS code would create a `default` field on the package,\n// causing React to think it's an invalid React object:\n// ```\n// const NextHead = __defaultInterop(require('next/head.js'))\n// assert(typeof NextHead === 'object')\n// assert(typeof NextHead.default === 'function')\n// ```\nimport type { CodeModule } from \"@plasmicapp/loader-core\";\nimport NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport Script from \"next/script\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\nimport type { ComponentRenderData, NextInitOptions } from \"./shared-exports\";\n\nexport {\n DataCtxReader,\n DataProvider,\n extractPlasmicQueryData,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n plasmicPrepass,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n usePlasmicQueryData,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport type {\n CodeComponentMeta,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport * from \"./shared-exports\";\n\ntype ServerRequest = IncomingMessage & {\n cookies: {\n [key: string]: string;\n };\n};\n\nconst reactMajorVersion = +React.version.split(\".\")[0];\n\nfunction filterCodeFromRenderData(data: ComponentRenderData) {\n if (reactMajorVersion >= 18 && !!data.bundle.bundleKey) {\n // Keep the entrypoints\n const entrypoints = new Set([\n ...data.entryCompMetas.map((compMeta) => compMeta.entry),\n \"root-provider.js\",\n ...data.bundle.projects\n .map((x) => x.globalContextsProviderFileName)\n .filter((x) => !!x),\n ...data.bundle.components\n .filter((c) => c.isGlobalContextProvider)\n .map((c) => c.entry),\n ...data.bundle.globalGroups.map((g) => g.contextFile),\n ]);\n\n data.bundle.modules.browser = data.bundle.modules.browser.map((module) => {\n if (module.type !== \"code\" || entrypoints.has(module.fileName)) {\n return module;\n }\n return { ...module, code: \"\" };\n });\n }\n}\n\nexport interface FetchComponentDataOpts extends InternalFetchComponentDataOpts {\n /**\n * Defer loading code chunks to script tags, reducing initial payload size.\n */\n deferChunks?: boolean;\n}\n\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n }\n\n async getActiveVariation(opts: {\n req?: ServerRequest;\n res?: ServerResponse;\n known?: Record<string, string>;\n traits: Record<string, string | number | boolean>;\n }) {\n const extractBuiltinTraits = () => {\n const url = new URL(\n opts.req?.url ?? \"/\",\n `https://${opts.req?.headers.host ?? \"server.side\"}`\n );\n return {\n pageUrl: url.href,\n };\n };\n\n return this._getActiveVariation({\n traits: {\n ...extractBuiltinTraits(),\n ...opts.traits,\n },\n getKnownValue: (key: string) => {\n if (opts.known) {\n return opts.known[key];\n } else {\n return opts.req?.cookies[`plasmic:${key}`] ?? undefined;\n }\n },\n updateKnownValue: (key: string, value: string) => {\n if (opts.res) {\n const cookie = `plasmic:${key}=${value}`;\n const resCookie = opts.res?.getHeader(\"Set-Cookie\") ?? [];\n let newCookies: string[] = [];\n if (Array.isArray(resCookie)) {\n newCookies = [...resCookie, `plasmic:${key}=${value}`];\n } else {\n newCookies = [`${resCookie}`, cookie];\n }\n\n opts.res?.setHeader(\"Set-Cookie\", newCookies);\n }\n },\n });\n }\n\n maybeFetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData | null>;\n maybeFetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData | null>;\n async maybeFetchComponentData(\n ...args: any[]\n ): Promise<ComponentRenderData | null> {\n const data = await super.maybeFetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (data && opts?.deferChunks) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n\n fetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData>;\n fetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData>;\n async fetchComponentData(...args: any[]): Promise<ComponentRenderData> {\n const data = await super.fetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (opts?.deferChunks) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n}\n\nfunction parseFetchComponentDataArgs(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n): { specs: ComponentLookupSpec[]; opts?: FetchComponentDataOpts };\nfunction parseFetchComponentDataArgs(...specs: ComponentLookupSpec[]): {\n specs: ComponentLookupSpec[];\n opts?: FetchComponentDataOpts;\n};\nfunction parseFetchComponentDataArgs(...args: any[]) {\n let specs: ComponentLookupSpec[];\n let opts: FetchComponentDataOpts | undefined;\n if (Array.isArray(args[0])) {\n specs = args[0];\n opts = args[1];\n } else {\n specs = args;\n opts = undefined;\n }\n return { specs, opts };\n}\n\nexport function initPlasmicLoader(opts: NextInitOptions) {\n const loader = initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n (opts) =>\n new NextJsPlasmicComponentLoader(\n new InternalPlasmicComponentLoader(opts)\n ),\n opts\n );\n loader.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\n if (opts.nextNavigation) {\n loader.registerModules({\n \"next/navigation\": opts.nextNavigation,\n });\n }\n return loader;\n}\n\nconst PlasmicNextLink = React.forwardRef(function PlasmicNextLink(\n props: React.ComponentProps<typeof NextLink>,\n ref: React.Ref<HTMLAnchorElement>\n) {\n // Basically renders NextLink, except when href is undefined,\n // which freaks out NextLink :-/\n if (props.href) {\n const {\n href,\n replace,\n scroll,\n shallow,\n passHref,\n prefetch,\n locale,\n ...rest\n } = props;\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = typeof href === \"string\" && href.startsWith(\"#\");\n // We use legacyBehavior, because we don't know which\n // version of next the user has installed\n return (\n <NextLink\n href={href}\n replace={replace}\n scroll={scroll != null ? scroll : isFragment ? false : undefined}\n shallow={shallow}\n passHref={passHref}\n prefetch={prefetch}\n locale={locale}\n {...({ legacyBehavior: true } as any)}\n >\n <a {...rest} ref={ref} />\n </NextLink>\n );\n } else {\n return <a {...props} href={undefined} ref={ref} />;\n }\n});\n\nexport function PlasmicRootProvider(\n // We omit Head but still allow override for Link\n props: Omit<\n React.ComponentProps<typeof CommonPlasmicRootProvider>,\n \"Head\"\n > & { skipChunks?: boolean }\n) {\n return (\n <>\n {!props.skipChunks &&\n renderDynamicPayloadScripts(props.loader, props.prefetchedData)}\n <CommonPlasmicRootProvider\n Head={NextHead}\n Link={PlasmicNextLink}\n {...props}\n />\n </>\n );\n}\n\nfunction renderDynamicPayloadScripts(\n loader: PlasmicComponentLoader,\n prefetchedData: ComponentRenderData | undefined\n) {\n const missingModulesData =\n prefetchedData &&\n prefetchedData.bundle.modules.browser.filter(\n (module): module is CodeModule => module.type === \"code\" && !module.code\n );\n if (!missingModulesData || missingModulesData.length === 0) {\n return null;\n }\n return (\n <>\n <Script\n strategy=\"beforeInteractive\"\n key={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n dangerouslySetInnerHTML={{\n __html: `\n if (!globalThis.__PlasmicBundlePromises) {\n globalThis.__PlasmicBundlePromises = {};\n }\n ${missingModulesData\n .map(\n (\n module\n ) => `if (!globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}]) {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}] = new Promise((resolve) => {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n \"__promise_resolve_\" + module.fileName\n )}] = resolve;\n })\n }\n `\n )\n .join(\"\\n\")}`.trim(),\n }}\n ></Script>\n {missingModulesData.length > 0 && (\n <Script\n strategy=\"beforeInteractive\"\n key={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n defer\n async\n src={loader.getChunksUrl(prefetchedData.bundle, missingModulesData)}\n />\n )}\n </>\n );\n}\n", "import { LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport type { InitOptions } from \"@plasmicapp/loader-react/react-server-conditional\";\nimport type * as Watcher from \"@plasmicapp/watcher\";\nimport path from \"path\";\nimport { serverRequire, serverRequireFs } from \"./server-require\";\nimport type { NextInitOptions } from \"./shared-exports\";\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = await serverRequireFs();\n try {\n await fs.promises.mkdir(path.dirname(this.filePath), { recursive: true });\n const data = (await fs.promises.readFile(this.filePath)).toString();\n return JSON.parse(data);\n } catch {\n return undefined;\n }\n }\n\n async set(data: LoaderBundleOutput) {\n const fs = await serverRequireFs();\n try {\n await fs.promises.writeFile(this.filePath, JSON.stringify(data));\n } catch (err) {\n console.warn(`Error writing to Plasmic cache: ${err}`);\n }\n }\n\n async clear() {\n const fs = await serverRequireFs();\n try {\n fs.promises.unlink(this.filePath);\n } catch (err) {\n // noop\n }\n }\n}\n\nfunction makeCache(opts: InitOptions) {\n const cacheDir = path.resolve(process.cwd(), \".next\", \".plasmic\");\n const cachePath = path.join(\n cacheDir,\n `plasmic-${[...opts.projects.map((p) => `${p.id}@${p.version ?? \"\"}`)]\n .sort()\n .join(\"-\")}${opts.preview ? \"-preview\" : \"\"}-cache.json`\n );\n return new FileCache(cachePath);\n}\n\nexport function initPlasmicLoaderWithCache<\n T extends {\n clearCache(): void;\n }\n>(\n initFn: (opts: InitOptions) => T,\n { nextNavigation, ...opts }: NextInitOptions\n): T {\n const isBrowser = typeof window !== \"undefined\";\n const isProd = process.env.NODE_ENV === \"production\";\n const cache = isBrowser || isProd ? undefined : makeCache(opts);\n const loader = initFn({\n onClientSideFetch: \"warn\",\n ...opts,\n cache,\n platform: \"nextjs\",\n platformOptions: {\n nextjs: {\n appDir: !!nextNavigation,\n },\n },\n // For Nextjs 12, revalidate may in fact re-use an existing instance\n // of PlasmicComponentLoader that's already in memory, so we need to\n // make sure we don't re-use the data cached in memory.\n // We also enforce this for dev mode, so that we don't have to restart\n // the dev server, in case getStaticProps() re-uses the same PlasmicComponentLoader\n alwaysFresh: !isBrowser,\n });\n\n if (!isProd) {\n const stringOpts = JSON.stringify(opts);\n\n if (process.env.PLASMIC_OPTS && process.env.PLASMIC_OPTS !== stringOpts) {\n console.warn(\n `PLASMIC: We detected that you created a new PlasmicLoader with different configurations. You may need to restart your dev server.\\n`\n );\n }\n\n process.env.PLASMIC_OPTS = stringOpts;\n }\n\n if (cache) {\n if (!isProd) {\n if (process.env.PLASMIC_WATCHED !== \"true\") {\n (async () => {\n process.env.PLASMIC_WATCHED = \"true\";\n console.log(`Subscribing to Plasmic changes...`);\n\n // Import using serverRequire, so webpack doesn't bundle us into client bundle\n try {\n const PlasmicRemoteChangeWatcher = (\n await serverRequire<typeof Watcher>(\"@plasmicapp/watcher\")\n ).PlasmicRemoteChangeWatcher;\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n const clearCache = () => {\n cache.clear();\n loader.clearCache();\n };\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n clearCache();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n clearCache();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n })();\n }\n } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type * as FS from \"fs\";\n\nlet secretRequire: ((module: string) => any) | undefined;\ntry {\n // Secretly use require/import without webpack knowing\n // eslint-disable-next-line\n secretRequire = eval(\"require\");\n} catch (err) {\n try {\n // eslint-disable-next-line\n secretRequire = eval(\"(module) => import(module)\");\n } catch (err) {\n secretRequire = undefined;\n }\n}\n\nexport async function serverRequire<T>(module: string): Promise<T> {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module) as Promise<T>;\n}\n\nexport async function serverRequireFs() {\n return serverRequire<typeof FS>(\"fs\");\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMO;AAYP,kBAAqB;AACrB,kBAAqB;AACrB,iBAA4B;AAC5B,oBAAmB;AACnB,YAAuB;;;ACnBvB,kBAAiB;;;ACDjB,IAAI;AACJ,IAAI;AAGF,kBAAgB,KAAK,SAAS;AAChC,SAAS,KAAP;AACA,MAAI;AAEF,oBAAgB,KAAK,4BAA4B;AAAA,EACnD,SAASA,MAAP;AACA,oBAAgB;AAAA,EAClB;AACF;AAEA,SAAsB,cAAiBC,SAA4B;AAAA;AACjE,QAAI,CAAC,eAAe;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,WAAO,cAAcA,OAAM;AAAA,EAC7B;AAAA;AAEA,SAAsB,kBAAkB;AAAA;AACtC,WAAO,cAAyB,IAAI;AAAA,EACtC;AAAA;;;ADpBA,IAAM,YAAN,MAAgB;AAAA,EACd,YAAoB,UAAkB;AAAlB;AAAA,EAAmB;AAAA,EAEjC,MAAM;AAAA;AACV,YAAM,KAAK,MAAM,gBAAgB;AACjC,UAAI;AACF,cAAM,GAAG,SAAS,MAAM,YAAAC,QAAK,QAAQ,KAAK,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;AACxE,cAAM,QAAQ,MAAM,GAAG,SAAS,SAAS,KAAK,QAAQ,GAAG,SAAS;AAClE,eAAO,KAAK,MAAM,IAAI;AAAA,MACxB,SAAQ,GAAN;AACA,eAAO;AAAA,MACT;AAAA,IACF;AAAA;AAAA,EAEM,IAAI,MAA0B;AAAA;AAClC,YAAM,KAAK,MAAM,gBAAgB;AACjC,UAAI;AACF,cAAM,GAAG,SAAS,UAAU,KAAK,UAAU,KAAK,UAAU,IAAI,CAAC;AAAA,MACjE,SAASC,MAAP;AACA,gBAAQ,KAAK,mCAAmCA,MAAK;AAAA,MACvD;AAAA,IACF;AAAA;AAAA,EAEM,QAAQ;AAAA;AACZ,YAAM,KAAK,MAAM,gBAAgB;AACjC,UAAI;AACF,WAAG,SAAS,OAAO,KAAK,QAAQ;AAAA,MAClC,SAASA,MAAP;AAAA,MAEF;AAAA,IACF;AAAA;AACF;AAEA,SAAS,UAAU,MAAmB;AACpC,QAAM,WAAW,YAAAD,QAAK,QAAQ,QAAQ,IAAI,GAAG,SAAS,UAAU;AAChE,QAAM,YAAY,YAAAA,QAAK;AAAA,IACrB;AAAA,IACA,WAAW,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,MAAG;AA5CzC;AA4C4C,gBAAG,EAAE,OAAM,OAAE,YAAF,YAAa;AAAA,KAAI,CAAC,EAClE,KAAK,EACL,KAAK,GAAG,IAAI,KAAK,UAAU,aAAa;AAAA,EAC7C;AACA,SAAO,IAAI,UAAU,SAAS;AAChC;AAEO,SAAS,2BAKd,QACA,IACG;AADH,eAAE,iBAzDJ,IAyDE,IAAqB,iBAArB,IAAqB,CAAnB;AAEF,QAAM,YAAY,OAAO,WAAW;AACpC,QAAM,SAAS,QAAQ,IAAI,aAAa;AACxC,QAAM,QAAQ,aAAa,SAAS,SAAY,UAAU,IAAI;AAC9D,QAAM,SAAS,OAAO;AAAA,IACpB,mBAAmB;AAAA,KAChB,OAFiB;AAAA,IAGpB;AAAA,IACA,UAAU;AAAA,IACV,iBAAiB;AAAA,MACf,QAAQ;AAAA,QACN,QAAQ,CAAC,CAAC;AAAA,MACZ;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAa,CAAC;AAAA,EAChB,EAAC;AAED,MAAI,CAAC,QAAQ;AACX,UAAM,aAAa,KAAK,UAAU,IAAI;AAEtC,QAAI,QAAQ,IAAI,gBAAgB,QAAQ,IAAI,iBAAiB,YAAY;AACvE,cAAQ;AAAA,QACN;AAAA;AAAA,MACF;AAAA,IACF;AAEA,YAAQ,IAAI,eAAe;AAAA,EAC7B;AAEA,MAAI,OAAO;AACT,QAAI,CAAC,QAAQ;AACX,UAAI,QAAQ,IAAI,oBAAoB,QAAQ;AAC1C,SAAC,MAAY;AACX,kBAAQ,IAAI,kBAAkB;AAC9B,kBAAQ,IAAI,mCAAmC;AAG/C,cAAI;AACF,kBAAM,8BACJ,MAAM,cAA8B,qBAAqB,GACzD;AACF,kBAAM,UAAU,IAAI,2BAA2B;AAAA,cAC7C,UAAU,KAAK;AAAA,cACf,MAAM,KAAK;AAAA,YACb,CAAC;AAED,kBAAM,aAAa,MAAM;AACvB,oBAAM,MAAM;AACZ,qBAAO,WAAW;AAAA,YACpB;AAEA,oBAAQ,UAAU;AAAA,cAChB,UAAU,MAAM;AACd,oBAAI,KAAK,SAAS;AAChB,6BAAW;AAAA,gBACb;AAAA,cACF;AAAA,cACA,WAAW,MAAM;AACf,oBAAI,CAAC,KAAK,SAAS;AACjB,6BAAW;AAAA,gBACb;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH,SAAS,GAAP;AACA,oBAAQ,KAAK,yCAAyC,CAAC;AAAA,UACzD;AAAA,QACF,IAAG;AAAA,MACL;AAAA,IACF,OAAO;AACL,YAAM,MAAM;AACZ,aAAO,WAAW;AAAA,IACpB;AAAA,EACF;AACA,SAAO;AACT;;;AD/GA,IAAAE,uBAgBO;AAeP,IAAM,oBAAoB,CAAO,cAAQ,MAAM,GAAG,EAAE,CAAC;AAErD,SAAS,yBAAyB,MAA2B;AAC3D,MAAI,qBAAqB,MAAM,CAAC,CAAC,KAAK,OAAO,WAAW;AAEtD,UAAM,cAAc,oBAAI,IAAI;AAAA,MAC1B,GAAG,KAAK,eAAe,IAAI,CAAC,aAAa,SAAS,KAAK;AAAA,MACvD;AAAA,MACA,GAAG,KAAK,OAAO,SACZ,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,MACpB,GAAG,KAAK,OAAO,WACZ,OAAO,CAAC,MAAM,EAAE,uBAAuB,EACvC,IAAI,CAAC,MAAM,EAAE,KAAK;AAAA,MACrB,GAAG,KAAK,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,WAAW;AAAA,IACtD,CAAC;AAED,SAAK,OAAO,QAAQ,UAAU,KAAK,OAAO,QAAQ,QAAQ,IAAI,CAACC,YAAW;AACxE,UAAIA,QAAO,SAAS,UAAU,YAAY,IAAIA,QAAO,QAAQ,GAAG;AAC9D,eAAOA;AAAA,MACT;AACA,aAAO,iCAAKA,UAAL,EAAa,MAAM,GAAG;AAAA,IAC/B,CAAC;AAAA,EACH;AACF;AASO,IAAM,+BAAN,cAA2C,2CAAuB;AAAA,EACvE,YAAY,UAA0C;AACpD,UAAM,QAAQ;AAAA,EAChB;AAAA,EAEM,mBAAmB,MAKtB;AAAA;AACD,YAAM,uBAAuB,MAAM;AArGvC;AAsGM,cAAM,MAAM,IAAI;AAAA,WACd,gBAAK,QAAL,mBAAU,QAAV,YAAiB;AAAA,UACjB,YAAW,gBAAK,QAAL,mBAAU,QAAQ,SAAlB,YAA0B;AAAA,QACvC;AACA,eAAO;AAAA,UACL,SAAS,IAAI;AAAA,QACf;AAAA,MACF;AAEA,aAAO,KAAK,oBAAoB;AAAA,QAC9B,QAAQ,kCACH,qBAAqB,IACrB,KAAK;AAAA,QAEV,eAAe,CAAC,QAAgB;AApHtC;AAqHQ,cAAI,KAAK,OAAO;AACd,mBAAO,KAAK,MAAM,GAAG;AAAA,UACvB,OAAO;AACL,oBAAO,gBAAK,QAAL,mBAAU,QAAQ,WAAW,WAA7B,YAAuC;AAAA,UAChD;AAAA,QACF;AAAA,QACA,kBAAkB,CAAC,KAAa,UAAkB;AA3HxD;AA4HQ,cAAI,KAAK,KAAK;AACZ,kBAAM,SAAS,WAAW,OAAO;AACjC,kBAAM,aAAY,gBAAK,QAAL,mBAAU,UAAU,kBAApB,YAAqC,CAAC;AACxD,gBAAI,aAAuB,CAAC;AAC5B,gBAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,2BAAa,CAAC,GAAG,WAAW,WAAW,OAAO,OAAO;AAAA,YACvD,OAAO;AACL,2BAAa,CAAC,GAAG,aAAa,MAAM;AAAA,YACtC;AAEA,uBAAK,QAAL,mBAAU,UAAU,cAAc;AAAA,UACpC;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA,EASM,2BACD,MACkC;AAAA;AACrC,YAAM,OAAO,MAAM,yDAAM,gCAAN,MAA8B,GAAG,IAAI;AACxD,YAAM,EAAE,KAAK,IAAI,4BAA4B,GAAG,IAAI;AACpD,UAAI,SAAQ,6BAAM,cAAa;AAC7B,iCAAyB,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EASM,sBAAsB,MAA2C;AAAA;AACrE,YAAM,OAAO,MAAM,yDAAM,2BAAN,MAAyB,GAAG,IAAI;AACnD,YAAM,EAAE,KAAK,IAAI,4BAA4B,GAAG,IAAI;AACpD,UAAI,6BAAM,aAAa;AACrB,iCAAyB,IAAI;AAAA,MAC/B;AACA,aAAO;AAAA,IACT;AAAA;AACF;AAUA,SAAS,+BAA+B,MAAa;AACnD,MAAI;AACJ,MAAI;AACJ,MAAI,MAAM,QAAQ,KAAK,CAAC,CAAC,GAAG;AAC1B,YAAQ,KAAK,CAAC;AACd,WAAO,KAAK,CAAC;AAAA,EACf,OAAO;AACL,YAAQ;AACR,WAAO;AAAA,EACT;AACA,SAAO,EAAE,OAAO,KAAK;AACvB;AAEO,SAAS,kBAAkB,MAAuB;AACvD,QAAM,SAAS;AAAA,IACb,CAACC,UACC,IAAI;AAAA,MACF,IAAI,mDAA+BA,KAAI;AAAA,IACzC;AAAA,IACF;AAAA,EACF;AACA,SAAO,gBAAgB;AAAA,IACrB,aAAa,YAAAC;AAAA,IACb,aAAa,YAAAC;AAAA,IACb,eAAe;AAAA,EACjB,CAAC;AACD,MAAI,KAAK,gBAAgB;AACvB,WAAO,gBAAgB;AAAA,MACrB,mBAAmB,KAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEA,IAAM,kBAAwB,iBAAW,SAASC,iBAChD,OACA,KACA;AAGA,MAAI,MAAM,MAAM;AACd,UASI,YARF;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAvON,IAyOQ,IADC,iBACD,IADC;AAAA,MAPH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,aAAa,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAGlE,WACE;AAAA,MAAC,YAAAD;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,QAAQ,UAAU,OAAO,SAAS,aAAa,QAAQ;AAAA,QACvD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,SACK,EAAE,gBAAgB,KAAK;AAAA,MAE5B,oCAAC,sCAAM,OAAN,EAAY,MAAU;AAAA,IACzB;AAAA,EAEJ,OAAO;AACL,WAAO,oCAAC,sCAAM,QAAN,EAAa,MAAM,QAAW,MAAU;AAAA,EAClD;AACF,CAAC;AAEM,SAAS,oBAEd,OAIA;AACA,SACE,0DACG,CAAC,MAAM,cACN,4BAA4B,MAAM,QAAQ,MAAM,cAAc,GAChE;AAAA,IAAC,oBAAAE;AAAA,IAAA;AAAA,MACC,MAAM,YAAAH;AAAA,MACN,MAAM;AAAA,OACF;AAAA,EACN,CACF;AAEJ;AAEA,SAAS,4BACP,QACA,gBACA;AACA,QAAM,qBACJ,kBACA,eAAe,OAAO,QAAQ,QAAQ;AAAA,IACpC,CAACF,YAAiCA,QAAO,SAAS,UAAU,CAACA,QAAO;AAAA,EACtE;AACF,MAAI,CAAC,sBAAsB,mBAAmB,WAAW,GAAG;AAC1D,WAAO;AAAA,EACT;AACA,SACE,0DACE;AAAA,IAAC,cAAAM;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,KAAK,UAAU,mBAAmB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,MACjE,IAAI,UAAU,mBAAmB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,MAChE,yBAAyB;AAAA,QACvB,QAAQ;AAAA;AAAA;AAAA;AAAA,cAIJ,mBACC;AAAA,UACC,CACEN,YACG,2CAA2C,KAAK;AAAA,YACnDA,QAAO;AAAA,UACT;AAAA,uDACuC,KAAK;AAAA,YACxCA,QAAO;AAAA,UACT;AAAA,yDACuC,KAAK;AAAA,YACxC,uBAAuBA,QAAO;AAAA,UAChC;AAAA;AAAA;AAAA;AAAA,QAIN,EACC,KAAK,IAAI,IAAI,KAAK;AAAA,MACzB;AAAA;AAAA,EACD,GACA,mBAAmB,SAAS,KAC3B;AAAA,IAAC,cAAAM;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,KAAK,UAAU,mBAAmB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,MACjE,IAAI,UAAU,mBAAmB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG;AAAA,MAChE,OAAK;AAAA,MACL,OAAK;AAAA,MACL,KAAK,OAAO,aAAa,eAAe,QAAQ,kBAAkB;AAAA;AAAA,EACpE,CAEJ;AAEJ;",
4
+ "sourcesContent": ["import {\n ComponentLookupSpec,\n FetchComponentDataOpts as InternalFetchComponentDataOpts,\n InternalPlasmicComponentLoader,\n PlasmicComponentLoader,\n PlasmicRootProvider as CommonPlasmicRootProvider,\n} from \"@plasmicapp/loader-react\";\nimport { IncomingMessage, ServerResponse } from \"http\";\n// NextHead and NextLink must be default imported (`import Pkg`) instead of a namespace import (`import * as Pkg`).\n// Otherwise, there's a Next.js 12 bug when referencing these dependencies due to default import interop.\n// The transpiled CommonJS code would create a `default` field on the package,\n// causing React to think it's an invalid React object:\n// ```\n// const NextHead = __defaultInterop(require('next/head.js'))\n// assert(typeof NextHead === 'object')\n// assert(typeof NextHead.default === 'function')\n// ```\nimport type { CodeModule } from \"@plasmicapp/loader-core\";\nimport NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport Script from \"next/script\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\nimport type { ComponentRenderData, NextInitOptions } from \"./shared-exports\";\n\nexport {\n DataCtxReader,\n DataProvider,\n extractPlasmicQueryData,\n GlobalActionsContext,\n GlobalActionsProvider,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n plasmicPrepass,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n usePlasmicQueryData,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport type {\n CodeComponentMeta,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport * from \"./shared-exports\";\n\ntype ServerRequest = IncomingMessage & {\n cookies: {\n [key: string]: string;\n };\n};\n\nconst reactMajorVersion = +React.version.split(\".\")[0];\n\nfunction filterCodeFromRenderData(data: ComponentRenderData) {\n if (reactMajorVersion >= 18 && !!data.bundle.bundleKey) {\n // Keep the entrypoints\n const entrypoints = new Set([\n ...data.entryCompMetas.map((compMeta) => compMeta.entry),\n \"root-provider.js\",\n ...data.bundle.projects\n .map((x) => x.globalContextsProviderFileName)\n .filter((x) => !!x),\n ...data.bundle.components\n .filter((c) => c.isGlobalContextProvider)\n .map((c) => c.entry),\n ...data.bundle.globalGroups.map((g) => g.contextFile),\n ]);\n\n data.bundle.modules.browser = data.bundle.modules.browser.map((module) => {\n if (module.type !== \"code\" || entrypoints.has(module.fileName)) {\n return module;\n }\n return { ...module, code: \"\" };\n });\n }\n}\n\nexport interface FetchComponentDataOpts extends InternalFetchComponentDataOpts {\n /**\n * Defer loading code chunks to script tags, reducing initial payload size.\n */\n deferChunks?: boolean;\n}\n\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n }\n\n async getActiveVariation(opts: {\n req?: ServerRequest;\n res?: ServerResponse;\n known?: Record<string, string>;\n traits: Record<string, string | number | boolean>;\n }) {\n const extractBuiltinTraits = () => {\n const url = new URL(\n opts.req?.url ?? \"/\",\n `https://${opts.req?.headers.host ?? \"server.side\"}`\n );\n return {\n pageUrl: url.href,\n };\n };\n\n return this._getActiveVariation({\n traits: {\n ...extractBuiltinTraits(),\n ...opts.traits,\n },\n getKnownValue: (key: string) => {\n if (opts.known) {\n return opts.known[key];\n } else {\n return opts.req?.cookies[`plasmic:${key}`] ?? undefined;\n }\n },\n updateKnownValue: (key: string, value: string) => {\n if (opts.res) {\n const cookie = `plasmic:${key}=${value}`;\n const resCookie = opts.res?.getHeader(\"Set-Cookie\") ?? [];\n let newCookies: string[] = [];\n if (Array.isArray(resCookie)) {\n newCookies = [...resCookie, `plasmic:${key}=${value}`];\n } else {\n newCookies = [`${resCookie}`, cookie];\n }\n\n opts.res?.setHeader(\"Set-Cookie\", newCookies);\n }\n },\n });\n }\n\n maybeFetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData | null>;\n maybeFetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData | null>;\n async maybeFetchComponentData(\n ...args: any[]\n ): Promise<ComponentRenderData | null> {\n const data = await super.maybeFetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (\n data &&\n (opts?.deferChunks ||\n (opts?.deferChunks === undefined && data.bundle.deferChunksByDefault))\n ) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n\n fetchComponentData(\n ...specs: ComponentLookupSpec[]\n ): Promise<ComponentRenderData>;\n fetchComponentData(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n ): Promise<ComponentRenderData>;\n async fetchComponentData(...args: any[]): Promise<ComponentRenderData> {\n const data = await super.fetchComponentData(...args);\n const { opts } = parseFetchComponentDataArgs(...args);\n if (\n opts?.deferChunks ||\n (opts?.deferChunks === undefined && data.bundle.deferChunksByDefault)\n ) {\n filterCodeFromRenderData(data);\n }\n return data;\n }\n}\n\nfunction parseFetchComponentDataArgs(\n specs: ComponentLookupSpec[],\n opts?: FetchComponentDataOpts\n): { specs: ComponentLookupSpec[]; opts?: FetchComponentDataOpts };\nfunction parseFetchComponentDataArgs(...specs: ComponentLookupSpec[]): {\n specs: ComponentLookupSpec[];\n opts?: FetchComponentDataOpts;\n};\nfunction parseFetchComponentDataArgs(...args: any[]) {\n let specs: ComponentLookupSpec[];\n let opts: FetchComponentDataOpts | undefined;\n if (Array.isArray(args[0])) {\n specs = args[0];\n opts = args[1];\n } else {\n specs = args;\n opts = undefined;\n }\n return { specs, opts };\n}\n\nexport function initPlasmicLoader(opts: NextInitOptions) {\n const loader = initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n (opts) =>\n new NextJsPlasmicComponentLoader(\n new InternalPlasmicComponentLoader(opts)\n ),\n opts\n );\n loader.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\n if (opts.nextNavigation) {\n loader.registerModules({\n \"next/navigation\": opts.nextNavigation,\n });\n }\n return loader;\n}\n\nconst PlasmicNextLink = React.forwardRef(function PlasmicNextLink(\n props: React.ComponentProps<typeof NextLink>,\n ref: React.Ref<HTMLAnchorElement>\n) {\n // Basically renders NextLink, except when href is undefined,\n // which freaks out NextLink :-/\n if (props.href) {\n const {\n href,\n replace,\n scroll,\n shallow,\n passHref,\n prefetch,\n locale,\n ...rest\n } = props;\n // If this is a fragment identifier link, then we set\n // scroll={false} so that smooth scrolling works\n const isFragment = typeof href === \"string\" && href.startsWith(\"#\");\n // We use legacyBehavior, because we don't know which\n // version of next the user has installed\n return (\n <NextLink\n href={href}\n replace={replace}\n scroll={scroll != null ? scroll : isFragment ? false : undefined}\n shallow={shallow}\n passHref={passHref}\n prefetch={prefetch}\n locale={locale}\n {...({ legacyBehavior: true } as any)}\n >\n <a {...rest} ref={ref} />\n </NextLink>\n );\n } else {\n return <a {...props} href={undefined} ref={ref} />;\n }\n});\n\nexport function PlasmicRootProvider(\n // We omit Head but still allow override for Link\n props: Omit<\n React.ComponentProps<typeof CommonPlasmicRootProvider>,\n \"Head\"\n > & { skipChunks?: boolean }\n) {\n return (\n <>\n {!props.skipChunks &&\n renderDynamicPayloadScripts(props.loader, props.prefetchedData)}\n <CommonPlasmicRootProvider\n Head={NextHead}\n Link={PlasmicNextLink}\n {...props}\n />\n </>\n );\n}\n\nfunction renderDynamicPayloadScripts(\n loader: PlasmicComponentLoader,\n prefetchedData: ComponentRenderData | undefined\n) {\n const missingModulesData =\n prefetchedData &&\n prefetchedData.bundle.modules.browser.filter(\n (module): module is CodeModule => module.type === \"code\" && !module.code\n );\n if (!missingModulesData || missingModulesData.length === 0) {\n return null;\n }\n return (\n <>\n <Script\n strategy=\"beforeInteractive\"\n key={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"init:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n dangerouslySetInnerHTML={{\n __html: `\n if (!globalThis.__PlasmicBundlePromises) {\n globalThis.__PlasmicBundlePromises = {};\n }\n ${missingModulesData\n .map(\n (\n module\n ) => `if (!globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}]) {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n module.fileName\n )}] = new Promise((resolve) => {\n globalThis.__PlasmicBundlePromises[${JSON.stringify(\n \"__promise_resolve_\" + module.fileName\n )}] = resolve;\n })\n }\n `\n )\n .join(\"\\n\")}`.trim(),\n }}\n ></Script>\n {missingModulesData.length > 0 && (\n <Script\n strategy=\"beforeInteractive\"\n key={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n id={\"load:\" + missingModulesData.map((m) => m.fileName).join(\";\")}\n defer\n async\n src={loader.getChunksUrl(prefetchedData.bundle, missingModulesData)}\n />\n )}\n </>\n );\n}\n", "import { LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport type { InitOptions } from \"@plasmicapp/loader-react/react-server-conditional\";\nimport type * as Watcher from \"@plasmicapp/watcher\";\nimport path from \"path\";\nimport { serverRequire, serverRequireFs } from \"./server-require\";\nimport type { NextInitOptions } from \"./shared-exports\";\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = await serverRequireFs();\n try {\n await fs.promises.mkdir(path.dirname(this.filePath), { recursive: true });\n const data = (await fs.promises.readFile(this.filePath)).toString();\n return JSON.parse(data);\n } catch {\n return undefined;\n }\n }\n\n async set(data: LoaderBundleOutput) {\n const fs = await serverRequireFs();\n try {\n await fs.promises.writeFile(this.filePath, JSON.stringify(data));\n } catch (err) {\n console.warn(`Error writing to Plasmic cache: ${err}`);\n }\n }\n\n async clear() {\n const fs = await serverRequireFs();\n try {\n fs.promises.unlink(this.filePath);\n } catch (err) {\n // noop\n }\n }\n}\n\nfunction makeCache(opts: InitOptions) {\n const cacheDir = path.resolve(process.cwd(), \".next\", \".plasmic\");\n const cachePath = path.join(\n cacheDir,\n `plasmic-${[...opts.projects.map((p) => `${p.id}@${p.version ?? \"\"}`)]\n .sort()\n .join(\"-\")}${opts.preview ? \"-preview\" : \"\"}-cache.json`\n );\n return new FileCache(cachePath);\n}\n\nexport function initPlasmicLoaderWithCache<\n T extends {\n clearCache(): void;\n }\n>(\n initFn: (opts: InitOptions) => T,\n { nextNavigation, ...opts }: NextInitOptions\n): T {\n const isBrowser = typeof window !== \"undefined\";\n const isProd = process.env.NODE_ENV === \"production\";\n const cache = isBrowser || isProd ? undefined : makeCache(opts);\n const loader = initFn({\n onClientSideFetch: \"warn\",\n ...opts,\n cache,\n platform: \"nextjs\",\n platformOptions: {\n nextjs: {\n appDir: !!nextNavigation,\n },\n },\n // For Nextjs 12, revalidate may in fact re-use an existing instance\n // of PlasmicComponentLoader that's already in memory, so we need to\n // make sure we don't re-use the data cached in memory.\n // We also enforce this for dev mode, so that we don't have to restart\n // the dev server, in case getStaticProps() re-uses the same PlasmicComponentLoader\n alwaysFresh: !isBrowser,\n });\n\n if (!isProd) {\n const stringOpts = JSON.stringify(opts);\n\n if (process.env.PLASMIC_OPTS && process.env.PLASMIC_OPTS !== stringOpts) {\n console.warn(\n `PLASMIC: We detected that you created a new PlasmicLoader with different configurations. You may need to restart your dev server.\\n`\n );\n }\n\n process.env.PLASMIC_OPTS = stringOpts;\n }\n\n if (cache) {\n if (!isProd) {\n if (process.env.PLASMIC_WATCHED !== \"true\") {\n (async () => {\n process.env.PLASMIC_WATCHED = \"true\";\n console.log(`Subscribing to Plasmic changes...`);\n\n // Import using serverRequire, so webpack doesn't bundle us into client bundle\n try {\n const PlasmicRemoteChangeWatcher = (\n await serverRequire<typeof Watcher>(\"@plasmicapp/watcher\")\n ).PlasmicRemoteChangeWatcher;\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n const clearCache = () => {\n cache.clear();\n loader.clearCache();\n };\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n clearCache();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n clearCache();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n })();\n }\n } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type * as FS from \"fs\";\n\nlet secretRequire: ((module: string) => any) | undefined;\ntry {\n // Secretly use require/import without webpack knowing\n // eslint-disable-next-line\n secretRequire = eval(\"require\");\n} catch (err) {\n try {\n // eslint-disable-next-line\n secretRequire = eval(\"(module) => import(module)\");\n } catch (err) {\n secretRequire = undefined;\n }\n}\n\nexport async function serverRequire<T>(module: string): Promise<T> {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module) as Promise<T>;\n}\n\nexport async function serverRequireFs() {\n return serverRequire<typeof FS>(\"fs\");\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["err", "module", "path", "err", "import_loader_react", "module", "opts", "NextHead", "NextLink", "PlasmicNextLink", "CommonPlasmicRootProvider", "Script"]
7
7
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.359",
2
+ "version": "1.0.361",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -80,11 +80,11 @@
80
80
  "next": "^13.2.0"
81
81
  },
82
82
  "dependencies": {
83
- "@plasmicapp/loader-core": "1.0.125",
84
- "@plasmicapp/loader-edge": "1.0.59",
85
- "@plasmicapp/loader-react": "1.0.337",
83
+ "@plasmicapp/loader-core": "1.0.126",
84
+ "@plasmicapp/loader-edge": "1.0.60",
85
+ "@plasmicapp/loader-react": "1.0.339",
86
86
  "@plasmicapp/watcher": "1.0.83",
87
87
  "server-only": "0.0.1"
88
88
  },
89
- "gitHead": "08f4db385bb92471d4dc5cf295469b7b6f889b13"
89
+ "gitHead": "11b8de3d25481286600b5455a076bb31f99fa696"
90
90
  }