@plasmicapp/loader-gatsby 1.0.255 → 1.0.256

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.
@@ -1 +1,7 @@
1
- {"version":3,"file":"gatsby-node.js","sourceRoot":"","sources":["../src/gatsby-node.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/gatsby-node.ts", "../src/server-require.ts"],
4
+ "sourcesContent": ["import { ComponentMeta, LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport {\n convertBundlesToComponentRenderData,\n InitOptions,\n initPlasmicLoader,\n matchesPagePath,\n} from \"@plasmicapp/loader-react\";\nimport type { PlasmicRemoteChangeWatcher as Watcher } from \"@plasmicapp/watcher\";\nimport { CreatePagesArgs, GatsbyNode, PluginOptions } from \"gatsby\";\nimport serverRequire from \"./server-require\";\n\nexport const onPreInit: GatsbyNode[\"onPreInit\"] = ({ reporter }) =>\n reporter.success(\"Loaded @plasmicapp/loader-gatsby\");\n\nexport type GatsbyPluginOptions = PluginOptions &\n InitOptions & {\n defaultPlasmicPage?: string;\n ignorePaths?: string[];\n };\n\nconst PLASMIC_NODE_NAME = \"plasmicData\";\n\nconst PLASMIC_DATA_TYPE = `\n type ${PLASMIC_NODE_NAME} implements Node {\n name: String!\n displayName: String!\n projectId: String!\n path: String\n isPage: Boolean!\n renderData: JSON!\n }\n\n type Query {\n plasmicComponents(componentNames: [String]!): JSON\n plasmicOptions: JSON\n }\n`;\n\nconst SOURCE_WAIT_TIME = 3000; // 3 seconds\nconst SOURCE_MAX_WAIT_TIME = 10000; // 10 seconds\n\nlet allPaths: string[] = [];\n\nexport const sourceNodes: GatsbyNode[\"sourceNodes\"] = async (\n { actions, createContentDigest, reporter },\n opts: GatsbyPluginOptions\n) => {\n const { createNode, deleteNode } = actions;\n\n let allComponents: any[] = [];\n\n const refreshData = async () => {\n reporter.info(`[Plasmic Loader] - Creating nodes`);\n\n const PLASMIC = initPlasmicLoader({\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n platform: \"gatsby\",\n });\n\n const components = await PLASMIC.fetchComponents();\n\n for (const component of allComponents) {\n const hasComponent = components.some((c) => c.name === component.name);\n /**\n * We shouldn't delete nodes that will be updated, if we delete all nodes\n * and then create it again, this could case the graphql layer to have no\n * plasmic data for some time, but this can be enough time to a re render\n * causing components that call a graphql query to plasmic data to crash\n * */\n if (!hasComponent) {\n deleteNode(component);\n reporter.verbose(`[Plasmic Loader] - Deleted node ${component.name}`);\n }\n }\n\n allComponents = [];\n for (const component of components) {\n const renderData = await PLASMIC.fetchComponentData({\n name: component.name,\n projectId: component.projectId,\n });\n\n const curComponent = {\n ...component,\n renderData,\n };\n\n const componentMeta = {\n // We use the same id as curComponent.id since loader-react might\n // expect the id to match plasmic component uuid.\n // id: getNodeId(component.projectId, component.name),\n parent: null,\n children: [],\n internal: {\n type: PLASMIC_NODE_NAME,\n contentDigest: createContentDigest(curComponent),\n },\n };\n\n const componentNode = Object.assign({}, curComponent, componentMeta);\n\n createNode(componentNode);\n reporter.verbose(\n `[Plasmic Loader] - Created component node ${component.name}`\n );\n allComponents.push(componentNode);\n }\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n const debounce = serverRequire(\"lodash/debounce\");\n const triggerSourcing = debounce(refreshData, SOURCE_WAIT_TIME, {\n maxWait: SOURCE_MAX_WAIT_TIME,\n });\n\n try {\n const PlasmicRemoteChangeWatcher = serverRequire(\"@plasmicapp/watcher\")\n .PlasmicRemoteChangeWatcher as typeof Watcher;\n\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n triggerSourcing();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n triggerSourcing();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n }\n\n await refreshData();\n};\n\nasync function getAllNodes(nodeModel: any, type: any) {\n try {\n const { entries } = await nodeModel.findAll({ type });\n return Array.from(entries);\n } catch (_) {\n // Gatsby < v4 does not have `nodeModel.findAll`, so we try to use the\n // deprecated `nodeModel.getAllNodes` instead.\n return nodeModel.getAllNodes({ type });\n }\n}\n\nexport const createResolvers: GatsbyNode[\"createResolvers\"] = (\n { createResolvers },\n opts\n) => {\n createResolvers({\n Query: {\n plasmicComponents: {\n type: \"JSON\",\n args: {\n componentNames: `[String]!`,\n },\n async resolve(\n _source: unknown,\n args: { componentNames: string[] },\n context: any,\n _info: unknown\n ) {\n const { componentNames } = args;\n\n const components = await getAllNodes(\n context.nodeModel,\n PLASMIC_NODE_NAME\n );\n\n const bundles: LoaderBundleOutput[] = [];\n const compMetas: (ComponentMeta & {\n params?: Record<string, string>;\n })[] = [];\n for (const component of components) {\n if (\n componentNames.includes(component.name) ||\n componentNames.includes(component.displayName) ||\n !!(\n component.path &&\n componentNames.some((lookup) =>\n matchesPagePath(component.path, lookup)\n )\n )\n ) {\n const bundle = component.renderData?.bundle;\n if (bundle) {\n bundles.push(bundle);\n\n let meta = component;\n\n // If component is a page, try to parse dynamic params.\n if (component.path) {\n for (const lookup of componentNames) {\n const match = matchesPagePath(component.path, lookup);\n if (match) {\n meta = { ...meta, params: match.params };\n break;\n }\n }\n }\n\n compMetas.push(meta);\n }\n }\n }\n\n const renderData = convertBundlesToComponentRenderData(\n bundles,\n compMetas\n );\n\n renderData?.entryCompMetas.sort(\n (meta1, meta2) =>\n // We sort the matched component metas by the number of path params, so\n // if there are two pages `/products/foo` and `/products/[slug]`,\n // the first one will have higher precedence.\n Array.from(Object.keys(meta1.params || {})).length -\n Array.from(Object.keys(meta2.params || {})).length\n );\n\n return renderData;\n },\n },\n plasmicOptions: {\n type: \"JSON\",\n resolve() {\n return {\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n };\n },\n },\n },\n });\n};\n\nexport const createSchemaCustomization: GatsbyNode[\"createSchemaCustomization\"] =\n ({ actions }) => {\n const { createTypes } = actions;\n createTypes(PLASMIC_DATA_TYPE);\n };\n\ninterface LoaderGatsbyPluginOptions extends GatsbyPluginOptions {\n defaultPlasmicPage: string;\n}\n\nexport const createPages: GatsbyNode[\"createPages\"] = async (\n { graphql, actions, reporter }: CreatePagesArgs,\n opts: LoaderGatsbyPluginOptions\n) => {\n const { defaultPlasmicPage } = opts;\n\n const ignorePaths = opts.ignorePaths || [];\n\n if (defaultPlasmicPage) {\n reporter.info(`[Plasmic Loader] - Creating pages`);\n\n const { createPage, deletePage } = actions;\n const result = await graphql<{\n allPlasmicData: { nodes: Array<{ path: string }> };\n }>(`\n query {\n allPlasmicData(filter: { isPage: { eq: true } }) {\n nodes {\n path\n }\n }\n }\n `);\n\n const pages = result.data?.allPlasmicData.nodes;\n if (!pages) {\n reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);\n return;\n }\n\n for (const path of allPaths) {\n deletePage({\n path,\n component: defaultPlasmicPage,\n });\n reporter.verbose(`[Plasmic Loader] - Deleted page ${path}`);\n }\n\n allPaths = [];\n\n for (const page of pages) {\n const path = page.path;\n if (ignorePaths.includes(path) || ignorePaths.includes(path + \"/\")) {\n continue;\n }\n allPaths.push(page.path);\n\n createPage({\n path: page.path,\n component: defaultPlasmicPage,\n context: {},\n });\n reporter.verbose(`[Plasmic Loader] - Created page ${page.path}`);\n }\n }\n};\n", "let secretRequire: NodeRequire | undefined;\ntry {\n // Secretly use require without webpack knowing\n secretRequire = eval(\"require\");\n} catch (err) {\n secretRequire = undefined;\n}\n\nexport default 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"],
5
+ "mappings": "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",
6
+ "names": ["module", "createResolvers", "_a"]
7
+ }
@@ -1,55 +1,75 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.replaceRenderer = exports.fetchServerFiles = void 0;
4
- var tslib_1 = require("tslib");
5
- var loader_react_1 = require("@plasmicapp/loader-react");
6
- var server_1 = require("react-dom/server");
7
- var loadedProjects = new Set();
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __async = (__this, __arguments, generator) => {
20
+ return new Promise((resolve, reject) => {
21
+ var fulfilled = (value) => {
22
+ try {
23
+ step(generator.next(value));
24
+ } catch (e) {
25
+ reject(e);
26
+ }
27
+ };
28
+ var rejected = (value) => {
29
+ try {
30
+ step(generator.throw(value));
31
+ } catch (e) {
32
+ reject(e);
33
+ }
34
+ };
35
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
+ step((generator = generator.apply(__this, __arguments)).next());
37
+ });
38
+ };
39
+
40
+ // src/gatsby-ssr.ts
41
+ var gatsby_ssr_exports = {};
42
+ __export(gatsby_ssr_exports, {
43
+ fetchServerFiles: () => fetchServerFiles,
44
+ replaceRenderer: () => replaceRenderer
45
+ });
46
+ module.exports = __toCommonJS(gatsby_ssr_exports);
47
+ var import_loader_react = require("@plasmicapp/loader-react");
48
+ var import_server = require("react-dom/server");
49
+ var loadedProjects = /* @__PURE__ */ new Set();
8
50
  function fetchServerFiles(opts) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function () {
10
- var projectKeys, PLASMIC, components;
11
- return tslib_1.__generator(this, function (_a) {
12
- switch (_a.label) {
13
- case 0:
14
- if (!((opts === null || opts === void 0 ? void 0 : opts.projects) &&
15
- Array.isArray(opts.projects) &&
16
- opts.projects.every(function (p) { return !!p.token && !!p.id; }))) return [3 /*break*/, 3];
17
- projectKeys = opts.projects.map(function (project) { return "".concat(project.id, "@").concat(project.version, ":").concat(project.token); });
18
- if (!projectKeys.some(function (key) { return !loadedProjects.has(key); })) return [3 /*break*/, 3];
19
- loadedProjects.clear();
20
- PLASMIC = (0, loader_react_1.initPlasmicLoader)({
21
- projects: opts.projects,
22
- preview: opts.preview,
23
- host: opts.host,
24
- platform: "gatsby",
25
- });
26
- return [4 /*yield*/, PLASMIC.fetchComponents()];
27
- case 1:
28
- components = _a.sent();
29
- return [4 /*yield*/, PLASMIC.maybeFetchComponentData.apply(PLASMIC, components)];
30
- case 2:
31
- _a.sent();
32
- projectKeys.forEach(function (key) { return loadedProjects.add(key); });
33
- _a.label = 3;
34
- case 3: return [2 /*return*/];
35
- }
51
+ return __async(this, null, function* () {
52
+ if ((opts == null ? void 0 : opts.projects) && Array.isArray(opts.projects) && opts.projects.every((p) => !!p.token && !!p.id)) {
53
+ const projectKeys = opts.projects.map(
54
+ (project) => `${project.id}@${project.version}:${project.token}`
55
+ );
56
+ if (projectKeys.some((key) => !loadedProjects.has(key))) {
57
+ loadedProjects.clear();
58
+ const PLASMIC = (0, import_loader_react.initPlasmicLoader)({
59
+ projects: opts.projects,
60
+ preview: opts.preview,
61
+ host: opts.host,
62
+ platform: "gatsby"
36
63
  });
37
- });
64
+ const components = yield PLASMIC.fetchComponents();
65
+ yield PLASMIC.maybeFetchComponentData(...components);
66
+ projectKeys.forEach((key) => loadedProjects.add(key));
67
+ }
68
+ }
69
+ });
38
70
  }
