@timber-js/app 0.2.0-alpha.169 → 0.2.0-alpha.170
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/LICENSE +8 -0
- package/dist/_chunks/{canonicalize-P41GR6tY.js → canonicalize-Du3o_ptW.js} +30 -12
- package/dist/_chunks/canonicalize-Du3o_ptW.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync-B73L6pMq.js → cli-schema-sync-B5FDplGI.js} +55 -7
- package/dist/_chunks/cli-schema-sync-B5FDplGI.js.map +1 -0
- package/dist/_chunks/{segment-classify-CDDRVKs7.js → segment-classify-Byy425ng.js} +57 -18
- package/dist/_chunks/segment-classify-Byy425ng.js.map +1 -0
- package/dist/_chunks/{walkers-CoOC8Hga.js → walkers-DCoE-LJf.js} +23 -9
- package/dist/_chunks/walkers-DCoE-LJf.js.map +1 -0
- package/dist/cli-schema-sync.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/client/index.js +5 -2
- package/dist/client/index.js.map +1 -1
- package/dist/client/link.d.ts.map +1 -1
- package/dist/index.js +26 -4
- package/dist/index.js.map +1 -1
- package/dist/routing/index.js +3 -3
- package/dist/routing/link-codegen.d.ts.map +1 -1
- package/dist/routing/manifest-codegen.d.ts.map +1 -1
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/schema-validation.d.ts.map +1 -1
- package/dist/routing/segment-classify.d.ts +8 -2
- package/dist/routing/segment-classify.d.ts.map +1 -1
- package/dist/routing/types.d.ts +4 -0
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/server/internal.js +13 -4
- package/dist/server/internal.js.map +1 -1
- package/dist/server/metadata-routes.d.ts +24 -4
- package/dist/server/metadata-routes.d.ts.map +1 -1
- package/dist/server/pipeline-interception.d.ts.map +1 -1
- package/dist/server/pipeline-phases.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/route-matcher.d.ts.map +1 -1
- package/dist/server/sitemap-generator.d.ts.map +1 -1
- package/docs/more/01-advanced-routing.mdx +35 -1
- package/docs/more/04-metadata-and-fonts.mdx +2 -2
- package/package.json +7 -8
- package/src/cli-schema-sync.ts +15 -2
- package/src/cli.ts +0 -0
- package/src/client/link.tsx +4 -1
- package/src/routing/codegen.ts +13 -1
- package/src/routing/link-codegen.ts +15 -12
- package/src/routing/manifest-codegen.ts +6 -0
- package/src/routing/scanner.ts +85 -3
- package/src/routing/schema-validation.ts +7 -1
- package/src/routing/segment-classify.ts +49 -14
- package/src/routing/types.ts +4 -0
- package/src/server/metadata-routes.ts +71 -10
- package/src/server/pipeline-interception.ts +14 -1
- package/src/server/pipeline-phases.ts +7 -1
- package/src/server/route-element-builder.ts +12 -3
- package/src/server/route-matcher.ts +16 -2
- package/src/server/sitemap-generator.ts +5 -4
- package/src/server/slot-resolver.ts +7 -1
- package/src/server/tree-match.ts +46 -4
- package/dist/_chunks/canonicalize-P41GR6tY.js.map +0 -1
- package/dist/_chunks/cli-schema-sync-B73L6pMq.js.map +0 -1
- package/dist/_chunks/segment-classify-CDDRVKs7.js.map +0 -1
- package/dist/_chunks/walkers-CoOC8Hga.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/client/link.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EACL,sBAAsB,IAAI,gBAAgB,EAC1C,cAAc,EACf,MAAM,8BAA8B,CAAC;AA6BtC,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC1F,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC;IACvC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAID;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC;AA2BF,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG;IAAE,QAAQ,IAAI,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEjG,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AACF,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,KAAK,oBAAoB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;AAE3E;;;GAGG;AACH,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAGD,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC3C,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAI5C;;;;;;;;GAQG;AACH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAE3D;
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/client/link.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as __esmMin, o as __exportAll, s as __toCommonJS } from "./_chunks/dist-BA3u1z3W.js";
|
|
2
|
-
import { c as isDynamicMetadataExtension, l as isMetadataRouteServePath, r as canonicalize } from "./_chunks/canonicalize-
|
|
2
|
+
import { c as isDynamicMetadataExtension, l as isMetadataRouteServePath, r as canonicalize } from "./_chunks/canonicalize-Du3o_ptW.js";
|
|
3
3
|
import { h as swallow } from "./_chunks/logger-AWfuX-KJ.js";
|
|
4
|
-
import { i as scanRoutes } from "./_chunks/cli-schema-sync-
|
|
5
|
-
import { a as generateRouteMap, c as fileHasDirective, d as getPrerenderExport, i as validateSchemaAgainstRoutes, l as fileHasExport, n as collectInterceptionRewrites, o as fileHasAnyExport, s as fileHasDefaultExport, t as collectLeafRoutes, u as fileHasStarExport } from "./_chunks/walkers-
|
|
4
|
+
import { i as scanRoutes } from "./_chunks/cli-schema-sync-B5FDplGI.js";
|
|
5
|
+
import { a as generateRouteMap, c as fileHasDirective, d as getPrerenderExport, i as validateSchemaAgainstRoutes, l as fileHasExport, n as collectInterceptionRewrites, o as fileHasAnyExport, s as fileHasDefaultExport, t as collectLeafRoutes, u as fileHasStarExport } from "./_chunks/walkers-DCoE-LJf.js";
|
|
6
6
|
import { a as resolveAppDir, c as createNoopTimer, n as loadTimberConfigFile, o as resolveBuildDir, r as mergeFileConfig, s as resolveClientJavascript, t as createPluginContext } from "./_chunks/plugin-context---kTF5v8.js";
|
|
7
7
|
import { t as fnv1aHash } from "./_chunks/fast-hash-D6hIVt1Y.js";
|
|
8
8
|
import { t as formatSize } from "./_chunks/format-CfwjgPz9.js";
|
|
@@ -1523,6 +1523,10 @@ function collectEffectiveChildren(node, groupChain = []) {
|
|
|
1523
1523
|
function isTerminal(node) {
|
|
1524
1524
|
return !!(node.page || node.route);
|
|
1525
1525
|
}
|
|
1526
|
+
/** Combined affix length for specificity ordering. */
|
|
1527
|
+
function affixLength(node) {
|
|
1528
|
+
return (node.paramPrefix?.length ?? 0) + (node.paramSuffix?.length ?? 0);
|
|
1529
|
+
}
|
|
1526
1530
|
/**
|
|
1527
1531
|
* Recursive depth-first matcher with backtracking.
|
|
1528
1532
|
*
|
|
@@ -1551,7 +1555,23 @@ function matchNode(node, parts, index, chain, params, requireTerminal) {
|
|
|
1551
1555
|
if (matchNode(child, parts, index + 1, chain, params, requireTerminal)) return true;
|
|
1552
1556
|
chain.length -= groupChain.length;
|
|
1553
1557
|
}
|
|
1554
|
-
|
|
1558
|
+
const affixed = effective.filter(({ child }) => child.segmentType === "dynamic" && child.paramName && (child.paramPrefix || child.paramSuffix));
|
|
1559
|
+
affixed.sort((a, b) => affixLength(b.child) - affixLength(a.child));
|
|
1560
|
+
for (const { child, groupChain } of affixed) {
|
|
1561
|
+
const prefix = child.paramPrefix ?? "";
|
|
1562
|
+
const suffix = child.paramSuffix ?? "";
|
|
1563
|
+
if (part.length > prefix.length + suffix.length && (!prefix || part.startsWith(prefix)) && (!suffix || part.endsWith(suffix))) {
|
|
1564
|
+
const value = part.slice(prefix.length, part.length - (suffix.length || 0));
|
|
1565
|
+
chain.push(...groupChain);
|
|
1566
|
+
const prev = params[child.paramName];
|
|
1567
|
+
params[child.paramName] = value;
|
|
1568
|
+
if (matchNode(child, parts, index + 1, chain, params, requireTerminal)) return true;
|
|
1569
|
+
chain.length -= groupChain.length;
|
|
1570
|
+
if (prev !== void 0) params[child.paramName] = prev;
|
|
1571
|
+
else delete params[child.paramName];
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
for (const { child, groupChain } of effective) if (child.segmentType === "dynamic" && child.paramName && !child.paramPrefix && !child.paramSuffix) {
|
|
1555
1575
|
chain.push(...groupChain);
|
|
1556
1576
|
const prev = params[child.paramName];
|
|
1557
1577
|
params[child.paramName] = part;
|
|
@@ -2418,6 +2438,8 @@ function generateManifestModule(tree, viteRoot) {
|
|
|
2418
2438
|
parts.push(`${nextIndent}segmentType: ${JSON.stringify(node.segmentType)},`);
|
|
2419
2439
|
parts.push(`${nextIndent}urlPath: ${JSON.stringify(node.urlPath)},`);
|
|
2420
2440
|
if (node.paramName) parts.push(`${nextIndent}paramName: ${JSON.stringify(node.paramName)},`);
|
|
2441
|
+
if (node.paramPrefix) parts.push(`${nextIndent}paramPrefix: ${JSON.stringify(node.paramPrefix)},`);
|
|
2442
|
+
if (node.paramSuffix) parts.push(`${nextIndent}paramSuffix: ${JSON.stringify(node.paramSuffix)},`);
|
|
2421
2443
|
if (node.interceptionMarker) parts.push(`${nextIndent}interceptionMarker: ${JSON.stringify(node.interceptionMarker)},`);
|
|
2422
2444
|
if (node.interceptedSegmentName) parts.push(`${nextIndent}interceptedSegmentName: ${JSON.stringify(node.interceptedSegmentName)},`);
|
|
2423
2445
|
for (const key of SINGLE_FILE_KEYS) {
|