@timber-js/app 0.1.0
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/bin/timber.mjs +5 -0
- package/dist/_chunks/error-boundary-dj-WO5uq.js +121 -0
- package/dist/_chunks/error-boundary-dj-WO5uq.js.map +1 -0
- package/dist/_chunks/format-DNt20Kt8.js +163 -0
- package/dist/_chunks/format-DNt20Kt8.js.map +1 -0
- package/dist/_chunks/interception-DIaZN1bF.js +669 -0
- package/dist/_chunks/interception-DIaZN1bF.js.map +1 -0
- package/dist/_chunks/metadata-routes-BDnswgRO.js +141 -0
- package/dist/_chunks/metadata-routes-BDnswgRO.js.map +1 -0
- package/dist/_chunks/registry-DUIpYD_x.js +20 -0
- package/dist/_chunks/registry-DUIpYD_x.js.map +1 -0
- package/dist/_chunks/request-context-D6XHINkR.js +330 -0
- package/dist/_chunks/request-context-D6XHINkR.js.map +1 -0
- package/dist/_chunks/tracing-BtOwb8O6.js +174 -0
- package/dist/_chunks/tracing-BtOwb8O6.js.map +1 -0
- package/dist/_chunks/use-cookie-8ZlA0rr3.js +125 -0
- package/dist/_chunks/use-cookie-8ZlA0rr3.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +92 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -0
- package/dist/adapters/cloudflare.js +188 -0
- package/dist/adapters/cloudflare.js.map +1 -0
- package/dist/adapters/nitro.d.ts +72 -0
- package/dist/adapters/nitro.d.ts.map +1 -0
- package/dist/adapters/nitro.js +217 -0
- package/dist/adapters/nitro.js.map +1 -0
- package/dist/adapters/types.d.ts +53 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/cache/index.d.ts +52 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +283 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/redis-handler.d.ts +45 -0
- package/dist/cache/redis-handler.d.ts.map +1 -0
- package/dist/cache/register-cached-function.d.ts +17 -0
- package/dist/cache/register-cached-function.d.ts.map +1 -0
- package/dist/cache/singleflight.d.ts +11 -0
- package/dist/cache/singleflight.d.ts.map +1 -0
- package/dist/cache/stable-stringify.d.ts +7 -0
- package/dist/cache/stable-stringify.d.ts.map +1 -0
- package/dist/cache/timber-cache.d.ts +21 -0
- package/dist/cache/timber-cache.d.ts.map +1 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +135 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/browser-entry.d.ts +22 -0
- package/dist/client/browser-entry.d.ts.map +1 -0
- package/dist/client/error-boundary.d.ts +42 -0
- package/dist/client/error-boundary.d.ts.map +1 -0
- package/dist/client/form.d.ts +115 -0
- package/dist/client/form.d.ts.map +1 -0
- package/dist/client/head.d.ts +16 -0
- package/dist/client/head.d.ts.map +1 -0
- package/dist/client/history.d.ts +29 -0
- package/dist/client/history.d.ts.map +1 -0
- package/dist/client/index.d.ts +32 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +1218 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/link-navigate-interceptor.d.ts +28 -0
- package/dist/client/link-navigate-interceptor.d.ts.map +1 -0
- package/dist/client/link-status-provider.d.ts +11 -0
- package/dist/client/link-status-provider.d.ts.map +1 -0
- package/dist/client/link.d.ts +119 -0
- package/dist/client/link.d.ts.map +1 -0
- package/dist/client/nuqs-adapter.d.ts +11 -0
- package/dist/client/nuqs-adapter.d.ts.map +1 -0
- package/dist/client/router-ref.d.ts +11 -0
- package/dist/client/router-ref.d.ts.map +1 -0
- package/dist/client/router.d.ts +85 -0
- package/dist/client/router.d.ts.map +1 -0
- package/dist/client/segment-cache.d.ts +88 -0
- package/dist/client/segment-cache.d.ts.map +1 -0
- package/dist/client/segment-context.d.ts +32 -0
- package/dist/client/segment-context.d.ts.map +1 -0
- package/dist/client/ssr-data.d.ts +64 -0
- package/dist/client/ssr-data.d.ts.map +1 -0
- package/dist/client/types.d.ts +5 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/unload-guard.d.ts +18 -0
- package/dist/client/unload-guard.d.ts.map +1 -0
- package/dist/client/use-cookie.d.ts +37 -0
- package/dist/client/use-cookie.d.ts.map +1 -0
- package/dist/client/use-link-status.d.ts +35 -0
- package/dist/client/use-link-status.d.ts.map +1 -0
- package/dist/client/use-navigation-pending.d.ts +26 -0
- package/dist/client/use-navigation-pending.d.ts.map +1 -0
- package/dist/client/use-params.d.ts +50 -0
- package/dist/client/use-params.d.ts.map +1 -0
- package/dist/client/use-pathname.d.ts +20 -0
- package/dist/client/use-pathname.d.ts.map +1 -0
- package/dist/client/use-query-states.d.ts +36 -0
- package/dist/client/use-query-states.d.ts.map +1 -0
- package/dist/client/use-router.d.ts +39 -0
- package/dist/client/use-router.d.ts.map +1 -0
- package/dist/client/use-search-params.d.ts +24 -0
- package/dist/client/use-search-params.d.ts.map +1 -0
- package/dist/client/use-selected-layout-segment.d.ts +68 -0
- package/dist/client/use-selected-layout-segment.d.ts.map +1 -0
- package/dist/content/index.d.ts +11 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +2 -0
- package/dist/cookies/define-cookie.d.ts +61 -0
- package/dist/cookies/define-cookie.d.ts.map +1 -0
- package/dist/cookies/index.d.ts +3 -0
- package/dist/cookies/index.d.ts.map +1 -0
- package/dist/cookies/index.js +82 -0
- package/dist/cookies/index.js.map +1 -0
- package/dist/fonts/ast.d.ts +38 -0
- package/dist/fonts/ast.d.ts.map +1 -0
- package/dist/fonts/css.d.ts +43 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/fallbacks.d.ts +36 -0
- package/dist/fonts/fallbacks.d.ts.map +1 -0
- package/dist/fonts/google.d.ts +122 -0
- package/dist/fonts/google.d.ts.map +1 -0
- package/dist/fonts/local.d.ts +76 -0
- package/dist/fonts/local.d.ts.map +1 -0
- package/dist/fonts/types.d.ts +85 -0
- package/dist/fonts/types.d.ts.map +1 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14701 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/adapter-build.d.ts +18 -0
- package/dist/plugins/adapter-build.d.ts.map +1 -0
- package/dist/plugins/build-manifest.d.ts +79 -0
- package/dist/plugins/build-manifest.d.ts.map +1 -0
- package/dist/plugins/build-report.d.ts +63 -0
- package/dist/plugins/build-report.d.ts.map +1 -0
- package/dist/plugins/cache-transform.d.ts +36 -0
- package/dist/plugins/cache-transform.d.ts.map +1 -0
- package/dist/plugins/chunks.d.ts +45 -0
- package/dist/plugins/chunks.d.ts.map +1 -0
- package/dist/plugins/content.d.ts +19 -0
- package/dist/plugins/content.d.ts.map +1 -0
- package/dist/plugins/dev-error-overlay.d.ts +60 -0
- package/dist/plugins/dev-error-overlay.d.ts.map +1 -0
- package/dist/plugins/dev-logs.d.ts +46 -0
- package/dist/plugins/dev-logs.d.ts.map +1 -0
- package/dist/plugins/dev-server.d.ts +22 -0
- package/dist/plugins/dev-server.d.ts.map +1 -0
- package/dist/plugins/dynamic-transform.d.ts +72 -0
- package/dist/plugins/dynamic-transform.d.ts.map +1 -0
- package/dist/plugins/entries.d.ts +21 -0
- package/dist/plugins/entries.d.ts.map +1 -0
- package/dist/plugins/fonts.d.ts +77 -0
- package/dist/plugins/fonts.d.ts.map +1 -0
- package/dist/plugins/mdx.d.ts +21 -0
- package/dist/plugins/mdx.d.ts.map +1 -0
- package/dist/plugins/react-prod.d.ts +18 -0
- package/dist/plugins/react-prod.d.ts.map +1 -0
- package/dist/plugins/routing.d.ts +13 -0
- package/dist/plugins/routing.d.ts.map +1 -0
- package/dist/plugins/server-action-exports.d.ts +26 -0
- package/dist/plugins/server-action-exports.d.ts.map +1 -0
- package/dist/plugins/server-bundle.d.ts +15 -0
- package/dist/plugins/server-bundle.d.ts.map +1 -0
- package/dist/plugins/shims.d.ts +18 -0
- package/dist/plugins/shims.d.ts.map +1 -0
- package/dist/plugins/static-build.d.ts +55 -0
- package/dist/plugins/static-build.d.ts.map +1 -0
- package/dist/routing/codegen.d.ts +29 -0
- package/dist/routing/codegen.d.ts.map +1 -0
- package/dist/routing/index.d.ts +8 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +2 -0
- package/dist/routing/interception.d.ts +46 -0
- package/dist/routing/interception.d.ts.map +1 -0
- package/dist/routing/scanner.d.ts +28 -0
- package/dist/routing/scanner.d.ts.map +1 -0
- package/dist/routing/status-file-lint.d.ts +33 -0
- package/dist/routing/status-file-lint.d.ts.map +1 -0
- package/dist/routing/types.d.ts +81 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/search-params/analyze.d.ts +54 -0
- package/dist/search-params/analyze.d.ts.map +1 -0
- package/dist/search-params/codecs.d.ts +53 -0
- package/dist/search-params/codecs.d.ts.map +1 -0
- package/dist/search-params/create.d.ts +106 -0
- package/dist/search-params/create.d.ts.map +1 -0
- package/dist/search-params/index.d.ts +7 -0
- package/dist/search-params/index.d.ts.map +1 -0
- package/dist/search-params/index.js +300 -0
- package/dist/search-params/index.js.map +1 -0
- package/dist/search-params/registry.d.ts +20 -0
- package/dist/search-params/registry.d.ts.map +1 -0
- package/dist/server/access-gate.d.ts +42 -0
- package/dist/server/access-gate.d.ts.map +1 -0
- package/dist/server/action-client.d.ts +190 -0
- package/dist/server/action-client.d.ts.map +1 -0
- package/dist/server/action-handler.d.ts +48 -0
- package/dist/server/action-handler.d.ts.map +1 -0
- package/dist/server/actions.d.ts +108 -0
- package/dist/server/actions.d.ts.map +1 -0
- package/dist/server/asset-headers.d.ts +42 -0
- package/dist/server/asset-headers.d.ts.map +1 -0
- package/dist/server/body-limits.d.ts +30 -0
- package/dist/server/body-limits.d.ts.map +1 -0
- package/dist/server/build-manifest.d.ts +120 -0
- package/dist/server/build-manifest.d.ts.map +1 -0
- package/dist/server/canonicalize.d.ts +30 -0
- package/dist/server/canonicalize.d.ts.map +1 -0
- package/dist/server/client-module-map.d.ts +47 -0
- package/dist/server/client-module-map.d.ts.map +1 -0
- package/dist/server/csrf.d.ts +34 -0
- package/dist/server/csrf.d.ts.map +1 -0
- package/dist/server/deny-renderer.d.ts +49 -0
- package/dist/server/deny-renderer.d.ts.map +1 -0
- package/dist/server/dev-logger.d.ts +44 -0
- package/dist/server/dev-logger.d.ts.map +1 -0
- package/dist/server/dev-span-processor.d.ts +29 -0
- package/dist/server/dev-span-processor.d.ts.map +1 -0
- package/dist/server/dev-warnings.d.ts +129 -0
- package/dist/server/dev-warnings.d.ts.map +1 -0
- package/dist/server/early-hints-sender.d.ts +38 -0
- package/dist/server/early-hints-sender.d.ts.map +1 -0
- package/dist/server/early-hints.d.ts +83 -0
- package/dist/server/early-hints.d.ts.map +1 -0
- package/dist/server/error-boundary-wrapper.d.ts +17 -0
- package/dist/server/error-boundary-wrapper.d.ts.map +1 -0
- package/dist/server/error-formatter.d.ts +17 -0
- package/dist/server/error-formatter.d.ts.map +1 -0
- package/dist/server/flush.d.ts +74 -0
- package/dist/server/flush.d.ts.map +1 -0
- package/dist/server/form-data.d.ts +60 -0
- package/dist/server/form-data.d.ts.map +1 -0
- package/dist/server/form-flash.d.ts +78 -0
- package/dist/server/form-flash.d.ts.map +1 -0
- package/dist/server/html-injectors.d.ts +101 -0
- package/dist/server/html-injectors.d.ts.map +1 -0
- package/dist/server/index.d.ts +54 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +2925 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/instrumentation.d.ts +61 -0
- package/dist/server/instrumentation.d.ts.map +1 -0
- package/dist/server/logger.d.ts +83 -0
- package/dist/server/logger.d.ts.map +1 -0
- package/dist/server/manifest-status-resolver.d.ts +58 -0
- package/dist/server/manifest-status-resolver.d.ts.map +1 -0
- package/dist/server/metadata-render.d.ts +20 -0
- package/dist/server/metadata-render.d.ts.map +1 -0
- package/dist/server/metadata-routes.d.ts +67 -0
- package/dist/server/metadata-routes.d.ts.map +1 -0
- package/dist/server/metadata.d.ts +67 -0
- package/dist/server/metadata.d.ts.map +1 -0
- package/dist/server/middleware-runner.d.ts +21 -0
- package/dist/server/middleware-runner.d.ts.map +1 -0
- package/dist/server/nuqs-ssr-provider.d.ts +28 -0
- package/dist/server/nuqs-ssr-provider.d.ts.map +1 -0
- package/dist/server/pipeline.d.ts +81 -0
- package/dist/server/pipeline.d.ts.map +1 -0
- package/dist/server/prerender.d.ts +77 -0
- package/dist/server/prerender.d.ts.map +1 -0
- package/dist/server/primitives.d.ts +131 -0
- package/dist/server/primitives.d.ts.map +1 -0
- package/dist/server/proxy.d.ts +23 -0
- package/dist/server/proxy.d.ts.map +1 -0
- package/dist/server/request-context.d.ts +175 -0
- package/dist/server/request-context.d.ts.map +1 -0
- package/dist/server/route-element-builder.d.ts +66 -0
- package/dist/server/route-element-builder.d.ts.map +1 -0
- package/dist/server/route-handler.d.ts +35 -0
- package/dist/server/route-handler.d.ts.map +1 -0
- package/dist/server/route-matcher.d.ts +78 -0
- package/dist/server/route-matcher.d.ts.map +1 -0
- package/dist/server/rsc-entry/api-handler.d.ts +11 -0
- package/dist/server/rsc-entry/api-handler.d.ts.map +1 -0
- package/dist/server/rsc-entry/error-renderer.d.ts +30 -0
- package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -0
- package/dist/server/rsc-entry/helpers.d.ts +73 -0
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -0
- package/dist/server/rsc-entry/index.d.ts +11 -0
- package/dist/server/rsc-entry/index.d.ts.map +1 -0
- package/dist/server/rsc-entry/ssr-bridge.d.ts +6 -0
- package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -0
- package/dist/server/slot-resolver.d.ts +34 -0
- package/dist/server/slot-resolver.d.ts.map +1 -0
- package/dist/server/ssr-entry.d.ts +73 -0
- package/dist/server/ssr-entry.d.ts.map +1 -0
- package/dist/server/ssr-render.d.ts +67 -0
- package/dist/server/ssr-render.d.ts.map +1 -0
- package/dist/server/status-code-resolver.d.ts +77 -0
- package/dist/server/status-code-resolver.d.ts.map +1 -0
- package/dist/server/tracing.d.ts +99 -0
- package/dist/server/tracing.d.ts.map +1 -0
- package/dist/server/tree-builder.d.ts +116 -0
- package/dist/server/tree-builder.d.ts.map +1 -0
- package/dist/server/types.d.ts +231 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/shims/font-google.d.ts +41 -0
- package/dist/shims/font-google.d.ts.map +1 -0
- package/dist/shims/headers.d.ts +11 -0
- package/dist/shims/headers.d.ts.map +1 -0
- package/dist/shims/image.d.ts +328 -0
- package/dist/shims/image.d.ts.map +1 -0
- package/dist/shims/link.d.ts +9 -0
- package/dist/shims/link.d.ts.map +1 -0
- package/dist/shims/navigation-client.d.ts +25 -0
- package/dist/shims/navigation-client.d.ts.map +1 -0
- package/dist/shims/navigation.d.ts +25 -0
- package/dist/shims/navigation.d.ts.map +1 -0
- package/dist/utils/directive-parser.d.ts +70 -0
- package/dist/utils/directive-parser.d.ts.map +1 -0
- package/dist/utils/format.d.ts +6 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/startup-timer.d.ts +34 -0
- package/dist/utils/startup-timer.d.ts.map +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shim: next/navigation (client environment only)
|
|
3
|
+
*
|
|
4
|
+
* Re-exports only the client-side hooks from timber's navigation shims.
|
|
5
|
+
* Server-only functions (redirect, notFound, etc.) are excluded to prevent
|
|
6
|
+
* server/primitives.ts from being pulled into the browser bundle.
|
|
7
|
+
*
|
|
8
|
+
* The full shim (navigation.ts) is still used in the RSC and SSR environments
|
|
9
|
+
* where both client hooks and server functions are needed.
|
|
10
|
+
*
|
|
11
|
+
* See design/14-ecosystem.md §"next/navigation" for the full shim audit.
|
|
12
|
+
*/
|
|
13
|
+
export { useParams } from '#/client/use-params.js';
|
|
14
|
+
export { usePathname } from '#/client/use-pathname.js';
|
|
15
|
+
export { useSearchParams } from '#/client/use-search-params.js';
|
|
16
|
+
export { useRouter } from '#/client/use-router.js';
|
|
17
|
+
export { useSelectedLayoutSegment, useSelectedLayoutSegments, } from '#/client/use-selected-layout-segment.js';
|
|
18
|
+
export declare const RedirectType: {
|
|
19
|
+
readonly push: "push";
|
|
20
|
+
readonly replace: "replace";
|
|
21
|
+
};
|
|
22
|
+
export declare function redirect(): never;
|
|
23
|
+
export declare function permanentRedirect(): never;
|
|
24
|
+
export declare function notFound(): never;
|
|
25
|
+
//# sourceMappingURL=navigation-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-client.d.ts","sourceRoot":"","sources":["../../src/shims/navigation-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAIjD,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAKX,wBAAgB,QAAQ,IAAI,KAAK,CAKhC;AAED,wBAAgB,iBAAiB,IAAI,KAAK,CAKzC;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAIhC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shim: next/navigation → timber navigation primitives
|
|
3
|
+
*
|
|
4
|
+
* Re-exports timber's navigation hooks and functions for libraries
|
|
5
|
+
* that import from next/navigation. Covers the App Router API surface
|
|
6
|
+
* used by ecosystem libraries (nuqs, next-intl, etc.).
|
|
7
|
+
*
|
|
8
|
+
* Note: nuqs imports next/navigation.js (with .js extension).
|
|
9
|
+
* The timber-shims plugin strips .js before matching.
|
|
10
|
+
*
|
|
11
|
+
* Intentional divergences from Next.js:
|
|
12
|
+
* - useRouter().replace() currently uses pushState (same as push) —
|
|
13
|
+
* timber's router doesn't distinguish push/replace yet.
|
|
14
|
+
* - redirect() does not accept a RedirectType argument — timber
|
|
15
|
+
* always uses replace semantics for redirects.
|
|
16
|
+
* - permanentRedirect() delegates to redirect(path, 308).
|
|
17
|
+
* See design/14-ecosystem.md for the full shim audit.
|
|
18
|
+
*/
|
|
19
|
+
export { useParams } from '#/client/use-params.js';
|
|
20
|
+
export { usePathname } from '#/client/use-pathname.js';
|
|
21
|
+
export { useSearchParams } from '#/client/use-search-params.js';
|
|
22
|
+
export { useRouter } from '#/client/use-router.js';
|
|
23
|
+
export { useSelectedLayoutSegment, useSelectedLayoutSegments, } from '#/client/use-selected-layout-segment.js';
|
|
24
|
+
export { redirect, permanentRedirect, notFound, RedirectType } from '#/server/primitives.js';
|
|
25
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/shims/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AST-based directive detection for 'use cache', 'use dynamic',
|
|
3
|
+
* 'use client', and 'use server'.
|
|
4
|
+
*
|
|
5
|
+
* Uses acorn to parse source code and detect directives properly,
|
|
6
|
+
* avoiding false positives from regex matching inside string literals,
|
|
7
|
+
* comments, or template expressions.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
export interface FileDirective {
|
|
12
|
+
/** The directive value, e.g. 'use client', 'use server' */
|
|
13
|
+
directive: string;
|
|
14
|
+
/** 1-based line number where the directive appears */
|
|
15
|
+
line: number;
|
|
16
|
+
}
|
|
17
|
+
export interface FunctionWithDirective {
|
|
18
|
+
/** Function name (or 'default' for anonymous default exports) */
|
|
19
|
+
name: string;
|
|
20
|
+
/** The directive found in the function body */
|
|
21
|
+
directive: string;
|
|
22
|
+
/** 1-based line number of the directive */
|
|
23
|
+
directiveLine: number;
|
|
24
|
+
/** Start offset of the function in the source */
|
|
25
|
+
start: number;
|
|
26
|
+
/** End offset of the function in the source */
|
|
27
|
+
end: number;
|
|
28
|
+
/** Start offset of the function body block (after the '{') */
|
|
29
|
+
bodyStart: number;
|
|
30
|
+
/** End offset of the function body block (the '}') */
|
|
31
|
+
bodyEnd: number;
|
|
32
|
+
/** Content between { and } of the function body */
|
|
33
|
+
bodyContent: string;
|
|
34
|
+
/** 'export ', 'export default ', or '' */
|
|
35
|
+
prefix: string;
|
|
36
|
+
/** Whether this is an arrow function */
|
|
37
|
+
isArrow: boolean;
|
|
38
|
+
/** The function signature (everything before the body '{') */
|
|
39
|
+
declaration: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Detect a file-level directive ('use client', 'use server', etc.).
|
|
43
|
+
*
|
|
44
|
+
* Per the ECMAScript spec, directives are string literal expression
|
|
45
|
+
* statements at the start of a program body (before any non-directive
|
|
46
|
+
* statements). This function checks the AST `Program.body` for
|
|
47
|
+
* `ExpressionStatement` nodes whose expression is a `Literal` string
|
|
48
|
+
* matching a known directive.
|
|
49
|
+
*
|
|
50
|
+
* Returns the first matching directive, or null if none found.
|
|
51
|
+
*/
|
|
52
|
+
export declare function detectFileDirective(code: string, directives?: string[]): FileDirective | null;
|
|
53
|
+
/**
|
|
54
|
+
* Find all functions in the source code that contain a directive
|
|
55
|
+
* (e.g. 'use cache', 'use dynamic') as their first body statement.
|
|
56
|
+
*
|
|
57
|
+
* Parses the source with acorn and walks the AST looking for function
|
|
58
|
+
* declarations and arrow function expressions whose body is a
|
|
59
|
+
* BlockStatement with a directive prologue.
|
|
60
|
+
*
|
|
61
|
+
* Returns an array of function info objects, sorted by position
|
|
62
|
+
* (descending) for safe end-to-start replacement.
|
|
63
|
+
*/
|
|
64
|
+
export declare function findFunctionsWithDirective(code: string, directive: string): FunctionWithDirective[];
|
|
65
|
+
/**
|
|
66
|
+
* Quick regex check for whether code contains a directive string.
|
|
67
|
+
* Use as a fast bail-out before calling the AST-based functions.
|
|
68
|
+
*/
|
|
69
|
+
export declare function containsDirective(code: string, directive: string): boolean;
|
|
70
|
+
//# sourceMappingURL=directive-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directive-parser.d.ts","sourceRoot":"","sources":["../../src/utils/directive-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAM,EAAiC,GAClD,aAAa,GAAG,IAAI,CAmCtB;AAiED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,qBAAqB,EAAE,CAqBzB;AA4TD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup timer — records named phases with their durations.
|
|
3
|
+
*
|
|
4
|
+
* Used by the plugin system to instrument cold start and report a
|
|
5
|
+
* timing breakdown in dev mode. Zero overhead in production (disabled).
|
|
6
|
+
*
|
|
7
|
+
* See design/18-build-system.md, TIM-155.
|
|
8
|
+
*/
|
|
9
|
+
export interface PhaseRecord {
|
|
10
|
+
name: string;
|
|
11
|
+
startMs: number;
|
|
12
|
+
durationMs: number;
|
|
13
|
+
}
|
|
14
|
+
export interface StartupTimer {
|
|
15
|
+
/** Mark the beginning of a named phase. */
|
|
16
|
+
start(phase: string): void;
|
|
17
|
+
/** Mark the end of a named phase. Returns duration in ms. */
|
|
18
|
+
end(phase: string): number;
|
|
19
|
+
/** Get all completed phase records, ordered by start time. */
|
|
20
|
+
getPhases(): PhaseRecord[];
|
|
21
|
+
/** Total elapsed time from first start() to last end(). */
|
|
22
|
+
totalMs(): number;
|
|
23
|
+
/** Format a human-readable summary string. */
|
|
24
|
+
formatSummary(): string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a startup timer that records phase durations.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createStartupTimer(): StartupTimer;
|
|
30
|
+
/**
|
|
31
|
+
* No-op timer for production builds — all methods are empty.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createNoopTimer(): StartupTimer;
|
|
34
|
+
//# sourceMappingURL=startup-timer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startup-timer.d.ts","sourceRoot":"","sources":["../../src/utils/startup-timer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,SAAS,IAAI,WAAW,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,OAAO,IAAI,MAAM,CAAC;IAClB,8CAA8C;IAC9C,aAAa,IAAI,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CA+CjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAgB9C"}
|
package/package.json
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@timber-js/app",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Vite-native React framework for Cloudflare Workers — correct HTTP semantics, real status codes, pages that work without JavaScript",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/switz/timber.js.git",
|
|
10
|
+
"directory": "packages/timber-app"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/switz/timber.js",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"react",
|
|
15
|
+
"vite",
|
|
16
|
+
"rsc",
|
|
17
|
+
"react-server-components",
|
|
18
|
+
"cloudflare-workers",
|
|
19
|
+
"framework",
|
|
20
|
+
"ssr",
|
|
21
|
+
"streaming"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20.0.0"
|
|
25
|
+
},
|
|
26
|
+
"bin": {
|
|
27
|
+
"timber": "./bin/timber.mjs"
|
|
28
|
+
},
|
|
29
|
+
"imports": {
|
|
30
|
+
"#/*": "./src/*"
|
|
31
|
+
},
|
|
32
|
+
"exports": {
|
|
33
|
+
".": "./src/index.ts",
|
|
34
|
+
"./server": "./src/server/index.ts",
|
|
35
|
+
"./client": "./src/client/index.ts",
|
|
36
|
+
"./cache": "./src/cache/index.ts",
|
|
37
|
+
"./content": "./src/content/index.ts",
|
|
38
|
+
"./cookies": "./src/cookies/index.ts",
|
|
39
|
+
"./search-params": "./src/search-params/index.ts",
|
|
40
|
+
"./routing": "./src/routing/index.ts",
|
|
41
|
+
"./adapters/cloudflare": "./src/adapters/cloudflare.ts",
|
|
42
|
+
"./adapters/nitro": "./src/adapters/nitro.ts",
|
|
43
|
+
"./package.json": "./package.json"
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public",
|
|
47
|
+
"bin": {
|
|
48
|
+
"timber": "./bin/timber.mjs"
|
|
49
|
+
},
|
|
50
|
+
"exports": {
|
|
51
|
+
".": {
|
|
52
|
+
"types": "./dist/index.d.ts",
|
|
53
|
+
"import": "./dist/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./server": {
|
|
56
|
+
"types": "./dist/server/index.d.ts",
|
|
57
|
+
"import": "./dist/server/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./client": {
|
|
60
|
+
"types": "./dist/client/index.d.ts",
|
|
61
|
+
"import": "./dist/client/index.js"
|
|
62
|
+
},
|
|
63
|
+
"./cache": {
|
|
64
|
+
"types": "./dist/cache/index.d.ts",
|
|
65
|
+
"import": "./dist/cache/index.js"
|
|
66
|
+
},
|
|
67
|
+
"./content": {
|
|
68
|
+
"types": "./dist/content/index.d.ts",
|
|
69
|
+
"import": "./dist/content/index.js"
|
|
70
|
+
},
|
|
71
|
+
"./cookies": {
|
|
72
|
+
"types": "./dist/cookies/index.d.ts",
|
|
73
|
+
"import": "./dist/cookies/index.js"
|
|
74
|
+
},
|
|
75
|
+
"./search-params": {
|
|
76
|
+
"types": "./dist/search-params/index.d.ts",
|
|
77
|
+
"import": "./dist/search-params/index.js"
|
|
78
|
+
},
|
|
79
|
+
"./routing": {
|
|
80
|
+
"types": "./dist/routing/index.d.ts",
|
|
81
|
+
"import": "./dist/routing/index.js"
|
|
82
|
+
},
|
|
83
|
+
"./adapters/cloudflare": {
|
|
84
|
+
"types": "./dist/adapters/cloudflare.d.ts",
|
|
85
|
+
"import": "./dist/adapters/cloudflare.js"
|
|
86
|
+
},
|
|
87
|
+
"./adapters/nitro": {
|
|
88
|
+
"types": "./dist/adapters/nitro.d.ts",
|
|
89
|
+
"import": "./dist/adapters/nitro.js"
|
|
90
|
+
},
|
|
91
|
+
"./package.json": "./package.json"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"files": [
|
|
95
|
+
"dist",
|
|
96
|
+
"bin",
|
|
97
|
+
"README.md",
|
|
98
|
+
"LICENSE"
|
|
99
|
+
],
|
|
100
|
+
"scripts": {
|
|
101
|
+
"build": "vite build --config vite.lib.config.ts && tsc --emitDeclarationOnly --project tsconfig.json --outDir dist",
|
|
102
|
+
"typecheck": "tsgo --noEmit",
|
|
103
|
+
"prepublishOnly": "pnpm run build"
|
|
104
|
+
},
|
|
105
|
+
"dependencies": {
|
|
106
|
+
"@opentelemetry/api": "^1.9.0",
|
|
107
|
+
"@opentelemetry/context-async-hooks": "^2.6.0",
|
|
108
|
+
"@opentelemetry/sdk-trace-base": "^2.6.0",
|
|
109
|
+
"@vitejs/plugin-react": "^6.0.0",
|
|
110
|
+
"@vitejs/plugin-rsc": "~0.5.21"
|
|
111
|
+
},
|
|
112
|
+
"peerDependencies": {
|
|
113
|
+
"@content-collections/core": "^0.14.0",
|
|
114
|
+
"@content-collections/mdx": "^0.2.0",
|
|
115
|
+
"@content-collections/vite": "^0.2.0",
|
|
116
|
+
"@mdx-js/rollup": "^3.0.0",
|
|
117
|
+
"nuqs": "^2.0.0",
|
|
118
|
+
"react": "^19.2.4",
|
|
119
|
+
"react-dom": "^19.2.4",
|
|
120
|
+
"vite": "^8.0.0",
|
|
121
|
+
"zod": "^3.22.0 || ^4.0.0"
|
|
122
|
+
},
|
|
123
|
+
"peerDependenciesMeta": {
|
|
124
|
+
"@content-collections/core": {
|
|
125
|
+
"optional": true
|
|
126
|
+
},
|
|
127
|
+
"@content-collections/mdx": {
|
|
128
|
+
"optional": true
|
|
129
|
+
},
|
|
130
|
+
"@content-collections/vite": {
|
|
131
|
+
"optional": true
|
|
132
|
+
},
|
|
133
|
+
"@mdx-js/rollup": {
|
|
134
|
+
"optional": true
|
|
135
|
+
},
|
|
136
|
+
"zod": {
|
|
137
|
+
"optional": true
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|