39
- exports.fetchServerFiles = fetchServerFiles;
40
- var replaceRenderer = function (_a, opts) {
41
- var bodyComponent = _a.bodyComponent, replaceBodyHTMLString = _a.replaceBodyHTMLString;
42
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
43
- return tslib_1.__generator(this, function (_b) {
44
- switch (_b.label) {
45
- case 0: return [4 /*yield*/, fetchServerFiles(opts)];
46
- case 1:
47
- _b.sent();
48
- replaceBodyHTMLString((0, server_1.renderToString)(bodyComponent));
49
- return [2 /*return*/];
50
- }
51
- });
52
- });
53
- };
54
- exports.replaceRenderer = replaceRenderer;
55
- //# sourceMappingURL=gatsby-ssr.js.map
71
+ var replaceRenderer = (_0, _1) => __async(void 0, [_0, _1], function* ({ bodyComponent, replaceBodyHTMLString }, opts) {
72
+ yield fetchServerFiles(opts);
73
+ replaceBodyHTMLString((0, import_server.renderToString)(bodyComponent));
74
+ });
75
+ //# sourceMappingURL=gatsby-ssr.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"gatsby-ssr.js","sourceRoot":"","sources":["../src/gatsby-ssr.ts"],"names":[],"mappings":";;;;AAAA,yDAA6D;AAC7D,2CAAkD;AAGlD,IAAI,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvC,SAAsB,gBAAgB,CAAC,IAAyB;;;;;;yBAE5D,CAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ;wBACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAnB,CAAmB,CAAC,CAAA,EAF/C,wBAE+C;oBAEzC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CACnC,UAAC,OAAO,IAAK,OAAA,UAAG,OAAO,CAAC,EAAE,cAAI,OAAO,CAAC,OAAO,cAAI,OAAO,CAAC,KAAK,CAAE,EAAnD,CAAmD,CACjE,CAAC;yBACE,WAAW,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAnD,wBAAmD;oBACrD,cAAc,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,GAAG,IAAA,gCAAiB,EAAC;wBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,QAAQ,EAAE,QAAQ;qBACnB,CAAC,CAAC;oBACgB,qBAAM,OAAO,CAAC,eAAe,EAAE,EAAA;;oBAA5C,UAAU,GAAG,SAA+B;oBAClD,qBAAM,OAAO,CAAC,uBAAuB,OAA/B,OAAO,EAA4B,UAAU,GAAC;;oBAApD,SAAoD,CAAC;oBACrD,WAAW,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAvB,CAAuB,CAAC,CAAC;;;;;;CAG3D;AAtBD,4CAsBC;AAEM,IAAM,eAAe,GAAG,UAC7B,EAA6C,EAC7C,IAAyB;QADvB,aAAa,mBAAA,EAAE,qBAAqB,2BAAA;;;;wBAGtC,qBAAM,gBAAgB,CAAC,IAAI,CAAC,EAAA;;oBAA5B,SAA4B,CAAC;oBAC7B,qBAAqB,CAAC,IAAA,uBAAc,EAAC,aAAa,CAAC,CAAC,CAAC;;;;;CACtD,CAAC;AANW,QAAA,eAAe,mBAM1B"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/gatsby-ssr.ts"],
4
+ "sourcesContent": ["import { initPlasmicLoader } from \"@plasmicapp/loader-react\";\nimport { renderToString } from \"react-dom/server\";\nimport type { GatsbyPluginOptions } from \"./gatsby-node\";\n\nlet loadedProjects = new Set<string>();\n\nexport async function fetchServerFiles(opts: GatsbyPluginOptions) {\n if (\n opts?.projects &&\n Array.isArray(opts.projects) &&\n opts.projects.every((p) => !!p.token && !!p.id)\n ) {\n const projectKeys = opts.projects.map(\n (project) => `${project.id}@${project.version}:${project.token}`\n );\n if (projectKeys.some((key) => !loadedProjects.has(key))) {\n loadedProjects.clear();\n const PLASMIC = initPlasmicLoader({\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n platform: \"gatsby\",\n });\n const components = await PLASMIC.fetchComponents();\n await PLASMIC.maybeFetchComponentData(...components);\n projectKeys.forEach((key) => loadedProjects.add(key));\n }\n }\n}\n\nexport const replaceRenderer = async (\n { bodyComponent, replaceBodyHTMLString }: any,\n opts: GatsbyPluginOptions\n) => {\n await fetchServerFiles(opts);\n replaceBodyHTMLString(renderToString(bodyComponent));\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAkC;AAClC,oBAA+B;AAG/B,IAAI,iBAAiB,oBAAI,IAAY;AAErC,SAAsB,iBAAiB,MAA2B;AAAA;AAChE,SACE,6BAAM,aACN,MAAM,QAAQ,KAAK,QAAQ,KAC3B,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,GAC9C;AACA,YAAM,cAAc,KAAK,SAAS;AAAA,QAChC,CAAC,YAAY,GAAG,QAAQ,MAAM,QAAQ,WAAW,QAAQ;AAAA,MAC3D;AACA,UAAI,YAAY,KAAK,CAAC,QAAQ,CAAC,eAAe,IAAI,GAAG,CAAC,GAAG;AACvD,uBAAe,MAAM;AACrB,cAAM,cAAU,uCAAkB;AAAA,UAChC,UAAU,KAAK;AAAA,UACf,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,UACX,UAAU;AAAA,QACZ,CAAC;AACD,cAAM,aAAa,MAAM,QAAQ,gBAAgB;AACjD,cAAM,QAAQ,wBAAwB,GAAG,UAAU;AACnD,oBAAY,QAAQ,CAAC,QAAQ,eAAe,IAAI,GAAG,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AAAA;AAEO,IAAM,kBAAkB,CAC7B,IACA,OACG,iBAFH,IACA,KACG,WAFH,EAAE,eAAe,sBAAsB,GACvC,MACG;AACH,QAAM,iBAAiB,IAAI;AAC3B,4BAAsB,8BAAe,aAAa,CAAC;AACrD;",
6
+ "names": []
7
+ }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { CodeComponentMeta, ComponentMeta, ComponentRenderData, DataCtxReader, DataProvider, InitOptions, PageMeta, PageMetadata, PageParamsProvider, PlasmicCanvasContext, PlasmicCanvasHost, PlasmicComponent, PlasmicRootProvider, PlasmicTranslator, PrimitiveType, PropType, repeatedElement, TokenRegistration, useDataEnv, usePlasmicCanvasContext, usePlasmicComponent, useSelector, useSelectors, } from "@plasmicapp/loader-react";
1
+ export type { CodeComponentMeta, ComponentMeta, ComponentRenderData, InitOptions, PageMeta, PageMetadata, PlasmicTranslator, PrimitiveType, PropType, TokenRegistration, } from "@plasmicapp/loader-react";
2
+ export { DataCtxReader, DataProvider, PageParamsProvider, PlasmicCanvasContext, PlasmicCanvasHost, PlasmicComponent, PlasmicRootProvider, repeatedElement, useDataEnv, usePlasmicCanvasContext, usePlasmicComponent, useSelector, useSelectors, } from "@plasmicapp/loader-react";
2
3
  export { createPages, createResolvers, sourceNodes } from "./gatsby-node";
