@plasmicapp/loader-nextjs 1.0.289 → 1.0.291

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.js CHANGED
@@ -23,6 +23,18 @@ var __spreadValues = (a, b) => {
23
23
  return a;
24
24
  };
25
25
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __objRest = (source, exclude) => {
27
+ var target = {};
28
+ for (var prop in source)
29
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
30
+ target[prop] = source[prop];
31
+ if (source != null && __getOwnPropSymbols)
32
+ for (var prop of __getOwnPropSymbols(source)) {
33
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
34
+ target[prop] = source[prop];
35
+ }
36
+ return target;
37
+ };
26
38
  var __export = (target, all) => {
27
39
  for (var name in all)
28
40
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -288,7 +300,49 @@ function initPlasmicLoader(opts) {
288
300
  opts
289
301
  );
290
302
  }
303
+ var PlasmicNextLink = React.forwardRef(function PlasmicNextLink2(props, ref) {
304
+ if (props.href) {
305
+ const _a = props, {
306
+ href,
307
+ replace,
308
+ scroll,
309
+ shallow,
310
+ passHref,
311
+ prefetch,
312
+ locale
313
+ } = _a, rest = __objRest(_a, [
314
+ "href",
315
+ "replace",
316
+ "scroll",
317
+ "shallow",
318
+ "passHref",
319
+ "prefetch",
320
+ "locale"
321
+ ]);
322
+ return /* @__PURE__ */ React.createElement(
323
+ import_link.default,
324
+ __spreadValues({
325
+ href,
326
+ replace,
327
+ scroll,
328
+ shallow,
329
+ passHref,
330
+ prefetch,
331
+ locale
332
+ }, { legacyBehavior: true }),
333
+ /* @__PURE__ */ React.createElement("a", __spreadProps(__spreadValues({}, rest), { ref }))
334
+ );
335
+ } else {
336
+ return /* @__PURE__ */ React.createElement("a", __spreadProps(__spreadValues({}, props), { href: void 0, ref }));
337
+ }
338
+ });
291
339
  function PlasmicRootProvider(props) {
292
- return /* @__PURE__ */ React.createElement(import_loader_react.PlasmicRootProvider, __spreadValues({ Head: import_head.default, Link: import_link.default }, props));
340
+ return /* @__PURE__ */ React.createElement(
341
+ import_loader_react.PlasmicRootProvider,
342
+ __spreadValues({
343
+ Head: import_head.default,
344
+ Link: PlasmicNextLink
345
+ }, props)
346
+ );
293
347
  }
