@bagelink/blox 1.15.585 → 1.15.591
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -22
- package/dist/CmsPageView.vue.d.ts.map +1 -1
- package/dist/{PreviewApp-D208UMZs.js → PreviewApp-BagepqPk.js} +1 -1
- package/dist/{PreviewApp-DNMYw1AS.cjs → PreviewApp-HVipxMQ3.cjs} +1 -1
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-Dm0SmjEr.cjs → PreviewApp.vue_vue_type_style_index_0_lang-C6e-tDzD.cjs} +6 -6
- package/dist/{PreviewApp.vue_vue_type_style_index_0_lang-l6QisbG-.js → PreviewApp.vue_vue_type_style_index_0_lang-Dl3bKQTA.js} +1 -1
- package/dist/api/index.d.ts +24 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/{routes-DDiQDksF.js → appRuntime-B6yWkH3M.js} +280 -82
- package/dist/{routes-DOcek9fP.cjs → appRuntime-D1Z3fX-G.cjs} +237 -39
- package/dist/appRuntime.d.ts +26 -0
- package/dist/appRuntime.d.ts.map +1 -0
- package/dist/composables/useLocale.d.ts +10 -3
- package/dist/composables/useLocale.d.ts.map +1 -1
- package/dist/content/routes.d.ts +4 -2
- package/dist/content/routes.d.ts.map +1 -1
- package/dist/content/useContentSeo.d.ts.map +1 -1
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/createBloxApp.d.ts +9 -19
- package/dist/createBloxApp.d.ts.map +1 -1
- package/dist/data/useData.d.ts.map +1 -1
- package/dist/index.cjs +91 -111
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +64 -84
- package/dist/{shard-runner-Bc4gTl71.js → shard-runner-DauYjwvg.js} +2 -2
- package/dist/{shard-runner-ZAwqteYY.cjs → shard-runner-xIPqGX-Q.cjs} +2 -2
- package/dist/ssg/cli.cjs +2 -4
- package/dist/ssg/cli.mjs +2 -4
- package/dist/ssg/client.cjs +0 -73
- package/dist/ssg/client.d.ts +1 -3
- package/dist/ssg/client.d.ts.map +1 -1
- package/dist/ssg/client.mjs +1 -74
- package/dist/ssg/constants.d.ts +0 -4
- package/dist/ssg/constants.d.ts.map +1 -1
- package/dist/ssg/createSSREntry.d.ts.map +1 -1
- package/dist/ssg/index.cjs +26 -47
- package/dist/ssg/index.d.ts +1 -3
- package/dist/ssg/index.d.ts.map +1 -1
- package/dist/ssg/index.mjs +24 -45
- package/dist/ssg/prerender.d.ts +1 -5
- package/dist/ssg/prerender.d.ts.map +1 -1
- package/dist/ssg/render-resolved-page.d.ts +0 -2
- package/dist/ssg/render-resolved-page.d.ts.map +1 -1
- package/dist/{validate-output-DRCseorw.js → validate-output-B56PuxEM.js} +0 -2
- package/dist/{validate-output-DlHgDBoV.cjs → validate-output-CRfMSrpx.cjs} +0 -2
- package/dist/vite-plugin.cjs +3 -64
- package/dist/vite-plugin.d.ts +0 -8
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.mjs +3 -64
- package/package.json +1 -1
- package/dist/ssg/collection-cache.d.ts +0 -53
- package/dist/ssg/collection-cache.d.ts.map +0 -1
- package/dist/ssg/state-cache.d.ts +0 -21
- package/dist/ssg/state-cache.d.ts.map +0 -1
package/dist/ssg/prerender.d.ts
CHANGED
|
@@ -34,8 +34,6 @@ export interface PrerenderOptions {
|
|
|
34
34
|
websiteId?: string;
|
|
35
35
|
/** Redirects to write as _redirects (Netlify). */
|
|
36
36
|
redirects?: RedirectEntry[];
|
|
37
|
-
/** Pre-fetched datastore collections keyed by "store/collection". */
|
|
38
|
-
collections?: Record<string, unknown[]>;
|
|
39
37
|
/** LLM artifacts config (llms.txt, llms-full.txt, per-page JSON-LD). */
|
|
40
38
|
llm?: LlmArtifactsConfig;
|
|
41
39
|
}
|
|
@@ -46,8 +44,6 @@ export interface RenderContext {
|
|
|
46
44
|
website?: WebsiteRead | null;
|
|
47
45
|
/** Resolved website ID for client embedding. */
|
|
48
46
|
websiteId?: string;
|
|
49
|
-
/** Pre-fetched datastore collections keyed by "store/collection". */
|
|
50
|
-
collections?: Record<string, unknown[]>;
|
|
51
47
|
/**
|
|
52
48
|
* Pre-resolved page data keyed by render URL. When the prerender producer has
|
|
53
49
|
* already fetched a URL's `/resolve-path` result, the SSR entry reads it from
|
|
@@ -102,7 +98,7 @@ export declare function prerender({ root, clientOutDir, serverEntry, paths, craw
|
|
|
102
98
|
* sharded runner divides a global budget by the shard count. 0 disables
|
|
103
99
|
* prefetch (render resolves inline). Default 8.
|
|
104
100
|
*/
|
|
105
|
-
resolvePrefetchConcurrency, appPaths, includeRoot, routePartsFile, mode, website, websiteId, redirects,
|
|
101
|
+
resolvePrefetchConcurrency, appPaths, includeRoot, routePartsFile, mode, website, websiteId, redirects, llm, }?: PrerenderOptions): Promise<PrerenderResult>;
|
|
106
102
|
export declare function injectIntoTemplate(template: string, head: string, appHtml: string, fontPreloads: string, htmlAttrs?: string, teleports?: Record<string, string>): string;
|
|
107
103
|
export declare function injectTeleports(html: string, teleports: Record<string, string>): string;
|
|
108
104
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAgBvE,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;AAEhE,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,
|
|
1
|
+
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/ssg/prerender.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,8 +46,6 @@ export declare function renderBloxSsgPage<TApp>(options: {
|
|
|
46
46
|
website?: WebsiteRead | null;
|
|
47
47
|
/** Resolved website ID — embedded so client skips GET /blox/websites. */
|
|
48
48
|
websiteId?: string;
|
|
49
|
-
/** Pre-fetched datastore collections — embedded for zero-fetch hydration. */
|
|
50
|
-
collections?: Record<string, unknown[]>;
|
|
51
49
|
/** LLM artifacts config — gates JSON-LD injection + llms.txt text capture. */
|
|
52
50
|
llm?: LlmArtifactsConfig;
|
|
53
51
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,
|
|
1
|
+
{"version":3,"file":"render-resolved-page.d.ts","sourceRoot":"","sources":["../../src/ssg/render-resolved-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAIpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGvE,UAAU,cAAc;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,eAAe,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,OAAO,GAAG,IAAI,EAC5B,QAAQ,EAAE,MAAM,KACZ;QAAE,GAAG,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAA;IAC9E,8EAA8E;IAC9E,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrE,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,WAAW,CAAA;IACxD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,kBAAkB,CAAA;CACxB,GAAG,OAAO,CAAC;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAClC,GAAG,CAAC,EAAE,YAAY,CAAA;CAClB,CAAC,CAmHD;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C"}
|
|
@@ -853,7 +853,6 @@ async function prerender({
|
|
|
853
853
|
website = null,
|
|
854
854
|
websiteId = "",
|
|
855
855
|
redirects = [],
|
|
856
|
-
collections = {},
|
|
857
856
|
llm = {}
|
|
858
857
|
} = {}) {
|
|
859
858
|
var _a, _b, _c;
|
|
@@ -958,7 +957,6 @@ async function prerender({
|
|
|
958
957
|
template,
|
|
959
958
|
website,
|
|
960
959
|
websiteId,
|
|
961
|
-
collections,
|
|
962
960
|
resolveCache,
|
|
963
961
|
llm
|
|
964
962
|
});
|
|
@@ -876,7 +876,6 @@ async function prerender({
|
|
|
876
876
|
website = null,
|
|
877
877
|
websiteId = "",
|
|
878
878
|
redirects = [],
|
|
879
|
-
collections = {},
|
|
880
879
|
llm = {}
|
|
881
880
|
} = {}) {
|
|
882
881
|
var _a, _b, _c;
|
|
@@ -981,7 +980,6 @@ async function prerender({
|
|
|
981
980
|
template,
|
|
982
981
|
website,
|
|
983
982
|
websiteId,
|
|
984
|
-
collections,
|
|
985
983
|
resolveCache,
|
|
986
984
|
llm
|
|
987
985
|
});
|
package/dist/vite-plugin.cjs
CHANGED
|
@@ -44,9 +44,10 @@ function bloxPlugin(options = {}) {
|
|
|
44
44
|
const vuePkgJson = req.resolve("vue/package.json");
|
|
45
45
|
const vueDir = path.dirname(vuePkgJson);
|
|
46
46
|
const vueEntry = path.join(vueDir, "dist", "vue.runtime.esm-bundler.js");
|
|
47
|
+
const rendererDir = path.dirname(req.resolve("@vue/server-renderer/package.json"));
|
|
47
48
|
return [
|
|
48
|
-
{ find: "vue/server-renderer", replacement: path.join(
|
|
49
|
-
{ find: "@vue/server-renderer", replacement:
|
|
49
|
+
{ find: "vue/server-renderer", replacement: path.join(rendererDir, "dist", "server-renderer.esm-bundler.js") },
|
|
50
|
+
{ find: "@vue/server-renderer", replacement: path.join(rendererDir, "dist", "server-renderer.esm-bundler.js") },
|
|
50
51
|
{ find: "vue", replacement: vueEntry }
|
|
51
52
|
];
|
|
52
53
|
} catch {
|
|
@@ -118,68 +119,6 @@ function bloxPlugin(options = {}) {
|
|
|
118
119
|
}
|
|
119
120
|
});
|
|
120
121
|
}
|
|
121
|
-
if (options.autoCollections ?? false) {
|
|
122
|
-
const discoveredCollections = /* @__PURE__ */ new Map();
|
|
123
|
-
const VIRTUAL_ID = "virtual:blox-collections";
|
|
124
|
-
const RESOLVED_VIRTUAL_ID = `\0${VIRTUAL_ID}`;
|
|
125
|
-
plugins.push({
|
|
126
|
-
name: "vite-plugin-blox-collections",
|
|
127
|
-
enforce: "pre",
|
|
128
|
-
resolveId(id) {
|
|
129
|
-
if (id === VIRTUAL_ID) return RESOLVED_VIRTUAL_ID;
|
|
130
|
-
},
|
|
131
|
-
load(id) {
|
|
132
|
-
if (id === RESOLVED_VIRTUAL_ID) {
|
|
133
|
-
const entries = [...discoveredCollections.values()];
|
|
134
|
-
return `export default ${JSON.stringify(entries)}`;
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
transform(code, id) {
|
|
138
|
-
if (!id.endsWith(".vue")) return;
|
|
139
|
-
const namePatterns = [
|
|
140
|
-
/collectionName\s*:\s*['"]([^'"]+)['"]/g,
|
|
141
|
-
/collection_name\s*:\s*['"]([^'"]+)['"]/g,
|
|
142
|
-
/collection\s*:\s*['"]([^'"]+)['"]/g
|
|
143
|
-
];
|
|
144
|
-
const storeRe = /store\s*:\s*['"]([^'"]+)['"]/g;
|
|
145
|
-
const stores = [];
|
|
146
|
-
let storeMatch;
|
|
147
|
-
while ((storeMatch = storeRe.exec(code)) !== null) {
|
|
148
|
-
stores.push(storeMatch[1]);
|
|
149
|
-
}
|
|
150
|
-
const listItemsRe = /listItems\s*\(\s*['"]([^'"]+)['"]/g;
|
|
151
|
-
let listMatch;
|
|
152
|
-
while ((listMatch = listItemsRe.exec(code)) !== null) {
|
|
153
|
-
const collectionName = listMatch[1];
|
|
154
|
-
const key = `*/${collectionName}`;
|
|
155
|
-
if (!discoveredCollections.has(key)) {
|
|
156
|
-
discoveredCollections.set(key, { store: "*", collection: collectionName });
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
for (const pattern of namePatterns) {
|
|
160
|
-
let match;
|
|
161
|
-
while ((match = pattern.exec(code)) !== null) {
|
|
162
|
-
const collection = match[1];
|
|
163
|
-
if (["name", "label", "icon", "description", "type"].includes(collection)) continue;
|
|
164
|
-
const store = stores[0] ?? "*";
|
|
165
|
-
const key = `${store}/${collection}`;
|
|
166
|
-
if (!discoveredCollections.has(key)) {
|
|
167
|
-
discoveredCollections.set(key, { store, collection });
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
generateBundle() {
|
|
173
|
-
if (discoveredCollections.size === 0) return;
|
|
174
|
-
const entries = [...discoveredCollections.values()];
|
|
175
|
-
this.emitFile({
|
|
176
|
-
type: "asset",
|
|
177
|
-
fileName: ".blox-collections.json",
|
|
178
|
-
source: JSON.stringify(entries, null, 2)
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
122
|
if (options.emitManifest ?? false) {
|
|
184
123
|
const glob = options.manifestGlob ?? "./src/components/blocks/*.vue";
|
|
185
124
|
const manifestGlob = glob.startsWith("/") ? glob : `/${glob.replace(/^\.\//, "")}`;
|
package/dist/vite-plugin.d.ts
CHANGED
|
@@ -7,14 +7,6 @@ export interface BloxPluginOptions {
|
|
|
7
7
|
* @default false
|
|
8
8
|
*/
|
|
9
9
|
ssr?: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* Enable collection auto-discovery from block source files.
|
|
12
|
-
* When true, scans `.vue` files for datastore collection references
|
|
13
|
-
* and emits a `virtual:blox-collections` module and a
|
|
14
|
-
* `.blox-collections.json` manifest in the output directory.
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
autoCollections?: boolean;
|
|
18
10
|
/**
|
|
19
11
|
* Emit a `.blox-manifest.json` describing every registered block
|
|
20
12
|
* (type, label, icon, description, props JSON Schema, defaults).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AAM9C,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAA;AAM9C,MAAM,WAAW,iBAAiB;IACjC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,EAAE,CAgdpE"}
|
package/dist/vite-plugin.mjs
CHANGED
|
@@ -20,9 +20,10 @@ function bloxPlugin(options = {}) {
|
|
|
20
20
|
const vuePkgJson = req.resolve("vue/package.json");
|
|
21
21
|
const vueDir = dirname(vuePkgJson);
|
|
22
22
|
const vueEntry = join(vueDir, "dist", "vue.runtime.esm-bundler.js");
|
|
23
|
+
const rendererDir = dirname(req.resolve("@vue/server-renderer/package.json"));
|
|
23
24
|
return [
|
|
24
|
-
{ find: "vue/server-renderer", replacement: join(
|
|
25
|
-
{ find: "@vue/server-renderer", replacement:
|
|
25
|
+
{ find: "vue/server-renderer", replacement: join(rendererDir, "dist", "server-renderer.esm-bundler.js") },
|
|
26
|
+
{ find: "@vue/server-renderer", replacement: join(rendererDir, "dist", "server-renderer.esm-bundler.js") },
|
|
26
27
|
{ find: "vue", replacement: vueEntry }
|
|
27
28
|
];
|
|
28
29
|
} catch {
|
|
@@ -94,68 +95,6 @@ function bloxPlugin(options = {}) {
|
|
|
94
95
|
}
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
|
-
if (options.autoCollections ?? false) {
|
|
98
|
-
const discoveredCollections = /* @__PURE__ */ new Map();
|
|
99
|
-
const VIRTUAL_ID = "virtual:blox-collections";
|
|
100
|
-
const RESOLVED_VIRTUAL_ID = `\0${VIRTUAL_ID}`;
|
|
101
|
-
plugins.push({
|
|
102
|
-
name: "vite-plugin-blox-collections",
|
|
103
|
-
enforce: "pre",
|
|
104
|
-
resolveId(id) {
|
|
105
|
-
if (id === VIRTUAL_ID) return RESOLVED_VIRTUAL_ID;
|
|
106
|
-
},
|
|
107
|
-
load(id) {
|
|
108
|
-
if (id === RESOLVED_VIRTUAL_ID) {
|
|
109
|
-
const entries = [...discoveredCollections.values()];
|
|
110
|
-
return `export default ${JSON.stringify(entries)}`;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
transform(code, id) {
|
|
114
|
-
if (!id.endsWith(".vue")) return;
|
|
115
|
-
const namePatterns = [
|
|
116
|
-
/collectionName\s*:\s*['"]([^'"]+)['"]/g,
|
|
117
|
-
/collection_name\s*:\s*['"]([^'"]+)['"]/g,
|
|
118
|
-
/collection\s*:\s*['"]([^'"]+)['"]/g
|
|
119
|
-
];
|
|
120
|
-
const storeRe = /store\s*:\s*['"]([^'"]+)['"]/g;
|
|
121
|
-
const stores = [];
|
|
122
|
-
let storeMatch;
|
|
123
|
-
while ((storeMatch = storeRe.exec(code)) !== null) {
|
|
124
|
-
stores.push(storeMatch[1]);
|
|
125
|
-
}
|
|
126
|
-
const listItemsRe = /listItems\s*\(\s*['"]([^'"]+)['"]/g;
|
|
127
|
-
let listMatch;
|
|
128
|
-
while ((listMatch = listItemsRe.exec(code)) !== null) {
|
|
129
|
-
const collectionName = listMatch[1];
|
|
130
|
-
const key = `*/${collectionName}`;
|
|
131
|
-
if (!discoveredCollections.has(key)) {
|
|
132
|
-
discoveredCollections.set(key, { store: "*", collection: collectionName });
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
for (const pattern of namePatterns) {
|
|
136
|
-
let match;
|
|
137
|
-
while ((match = pattern.exec(code)) !== null) {
|
|
138
|
-
const collection = match[1];
|
|
139
|
-
if (["name", "label", "icon", "description", "type"].includes(collection)) continue;
|
|
140
|
-
const store = stores[0] ?? "*";
|
|
141
|
-
const key = `${store}/${collection}`;
|
|
142
|
-
if (!discoveredCollections.has(key)) {
|
|
143
|
-
discoveredCollections.set(key, { store, collection });
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
generateBundle() {
|
|
149
|
-
if (discoveredCollections.size === 0) return;
|
|
150
|
-
const entries = [...discoveredCollections.values()];
|
|
151
|
-
this.emitFile({
|
|
152
|
-
type: "asset",
|
|
153
|
-
fileName: ".blox-collections.json",
|
|
154
|
-
source: JSON.stringify(entries, null, 2)
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
98
|
if (options.emitManifest ?? false) {
|
|
160
99
|
const glob = options.manifestGlob ?? "./src/components/blocks/*.vue";
|
|
161
100
|
const manifestGlob = glob.startsWith("/") ? glob : `/${glob.replace(/^\.\//, "")}`;
|
package/package.json
CHANGED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pre-fetched collection cache for zero-fetch client hydration.
|
|
3
|
-
*
|
|
4
|
-
* During SSG, `blox-ssg` embeds pre-fetched datastore collections as
|
|
5
|
-
* `window.__BLOX_COLLECTIONS__ = { "store/collection": [...items] }`.
|
|
6
|
-
*
|
|
7
|
-
* This module provides:
|
|
8
|
-
* 1. `installCollectionCache()` — returns an axios request interceptor
|
|
9
|
-
* that short-circuits matching datastore GET requests with cached data.
|
|
10
|
-
* 2. `getCollectionCache()` — direct access to the cache for manual use.
|
|
11
|
-
*
|
|
12
|
-
* Usage in client entry (main.ts):
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* import { installCollectionCache } from '@bagelink/blox/ssg/client'
|
|
16
|
-
* import { axios } from '@shared/api'
|
|
17
|
-
*
|
|
18
|
-
* const interceptor = installCollectionCache()
|
|
19
|
-
* if (interceptor) axios.interceptors.request.use(interceptor)
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
type CollectionCacheMap = Record<string, unknown[]>;
|
|
23
|
-
/**
|
|
24
|
-
* Get direct access to the pre-fetched collections cache.
|
|
25
|
-
* Returns null if not available (e.g. page wasn't pre-rendered).
|
|
26
|
-
*/
|
|
27
|
-
export declare function getCollectionCache(): CollectionCacheMap | null;
|
|
28
|
-
/**
|
|
29
|
-
* Get the pre-embedded website ID (avoids GET /blox/websites on client).
|
|
30
|
-
* Returns empty string if not available.
|
|
31
|
-
*/
|
|
32
|
-
export declare function getEmbeddedWebsiteId(): string;
|
|
33
|
-
/**
|
|
34
|
-
* Install collection cache and return an axios request interceptor.
|
|
35
|
-
*
|
|
36
|
-
* The interceptor matches `GET /datastore/{store}/collections/{name}` requests
|
|
37
|
-
* and returns the cached data as a fulfilled promise (zero network).
|
|
38
|
-
*
|
|
39
|
-
* Returns `null` if no cache is available (page wasn't pre-rendered).
|
|
40
|
-
*/
|
|
41
|
-
export declare function installCollectionCache(): ((config: AxiosLikeConfig) => AxiosLikeConfig) | null;
|
|
42
|
-
/**
|
|
43
|
-
* Minimal axios config shape — avoids importing axios as a dependency.
|
|
44
|
-
* Only the fields we need for interception.
|
|
45
|
-
*/
|
|
46
|
-
interface AxiosLikeConfig {
|
|
47
|
-
url?: string;
|
|
48
|
-
method?: string;
|
|
49
|
-
adapter?: (config: AxiosLikeConfig) => Promise<unknown>;
|
|
50
|
-
[key: string]: unknown;
|
|
51
|
-
}
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=collection-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"collection-cache.d.ts","sourceRoot":"","sources":["../../src/ssg/collection-cache.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;AAenD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,MAAM,EAAE,eAAe,KAAK,eAAe,CAAC,GAAG,IAAI,CA+B9F;AAED;;;GAGG;AACH,UAAU,eAAe;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client-side fetch interceptor for zero-cost hydration.
|
|
3
|
-
*
|
|
4
|
-
* During SSG, `entry-server` embeds resolved CMS data as
|
|
5
|
-
* `window.__BLOX_STATE__ = { [path]: resolvedData }`.
|
|
6
|
-
*
|
|
7
|
-
* This function patches `window.fetch` so the very first
|
|
8
|
-
* `GET …/resolve-path?path=…` call (made by CmsPageView on mount)
|
|
9
|
-
* returns the pre-fetched data instead of hitting the network.
|
|
10
|
-
*
|
|
11
|
-
* Subsequent navigations (SPA) go through normally.
|
|
12
|
-
*
|
|
13
|
-
* Call once, before app mount, in your client entry:
|
|
14
|
-
*
|
|
15
|
-
* ```ts
|
|
16
|
-
* import { installBloxStateCache } from '@bagelink/blox/ssg'
|
|
17
|
-
* installBloxStateCache()
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
export declare function installBloxStateCache(globalKey?: string): void;
|
|
21
|
-
//# sourceMappingURL=state-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-cache.d.ts","sourceRoot":"","sources":["../../src/ssg/state-cache.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,GAAE,MAA8B,QAoC9E"}
|