3
4
  export { replaceRenderer } from "./gatsby-ssr";
4
5
  export { initPlasmicLoader } from "./loader";
package/dist/index.js CHANGED
@@ -1,27 +1,374 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initPlasmicLoader = exports.replaceRenderer = exports.sourceNodes = exports.createResolvers = exports.createPages = exports.useSelectors = exports.useSelector = exports.usePlasmicComponent = exports.usePlasmicCanvasContext = exports.useDataEnv = exports.repeatedElement = exports.PlasmicRootProvider = exports.PlasmicComponent = exports.PlasmicCanvasHost = exports.PlasmicCanvasContext = exports.PageParamsProvider = exports.DataProvider = exports.DataCtxReader = void 0;
4
- var loader_react_1 = require("@plasmicapp/loader-react");
5
- // Data context helpers.
6
- Object.defineProperty(exports, "DataCtxReader", { enumerable: true, get: function () { return loader_react_1.DataCtxReader; } });
7
- Object.defineProperty(exports, "DataProvider", { enumerable: true, get: function () { return loader_react_1.DataProvider; } });
8
- Object.defineProperty(exports, "PageParamsProvider", { enumerable: true, get: function () { return loader_react_1.PageParamsProvider; } });
9
- Object.defineProperty(exports, "PlasmicCanvasContext", { enumerable: true, get: function () { return loader_react_1.PlasmicCanvasContext; } });
10
- Object.defineProperty(exports, "PlasmicCanvasHost", { enumerable: true, get: function () { return loader_react_1.PlasmicCanvasHost; } });
11
- Object.defineProperty(exports, "PlasmicComponent", { enumerable: true, get: function () { return loader_react_1.PlasmicComponent; } });
12
- Object.defineProperty(exports, "PlasmicRootProvider", { enumerable: true, get: function () { return loader_react_1.PlasmicRootProvider; } });
13
- Object.defineProperty(exports, "repeatedElement", { enumerable: true, get: function () { return loader_react_1.repeatedElement; } });
14
- Object.defineProperty(exports, "useDataEnv", { enumerable: true, get: function () { return loader_react_1.useDataEnv; } });
15
- Object.defineProperty(exports, "usePlasmicCanvasContext", { enumerable: true, get: function () { return loader_react_1.usePlasmicCanvasContext; } });
16
- Object.defineProperty(exports, "usePlasmicComponent", { enumerable: true, get: function () { return loader_react_1.usePlasmicComponent; } });
17
- Object.defineProperty(exports, "useSelector", { enumerable: true, get: function () { return loader_react_1.useSelector; } });
18
- Object.defineProperty(exports, "useSelectors", { enumerable: true, get: function () { return loader_react_1.useSelectors; } });
19
- var gatsby_node_1 = require("./gatsby-node");
20
- Object.defineProperty(exports, "createPages", { enumerable: true, get: function () { return gatsby_node_1.createPages; } });
21
- Object.defineProperty(exports, "createResolvers", { enumerable: true, get: function () { return gatsby_node_1.createResolvers; } });
22
- Object.defineProperty(exports, "sourceNodes", { enumerable: true, get: function () { return gatsby_node_1.sourceNodes; } });
23
- var gatsby_ssr_1 = require("./gatsby-ssr");
24
- Object.defineProperty(exports, "replaceRenderer", { enumerable: true, get: function () { return gatsby_ssr_1.replaceRenderer; } });
25
- var loader_1 = require("./loader");
26
- Object.defineProperty(exports, "initPlasmicLoader", { enumerable: true, get: function () { return loader_1.initPlasmicLoader; } });
27
- //# sourceMappingURL=index.js.map
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __export = (target, all) => {
26
+ for (var name in all)
27
+ __defProp(target, name, { get: all[name], enumerable: true });
28
+ };
29
+ var __copyProps = (to, from, except, desc) => {
30
+ if (from && typeof from === "object" || typeof from === "function") {
31
+ for (let key of __getOwnPropNames(from))
32
+ if (!__hasOwnProp.call(to, key) && key !== except)
33
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
34
+ }
35
+ return to;
36
+ };
37
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
38
+ // If the importer is in node compatibility mode or this is not an ESM
39
+ // file that has been converted to a CommonJS file using a Babel-
40
+ // compatible transform (i.e. "__esModule" has not been set), then set
41
+ // "default" to the CommonJS "module.exports" for node compatibility.
42
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
43
+ mod
44
+ ));
45
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
+ var __async = (__this, __arguments, generator) => {
47
+ return new Promise((resolve, reject) => {
48
+ var fulfilled = (value) => {
49
+ try {
50
+ step(generator.next(value));
51
+ } catch (e) {
52
+ reject(e);
53
+ }
54
+ };
55
+ var rejected = (value) => {
56
+ try {
57
+ step(generator.throw(value));
58
+ } catch (e) {
59
+ reject(e);
60
+ }
61
+ };
62
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
+ step((generator = generator.apply(__this, __arguments)).next());
64
+ });
65
+ };
66
+
67
+ // src/index.ts
68
+ var src_exports = {};
69
+ __export(src_exports, {
70
+ DataCtxReader: () => import_loader_react4.DataCtxReader,
71
+ DataProvider: () => import_loader_react4.DataProvider,
72
+ PageParamsProvider: () => import_loader_react4.PageParamsProvider,
73
+ PlasmicCanvasContext: () => import_loader_react4.PlasmicCanvasContext,
74
+ PlasmicCanvasHost: () => import_loader_react4.PlasmicCanvasHost,
75
+ PlasmicComponent: () => import_loader_react4.PlasmicComponent,
76
+ PlasmicRootProvider: () => import_loader_react4.PlasmicRootProvider,
77
+ createPages: () => createPages,
78
+ createResolvers: () => createResolvers,
79
+ initPlasmicLoader: () => initPlasmicLoader3,
80
+ repeatedElement: () => import_loader_react4.repeatedElement,
81
+ replaceRenderer: () => replaceRenderer,
82
+ sourceNodes: () => sourceNodes,
83
+ useDataEnv: () => import_loader_react4.useDataEnv,
84
+ usePlasmicCanvasContext: () => import_loader_react4.usePlasmicCanvasContext,
85
+ usePlasmicComponent: () => import_loader_react4.usePlasmicComponent,
86
+ useSelector: () => import_loader_react4.useSelector,
87
+ useSelectors: () => import_loader_react4.useSelectors
88
+ });
89
+ module.exports = __toCommonJS(src_exports);
90
+ var import_loader_react4 = require("@plasmicapp/loader-react");
91
+
92
+ // src/gatsby-node.ts
93
+ var import_loader_react = require("@plasmicapp/loader-react");
94
+
95
+ // src/server-require.ts
96
+ var secretRequire;
97
+ try {
98
+ secretRequire = eval("require");
99
+ } catch (err) {
100
+ secretRequire = void 0;
101
+ }
102
+ function serverRequire(module2) {
103
+ if (!secretRequire) {
104
+ throw new Error(
105
+ `Unexpected serverRequire() -- can only do this from a Node server!`
106
+ );
107
+ }
108
+ return secretRequire(module2);
109
+ }
110
+
111
+ // src/gatsby-node.ts
112
+ var PLASMIC_NODE_NAME = "plasmicData";
113
+ var PLASMIC_DATA_TYPE = `
114
+ type ${PLASMIC_NODE_NAME} implements Node {
115
+ name: String!
116
+ displayName: String!
117
+ projectId: String!
118
+ path: String
119
+ isPage: Boolean!
120
+ renderData: JSON!
121
+ }
122
+
123
+ type Query {
124
+ plasmicComponents(componentNames: [String]!): JSON
125
+ plasmicOptions: JSON
126
+ }
127
+ `;
128
+ var SOURCE_WAIT_TIME = 3e3;
129
+ var SOURCE_MAX_WAIT_TIME = 1e4;
130
+ var allPaths = [];
131
+ var sourceNodes = (_0, _1) => __async(void 0, [_0, _1], function* ({ actions, createContentDigest, reporter }, opts) {
132
+ const { createNode, deleteNode } = actions;
133
+ let allComponents = [];
134
+ const refreshData = () => __async(void 0, null, function* () {
135
+ reporter.info(`[Plasmic Loader] - Creating nodes`);
136
+ const PLASMIC = (0, import_loader_react.initPlasmicLoader)({
137
+ projects: opts.projects,
138
+ preview: opts.preview,
139
+ host: opts.host,
140
+ platform: "gatsby"
141
+ });
142
+ const components = yield PLASMIC.fetchComponents();
143
+ for (const component of allComponents) {
144
+ const hasComponent = components.some((c) => c.name === component.name);
145
+ if (!hasComponent) {
146
+ deleteNode(component);
147
+ reporter.verbose(`[Plasmic Loader] - Deleted node ${component.name}`);
148
+ }
149
+ }
150
+ allComponents = [];
151
+ for (const component of components) {
152
+ const renderData = yield PLASMIC.fetchComponentData({
153
+ name: component.name,
154
+ projectId: component.projectId
155
+ });
156
+ const curComponent = __spreadProps(__spreadValues({}, component), {
157
+ renderData
158
+ });
159
+ const componentMeta = {
160
+ // We use the same id as curComponent.id since loader-react might
161
+ // expect the id to match plasmic component uuid.
162
+ // id: getNodeId(component.projectId, component.name),
163
+ parent: null,
164
+ children: [],
165
+ internal: {
166
+ type: PLASMIC_NODE_NAME,
167
+ contentDigest: createContentDigest(curComponent)
168
+ }
169
+ };
170
+ const componentNode = Object.assign({}, curComponent, componentMeta);
171
+ createNode(componentNode);
172
+ reporter.verbose(
173
+ `[Plasmic Loader] - Created component node ${component.name}`
174
+ );
175
+ allComponents.push(componentNode);
176
+ }
177
+ });
178
+ if (process.env.NODE_ENV !== "production") {
179
+ const debounce = serverRequire("lodash/debounce");
180
+ const triggerSourcing = debounce(refreshData, SOURCE_WAIT_TIME, {
181
+ maxWait: SOURCE_MAX_WAIT_TIME
182
+ });
183
+ try {
184
+ const PlasmicRemoteChangeWatcher = serverRequire("@plasmicapp/watcher").PlasmicRemoteChangeWatcher;
185
+ const watcher = new PlasmicRemoteChangeWatcher({
186
+ projects: opts.projects,
187
+ host: opts.host
188
+ });
189
+ watcher.subscribe({
190
+ onUpdate: () => {
191
+ if (opts.preview) {
192
+ triggerSourcing();
193
+ }
194
+ },
195
+ onPublish: () => {
196
+ if (!opts.preview) {
197
+ triggerSourcing();
198
+ }
199
+ }
200
+ });
201
+ } catch (e) {
202
+ console.warn("Couldn't subscribe to Plasmic changes", e);
203
+ }
204
+ }
205
+ yield refreshData();
206
+ });
207
+ function getAllNodes(nodeModel, type) {
208
+ return __async(this, null, function* () {
209
+ try {
210
+ const { entries } = yield nodeModel.findAll({ type });
211
+ return Array.from(entries);
212
+ } catch (_) {
213
+ return nodeModel.getAllNodes({ type });
214
+ }
215
+ });
216
+ }
217
+ var createResolvers = ({ createResolvers: createResolvers2 }, opts) => {
218
+ createResolvers2({
219
+ Query: {
220
+ plasmicComponents: {
221
+ type: "JSON",
222
+ args: {
223
+ componentNames: `[String]!`
224
+ },
225
+ resolve(_source, args, context, _info) {
226
+ return __async(this, null, function* () {
227
+ var _a2;
228
+ const { componentNames } = args;
229
+ const components = yield getAllNodes(
230
+ context.nodeModel,
231
+ PLASMIC_NODE_NAME
232
+ );
233
+ const bundles = [];
234
+ const compMetas = [];
235
+ for (const component of components) {
236
+ if (componentNames.includes(component.name) || componentNames.includes(component.displayName) || !!(component.path && componentNames.some(
237
+ (lookup) => (0, import_loader_react.matchesPagePath)(component.path, lookup)
238
+ ))) {
239
+ const bundle = (_a2 = component.renderData) == null ? void 0 : _a2.bundle;
240
+ if (bundle) {
241
+ bundles.push(bundle);
242
+ let meta = component;
243
+ if (component.path) {
244
+ for (const lookup of componentNames) {
245
+ const match = (0, import_loader_react.matchesPagePath)(component.path, lookup);
246
+ if (match) {
247
+ meta = __spreadProps(__spreadValues({}, meta), { params: match.params });
248
+ break;
249
+ }
250
+ }
251
+ }
252
+ compMetas.push(meta);
253
+ }
254
+ }
255
+ }
256
+ const renderData = (0, import_loader_react.convertBundlesToComponentRenderData)(
257
+ bundles,
258
+ compMetas
259
+ );
260
+ renderData == null ? void 0 : renderData.entryCompMetas.sort(
261
+ (meta1, meta2) => (
262
+ // We sort the matched component metas by the number of path params, so
263
+ // if there are two pages `/products/foo` and `/products/[slug]`,
264
+ // the first one will have higher precedence.
265
+ Array.from(Object.keys(meta1.params || {})).length - Array.from(Object.keys(meta2.params || {})).length
266
+ )
267
+ );
268
+ return renderData;
269
+ });
270
+ }
271
+ },
272
+ plasmicOptions: {
273
+ type: "JSON",
274
+ resolve() {
275
+ return {
276
+ projects: opts.projects,
277
+ preview: opts.preview,
278
+ host: opts.host
279
+ };
280
+ }
281
+ }
282
+ }
283
+ });
284
+ };
285
+ var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter }, opts) {
286
+ var _a;
287
+ const { defaultPlasmicPage } = opts;
288
+ const ignorePaths = opts.ignorePaths || [];
289
+ if (defaultPlasmicPage) {
290
+ reporter.info(`[Plasmic Loader] - Creating pages`);
291
+ const { createPage, deletePage } = actions;
292
+ const result = yield graphql(`
293
+ query {
294
+ allPlasmicData(filter: { isPage: { eq: true } }) {
295
+ nodes {
296
+ path
297
+ }
298
+ }
299
+ }
300
+ `);
301
+ const pages = (_a = result.data) == null ? void 0 : _a.allPlasmicData.nodes;
302
+ if (!pages) {
303
+ reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);
304
+ return;
305
+ }
306
+ for (const path of allPaths) {
307
+ deletePage({
308
+ path,
309
+ component: defaultPlasmicPage
310
+ });
311
+ reporter.verbose(`[Plasmic Loader] - Deleted page ${path}`);
312
+ }
313
+ allPaths = [];
314
+ for (const page of pages) {
315
+ const path = page.path;
316
+ if (ignorePaths.includes(path) || ignorePaths.includes(path + "/")) {
317
+ continue;
318
+ }
319
+ allPaths.push(page.path);
320
+ createPage({
321
+ path: page.path,
322
+ component: defaultPlasmicPage,
323
+ context: {}
324
+ });
325
+ reporter.verbose(`[Plasmic Loader] - Created page ${page.path}`);
326
+ }
327
+ }
328
+ });
329
+
330
+ // src/gatsby-ssr.ts
331
+ var import_loader_react2 = require("@plasmicapp/loader-react");
332
+ var import_server = require("react-dom/server");
333
+ var loadedProjects = /* @__PURE__ */ new Set();
334
+ function fetchServerFiles(opts) {
335
+ return __async(this, null, function* () {
336
+ if ((opts == null ? void 0 : opts.projects) && Array.isArray(opts.projects) && opts.projects.every((p) => !!p.token && !!p.id)) {
337
+ const projectKeys = opts.projects.map(
338
+ (project) => `${project.id}@${project.version}:${project.token}`
339
+ );
340
+ if (projectKeys.some((key) => !loadedProjects.has(key))) {
341
+ loadedProjects.clear();
342
+ const PLASMIC = (0, import_loader_react2.initPlasmicLoader)({
343
+ projects: opts.projects,
344
+ preview: opts.preview,
345
+ host: opts.host,
346
+ platform: "gatsby"
347
+ });
348
+ const components = yield PLASMIC.fetchComponents();
349
+ yield PLASMIC.maybeFetchComponentData(...components);
350
+ projectKeys.forEach((key) => loadedProjects.add(key));
351
+ }
352
+ }
353
+ });
354
+ }
355
+ var replaceRenderer = (_0, _1) => __async(void 0, [_0, _1], function* ({ bodyComponent, replaceBodyHTMLString }, opts) {
356
+ yield fetchServerFiles(opts);
357
+ replaceBodyHTMLString((0, import_server.renderToString)(bodyComponent));
358
+ });
359
+
360
+ // src/loader.ts
361
+ var import_loader_react3 = require("@plasmicapp/loader-react");
362
+ var Gatsby = __toESM(require("gatsby"));
363
+ function initPlasmicLoader3(opts) {
364
+ const loader = (0, import_loader_react3.initPlasmicLoader)(__spreadProps(__spreadValues({
365
+ onClientSideFetch: "warn"
366
+ }, opts), {
367
+ platform: "gatsby"
368
+ }));
369
+ loader.registerModules({
370
+ gatsby: Gatsby
371
+ });
372
+ return loader;
373
+ }
374
+ //# sourceMappingURL=index.js.map