294
348
  //# sourceMappingURL=index.js.map
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 InitOptions,\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 NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\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};\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n this.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\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\nconst initPlasmicLoaderNext = (opts: InitOptions) => {\n const internal = new InternalPlasmicComponentLoader(opts);\n return new NextJsPlasmicComponentLoader(internal);\n};\n\nexport function initPlasmicLoader(opts: InitOptions) {\n return initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n initPlasmicLoaderNext,\n opts\n );\n}\n\nexport function PlasmicRootProvider(\n props: Omit<React.ComponentProps<typeof CommonPlasmicRootProvider>, \"Head\">\n) {\n return (\n <CommonPlasmicRootProvider Head={NextHead} Link={NextLink} {...props} />\n );\n}\n", "import { LoaderBundleOutput } from '@plasmicapp/loader-core';\nimport type { InitOptions } from '@plasmicapp/loader-react/react-server-conditional';\nimport type { PlasmicRemoteChangeWatcher as Watcher } from '@plasmicapp/watcher';\nimport path from 'path';\nimport { serverRequire, serverRequireFs } from './server-require';\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = 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 = 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 clear() {\n const fs = serverRequireFs();\n try {\n fs.unlinkSync(this.filePath);\n } catch (err) {}\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>(initFn: (opts: InitOptions) => T, opts: InitOptions): 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 // 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 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 = serverRequire('@plasmicapp/watcher')\n .PlasmicRemoteChangeWatcher as typeof Watcher;\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 } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type FS from 'fs';\n\nlet secretRequire: NodeRequire | undefined;\ntry {\n // Secretly use require without webpack knowing\n secretRequire = eval('require');\n} catch (err) {\n secretRequire = undefined;\n}\n\nexport function serverRequire(module: string) {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module);\n}\n\nexport function serverRequireFs() {\n return serverRequire('fs') as typeof FS;\n}\n"],
5
- "mappings": "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",
6
- "names": ["module", "path", "import_loader_react", "NextHead", "NextLink", "CommonPlasmicRootProvider"]
4
+ "sourcesContent": ["import {\n InitOptions,\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 NextHead from \"next/head.js\";\nimport NextLink from \"next/link.js\";\nimport * as NextRouter from \"next/router.js\";\nimport * as React from \"react\";\nimport { initPlasmicLoaderWithCache } from \"./cache\";\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};\nexport class NextJsPlasmicComponentLoader extends PlasmicComponentLoader {\n constructor(internal: InternalPlasmicComponentLoader) {\n super(internal);\n this.registerModules({\n \"next/head\": NextHead,\n \"next/link\": NextLink,\n \"next/router\": NextRouter,\n });\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\nconst initPlasmicLoaderNext = (opts: InitOptions) => {\n const internal = new InternalPlasmicComponentLoader(opts);\n return new NextJsPlasmicComponentLoader(internal);\n};\n\nexport function initPlasmicLoader(opts: InitOptions) {\n return initPlasmicLoaderWithCache<NextJsPlasmicComponentLoader>(\n initPlasmicLoaderNext,\n opts\n );\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 // 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}\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<React.ComponentProps<typeof CommonPlasmicRootProvider>, \"Head\">\n) {\n return (\n <CommonPlasmicRootProvider\n Head={NextHead}\n Link={PlasmicNextLink}\n {...props}\n />\n );\n}\n", "import { LoaderBundleOutput } from '@plasmicapp/loader-core';\nimport type { InitOptions } from '@plasmicapp/loader-react/react-server-conditional';\nimport type { PlasmicRemoteChangeWatcher as Watcher } from '@plasmicapp/watcher';\nimport path from 'path';\nimport { serverRequire, serverRequireFs } from './server-require';\n\nclass FileCache {\n constructor(private filePath: string) {}\n\n async get() {\n const fs = 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 = 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 clear() {\n const fs = serverRequireFs();\n try {\n fs.unlinkSync(this.filePath);\n } catch (err) {}\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>(initFn: (opts: InitOptions) => T, opts: InitOptions): 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 // 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 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 = serverRequire('@plasmicapp/watcher')\n .PlasmicRemoteChangeWatcher as typeof Watcher;\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 } else {\n cache.clear();\n loader.clearCache();\n }\n }\n return loader;\n}\n", "import type FS from 'fs';\n\nlet secretRequire: NodeRequire | undefined;\ntry {\n // Secretly use require without webpack knowing\n secretRequire = eval('require');\n} catch (err) {\n secretRequire = undefined;\n}\n\nexport function serverRequire(module: string) {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module);\n}\n\nexport function serverRequireFs() {\n return serverRequire('fs') as typeof FS;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["module", "path", "import_loader_react", "NextHead", "NextLink", "PlasmicNextLink", "CommonPlasmicRootProvider"]
7
7
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.289",
2
+ "version": "1.0.291",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -83,5 +83,5 @@
83
83
  "@plasmicapp/watcher": "1.0.72",
84
84
  "server-only": "0.0.1"
85
85
  },
86
- "gitHead": "53fbc64e76b6edec87fc05403944e52c292d4d1c"
86
+ "gitHead": "6dd127c1148f098ff2ecd43453a393a9230a7bd7"
87
87
  }