@interfere/next 12.1.1 → 12.1.3
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 +21 -0
- package/THIRD_PARTY_NOTICES.md +90 -0
- package/dist/config.mjs +1 -1
- package/dist/internal/build/configure-build.d.mts +1 -1
- package/dist/internal/build/release/index.mjs +1 -1
- package/dist/internal/server/instrumentation-options.d.mts +0 -7
- package/dist/internal/server/static-generation.d.mts +0 -14
- package/dist/internal/server/static-generation.mjs +1 -1
- package/dist/internal/server/wrap-server-action.d.mts +1 -4
- package/dist/package.mjs +1 -1
- package/package.json +34 -33
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Interfere, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
The MIT license in LICENSE applies to code authored by Interfere. Third-party components retain their respective licenses.
|
|
4
|
+
|
|
5
|
+
## UAParser.js PRO Enterprise
|
|
6
|
+
|
|
7
|
+
- Package: `@ua-parser-js/pro-enterprise`
|
|
8
|
+
- Version: 2.0.10
|
|
9
|
+
- Project: https://uaparser.dev/
|
|
10
|
+
- License: UAParser.js PRO Enterprise, Version 2, July 2024
|
|
11
|
+
|
|
12
|
+
The React SDK uses this package for browser, device, and bot detection. The Next.js and Vite SDKs depend on the React SDK. UAParser is not covered by the Interfere SDKs' MIT license.
|
|
13
|
+
|
|
14
|
+
The license below restricts client use to the original functionality provided by the license holder and prohibits extracting, reproducing, or reusing UAParser independently. It also requires written consent for the open-source distribution described in its restrictions. This notice does not grant additional rights or replace any required permission.
|
|
15
|
+
|
|
16
|
+
### Upstream license
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
# UAPARSER.JS PRO ENTERPRISE LICENSE
|
|
20
|
+
|
|
21
|
+
Version 2, July 2024
|
|
22
|
+
|
|
23
|
+
Copyright (C) 2023-2024 Faisal Salman <f+ua-parser-js@faisalman.com>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Definitions
|
|
28
|
+
|
|
29
|
+
"We" are the team behind UAParser.js.
|
|
30
|
+
|
|
31
|
+
"You" are the individual, organization, or company who is responsible for purchasing this license.
|
|
32
|
+
|
|
33
|
+
"The Code" is UAParser.js.
|
|
34
|
+
|
|
35
|
+
"Project" is what you built with The Code.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## License
|
|
40
|
+
|
|
41
|
+
We retain all title, intellectual property, and ownership rights to The Code.
|
|
42
|
+
|
|
43
|
+
The Code is licensed, not sold, to You for use solely subject to the terms and conditions detailed here.
|
|
44
|
+
|
|
45
|
+
We grant You (and only You) a limited, non-exclusive, non-transferable, non-sublicensable, royalty-free right to use, copy, and modify The Code.
|
|
46
|
+
|
|
47
|
+
This license is only valid for You as one (1) individual, organization, or company and cannot be transferred to another individual, organization, or company.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Rights
|
|
52
|
+
|
|
53
|
+
You may use, copy, and modify The Code for an indefinite number of Projects.
|
|
54
|
+
|
|
55
|
+
You have the right to receive lifetime updates and one (1) year of support, starting from the time you make the purchase.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Restrictions
|
|
60
|
+
|
|
61
|
+
You may not redistribute The Code, as-is or modified, except as a part of a Project that you made.
|
|
62
|
+
|
|
63
|
+
If You transfer a Project to a client, the use of The Code must be limited to the original functionality that You created for them. The Code must not be extracted, reproduced, or used in any other way. You must inform your client of this condition.
|
|
64
|
+
|
|
65
|
+
You may not deliver a Project that contains The Code as an open-source Project that might be used for commercial purposes by the general public, except with our written consent.
|
|
66
|
+
|
|
67
|
+
You may not use The Code for unlawful, inappropriate, illegal, or offensive purposes.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Limitations
|
|
72
|
+
|
|
73
|
+
The Code is provided 'as is' without warranty of any kind, expressed or implied.
|
|
74
|
+
|
|
75
|
+
We shall not be liable for any damages, including but not limited to, direct, indirect, special, incidental, or consequential damages or losses that occur by the use of The Code.
|
|
76
|
+
|
|
77
|
+
We reserve the right to discontinue the lifetime updates for The Code at any time, with or without notice.
|
|
78
|
+
|
|
79
|
+
We offer support only for questions within the scope of The Code's functionality or related issues at our sole discretion.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Termination
|
|
84
|
+
|
|
85
|
+
This license is effective indefinitely but can be revoked at any time if there is a violation of any of the terms.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
END OF TERMS AND CONDITIONS
|
|
90
|
+
```
|
package/dist/config.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{configureBuild}from"./internal/build/configure-build.mjs";import{runGitCommand}from"./internal/build/release/git.mjs";import{readInterfereEnv}from"./internal/env.mjs";import{FatalError,log}from"./internal/logger.mjs";import{resolveReleaseSlug}from"./internal/release-slug.mjs";import{readNextMajorVersion,warnIfServerInstrumentationMissing}from"./internal/setup-warnings.mjs";import{API_URL}from"@interfere/constants/api";import{omitUndefined}from"@interfere/helpers/omit-undefined";import{LOCAL_DEV_RELEASE_SLUG}from"@interfere/types/releases/slug";import{checkReleaseConfig,diagnoseRelease}from"@interfere/types/sdk/build-diagnostics";import{resolveDeployEnvironment}from"@interfere/types/sdk/deploy-environment";import{API_URL_GLOBAL,BUILD_MARKER_GLOBAL,DISABLED_GLOBAL,ENVIRONMENT_GLOBAL,FORCE_ENABLE_GLOBAL,PUBLIC_KEY_GLOBAL,RELEASE_SLUG_GLOBAL}from"@interfere/types/sdk/injected-globals";import{PHASE_PRODUCTION_BUILD}from"next/constants.js";const CLIENT_TRACE_METADATA_KEYS=[`traceparent`,`tracestate`,`baggage`],DIAGNOSTIC_CONTEXT={publicKeyEnvVar:`INTERFERE_PUBLIC_KEY`,docsUrl:`https://interfere.com/docs/sdk/next-js`};function isThenable(value){return typeof value==`object`&&!!value&&`then`in value&&typeof value.then==`function`}function withInterfere(...args){let[settings,nextConfig]=args.length===2?[args[0],args[1]]:[{},args[0]??{}];return(phase,context)=>{let resolved=typeof nextConfig==`function`?nextConfig(phase,context??{defaultConfig:{}}):nextConfig;return isThenable(resolved)?Promise.resolve(resolved).then(config=>buildInterfereConfig(phase,settings,config)):buildInterfereConfig(phase,settings,resolved)}}function interfereInjectedValues(config,apiHost,forceEnable){let releaseSlug=forceEnable?LOCAL_DEV_RELEASE_SLUG:config.releaseSlug;return omitUndefined({[RELEASE_SLUG_GLOBAL]:releaseSlug,[BUILD_MARKER_GLOBAL]:!0,[PUBLIC_KEY_GLOBAL]:config.publicKey||void 0,[API_URL_GLOBAL]:config.publicKey&&apiHost?apiHost:void 0,[ENVIRONMENT_GLOBAL]:config.environment||void 0,[FORCE_ENABLE_GLOBAL]:forceEnable?!0:void 0})}function interfereCompilerConfig(compiler,config){let existingHook=compiler?.runAfterProductionCompile;return omitUndefined({...compiler,async runAfterProductionCompile(context){existingHook&&await existingHook(context),config.publicKey===null&&log.warn(`Public key not set`,[`INTERFERE_PUBLIC_KEY is not set, so this build sends no events.`,`Set it on builds that you deploy.`]);try{await runBuildReleasePipeline(context,config)}catch(error){if(error instanceof FatalError)throw error;let message=error instanceof Error?error.message:String(error);log.warn(`Skipping release pipeline`,[`Interfere encountered an unexpected error.`,`Build will continue, but this release's data will be ingested, but ignored as finding when generating insights.`,`Error: ${message}`])}}})}function resolveBrowserSourceMaps(config,productionBrowserSourceMaps){let releasing=config.apiKey!==null&&config.uploadSourceMaps;return releasing&&productionBrowserSourceMaps===!1&&log.warn(`Forcing productionBrowserSourceMaps`,[`withInterfere() requires production source maps to symbolicate errors.`,"Your `productionBrowserSourceMaps: false` was overridden to `true`."]),releasing?!0:productionBrowserSourceMaps}function disabledInterfereConfig(nextConfig){let{interfere:_interfere,webpack,turbopack,...rest}=nextConfig,projectDir=process.cwd(),build=configureBuild({existingTurbopack:turbopack,existingWebpack:webpack,nextMajor:readNextMajorVersion(projectDir),projectDir,remoteConfigFetch:void 0,values:{[BUILD_MARKER_GLOBAL]:!0,[DISABLED_GLOBAL]:!0,[RELEASE_SLUG_GLOBAL]:null}});return omitUndefined({...rest,turbopack:build.turbopack,webpack:build.webpack})}function buildInterfereConfig(phase,settings,nextConfig){if(settings.disable)return disabledInterfereConfig(nextConfig);let{interfere,env:userEnv,webpack,turbopack,compiler,productionBrowserSourceMaps,...rest}=nextConfig;if(interfere&&`buildId`in interfere&&interfere.buildId!==void 0)return log.fatal(`Removed: interfere.buildId`,["`interfere.buildId` was removed in SDK 10. It only worked at build time, so server-side spans drifted from the bundle's slug.","Override the commit SHA via the `INTERFERE_SOURCE_ID` env var on both build and runtime envs instead."]);let projectDir=process.cwd(),config=resolveBuildConfig(settings,phase),apiHost=resolveBrowserApiHost(interfere?.apiHost,config.apiUrl),forceEnable=!!process.env.NEXT_PUBLIC_INTERFERE_FORCE_ENABLE,nextMajor=readNextMajorVersion(projectDir),build=configureBuild({existingTurbopack:turbopack,existingWebpack:webpack,nextMajor,projectDir,remoteConfigFetch:resolveRemoteConfigFetch(config,phase),values:interfereInjectedValues(config,apiHost,forceEnable)});if(config.publicKey!==null&&!build.clientInstrumentationApplies)return log.fatal(`Missing instrumentation client`,[`INTERFERE_PUBLIC_KEY is set but no instrumentation-client file was found.`,`Create an instrumentation-client.ts file in your project root or src/ directory.`]);config.publicKey!==null&&warnIfServerInstrumentationMissing(projectDir);let experimental=interfereExperimentalConfig({existing:rest.experimental,instrumentationHook:nextMajor===null||nextMajor<=14,traceMetadata:config.publicKey!==null||forceEnable});return omitUndefined({...rest,env:userEnv,compiler:interfereCompilerConfig(compiler,config),productionBrowserSourceMaps:resolveBrowserSourceMaps(config,productionBrowserSourceMaps),turbopack:build.turbopack,webpack:build.webpack,experimental})}function interfereExperimentalConfig({existing,instrumentationHook,traceMetadata}){let merged={...existing};return instrumentationHook&&(merged.instrumentationHook=!0),traceMetadata&&(merged.clientTraceMetadata=[...new Set([...existing?.clientTraceMetadata??[],...CLIENT_TRACE_METADATA_KEYS])]),Object.keys(merged).length>0?merged:void 0}function resolveBrowserApiHost(apiHost,apiUrl){let host=apiHost??apiUrl;if(host!==API_URL)return normalizeHost(host)}function normalizeHost(host){try{return new URL(host).origin}catch{return log.fatal(`Invalid apiHost`,[`interfere.apiHost must be a full URL, e.g. "https://in.yourapp.com".`,`Received: ${host}`])}}function resolveBuildConfig(settings,phase){let{apiKey,apiUrl,publicKey}=readInterfereEnv(),{commitSha,slug}=resolveReleaseSlug(runGitCommand),environment=phase===PHASE_PRODUCTION_BUILD?resolveDeployEnvironment(process.env):null;return{apiKey:apiKey??null,apiUrl,buildId:commitSha,environment,publicKey:publicKey??null,purgeSourceMaps:settings.sourceMaps?.purge??!0,uploadSourceMaps:settings.sourceMaps?.upload??!0,releaseSlug:slug}}function resolveRemoteConfigFetch(config,phase){if(phase===PHASE_PRODUCTION_BUILD&&config.publicKey)return{apiUrl:config.apiUrl,cacheScope:crypto.randomUUID(),publicKey:config.publicKey}}async function runBuildReleasePipeline(context,config){let release=checkReleaseConfig(DIAGNOSTIC_CONTEXT,{apiKey:config.apiKey,commitSha:config.buildId,releaseSlug:config.releaseSlug});if(release.status===`skip`){log.warn(release.title,[...release.details]);return}if(release.status===`fail`)return log.fatal(release.title,[...release.details]);let{runBuildPipeline}=await import(`./internal/build/pipeline.mjs`);try{let result=await runBuildPipeline(context,{...config,apiKey:release.apiKey,buildId:release.commitSha,releaseSlug:release.releaseSlug});if(!result.accepted){result.reason===`no_source_maps`&&log.warn(`Release remains unready`,[`No source maps found. Enable source-map generation and upload them during the build.`]);return}log.info(`Completed`,[`https://interfere.com/~/${result.config.org.slug}/
|
|
1
|
+
import{configureBuild}from"./internal/build/configure-build.mjs";import{runGitCommand}from"./internal/build/release/git.mjs";import{readInterfereEnv}from"./internal/env.mjs";import{FatalError,log}from"./internal/logger.mjs";import{resolveReleaseSlug}from"./internal/release-slug.mjs";import{readNextMajorVersion,warnIfServerInstrumentationMissing}from"./internal/setup-warnings.mjs";import{API_URL}from"@interfere/constants/api";import{omitUndefined}from"@interfere/helpers/omit-undefined";import{LOCAL_DEV_RELEASE_SLUG}from"@interfere/types/releases/slug";import{checkReleaseConfig,diagnoseRelease}from"@interfere/types/sdk/build-diagnostics";import{resolveDeployEnvironment}from"@interfere/types/sdk/deploy-environment";import{API_URL_GLOBAL,BUILD_MARKER_GLOBAL,DISABLED_GLOBAL,ENVIRONMENT_GLOBAL,FORCE_ENABLE_GLOBAL,PUBLIC_KEY_GLOBAL,RELEASE_SLUG_GLOBAL}from"@interfere/types/sdk/injected-globals";import{PHASE_PRODUCTION_BUILD}from"next/constants.js";const CLIENT_TRACE_METADATA_KEYS=[`traceparent`,`tracestate`,`baggage`],DIAGNOSTIC_CONTEXT={publicKeyEnvVar:`INTERFERE_PUBLIC_KEY`,docsUrl:`https://interfere.com/docs/sdk/next-js`};function isThenable(value){return typeof value==`object`&&!!value&&`then`in value&&typeof value.then==`function`}function withInterfere(...args){let[settings,nextConfig]=args.length===2?[args[0],args[1]]:[{},args[0]??{}];return(phase,context)=>{let resolved=typeof nextConfig==`function`?nextConfig(phase,context??{defaultConfig:{}}):nextConfig;return isThenable(resolved)?Promise.resolve(resolved).then(config=>buildInterfereConfig(phase,settings,config)):buildInterfereConfig(phase,settings,resolved)}}function interfereInjectedValues(config,apiHost,forceEnable){let releaseSlug=forceEnable?LOCAL_DEV_RELEASE_SLUG:config.releaseSlug;return omitUndefined({[RELEASE_SLUG_GLOBAL]:releaseSlug,[BUILD_MARKER_GLOBAL]:!0,[PUBLIC_KEY_GLOBAL]:config.publicKey||void 0,[API_URL_GLOBAL]:config.publicKey&&apiHost?apiHost:void 0,[ENVIRONMENT_GLOBAL]:config.environment||void 0,[FORCE_ENABLE_GLOBAL]:forceEnable?!0:void 0})}function interfereCompilerConfig(compiler,config){let existingHook=compiler?.runAfterProductionCompile;return omitUndefined({...compiler,async runAfterProductionCompile(context){existingHook&&await existingHook(context),config.publicKey===null&&log.warn(`Public key not set`,[`INTERFERE_PUBLIC_KEY is not set, so this build sends no events.`,`Set it on builds that you deploy.`]);try{await runBuildReleasePipeline(context,config)}catch(error){if(error instanceof FatalError)throw error;let message=error instanceof Error?error.message:String(error);log.warn(`Skipping release pipeline`,[`Interfere encountered an unexpected error.`,`Build will continue, but this release's data will be ingested, but ignored as finding when generating insights.`,`Error: ${message}`])}}})}function resolveBrowserSourceMaps(config,productionBrowserSourceMaps){let releasing=config.apiKey!==null&&config.uploadSourceMaps;return releasing&&productionBrowserSourceMaps===!1&&log.warn(`Forcing productionBrowserSourceMaps`,[`withInterfere() requires production source maps to symbolicate errors.`,"Your `productionBrowserSourceMaps: false` was overridden to `true`."]),releasing?!0:productionBrowserSourceMaps}function disabledInterfereConfig(nextConfig){let{interfere:_interfere,webpack,turbopack,...rest}=nextConfig,projectDir=process.cwd(),build=configureBuild({existingTurbopack:turbopack,existingWebpack:webpack,nextMajor:readNextMajorVersion(projectDir),projectDir,remoteConfigFetch:void 0,values:{[BUILD_MARKER_GLOBAL]:!0,[DISABLED_GLOBAL]:!0,[RELEASE_SLUG_GLOBAL]:null}});return omitUndefined({...rest,turbopack:build.turbopack,webpack:build.webpack})}function buildInterfereConfig(phase,settings,nextConfig){if(settings.disable)return disabledInterfereConfig(nextConfig);let{interfere,env:userEnv,webpack,turbopack,compiler,productionBrowserSourceMaps,...rest}=nextConfig;if(interfere&&`buildId`in interfere&&interfere.buildId!==void 0)return log.fatal(`Removed: interfere.buildId`,["`interfere.buildId` was removed in SDK 10. It only worked at build time, so server-side spans drifted from the bundle's slug.","Override the commit SHA via the `INTERFERE_SOURCE_ID` env var on both build and runtime envs instead."]);let projectDir=process.cwd(),config=resolveBuildConfig(settings,phase),apiHost=resolveBrowserApiHost(interfere?.apiHost,config.apiUrl),forceEnable=!!process.env.NEXT_PUBLIC_INTERFERE_FORCE_ENABLE,nextMajor=readNextMajorVersion(projectDir),build=configureBuild({existingTurbopack:turbopack,existingWebpack:webpack,nextMajor,projectDir,remoteConfigFetch:resolveRemoteConfigFetch(config,phase),values:interfereInjectedValues(config,apiHost,forceEnable)});if(config.publicKey!==null&&!build.clientInstrumentationApplies)return log.fatal(`Missing instrumentation client`,[`INTERFERE_PUBLIC_KEY is set but no instrumentation-client file was found.`,`Create an instrumentation-client.ts file in your project root or src/ directory.`]);config.publicKey!==null&&warnIfServerInstrumentationMissing(projectDir);let experimental=interfereExperimentalConfig({existing:rest.experimental,instrumentationHook:nextMajor===null||nextMajor<=14,traceMetadata:config.publicKey!==null||forceEnable});return omitUndefined({...rest,env:userEnv,compiler:interfereCompilerConfig(compiler,config),productionBrowserSourceMaps:resolveBrowserSourceMaps(config,productionBrowserSourceMaps),turbopack:build.turbopack,webpack:build.webpack,experimental})}function interfereExperimentalConfig({existing,instrumentationHook,traceMetadata}){let merged={...existing};return instrumentationHook&&(merged.instrumentationHook=!0),traceMetadata&&(merged.clientTraceMetadata=[...new Set([...existing?.clientTraceMetadata??[],...CLIENT_TRACE_METADATA_KEYS])]),Object.keys(merged).length>0?merged:void 0}function resolveBrowserApiHost(apiHost,apiUrl){let host=apiHost??apiUrl;if(host!==API_URL)return normalizeHost(host)}function normalizeHost(host){try{return new URL(host).origin}catch{return log.fatal(`Invalid apiHost`,[`interfere.apiHost must be a full URL, e.g. "https://in.yourapp.com".`,`Received: ${host}`])}}function resolveBuildConfig(settings,phase){let{apiKey,apiUrl,publicKey}=readInterfereEnv(),{commitSha,slug}=resolveReleaseSlug(runGitCommand),environment=phase===PHASE_PRODUCTION_BUILD?resolveDeployEnvironment(process.env):null;return{apiKey:apiKey??null,apiUrl,buildId:commitSha,environment,publicKey:publicKey??null,purgeSourceMaps:settings.sourceMaps?.purge??!0,uploadSourceMaps:settings.sourceMaps?.upload??!0,releaseSlug:slug}}function resolveRemoteConfigFetch(config,phase){if(phase===PHASE_PRODUCTION_BUILD&&config.publicKey)return{apiUrl:config.apiUrl,cacheScope:crypto.randomUUID(),publicKey:config.publicKey}}async function runBuildReleasePipeline(context,config){let release=checkReleaseConfig(DIAGNOSTIC_CONTEXT,{apiKey:config.apiKey,commitSha:config.buildId,releaseSlug:config.releaseSlug});if(release.status===`skip`){log.warn(release.title,[...release.details]);return}if(release.status===`fail`)return log.fatal(release.title,[...release.details]);let{runBuildPipeline}=await import(`./internal/build/pipeline.mjs`);try{let result=await runBuildPipeline(context,{...config,apiKey:release.apiKey,buildId:release.commitSha,releaseSlug:release.releaseSlug});if(!result.accepted){result.reason===`no_source_maps`&&log.warn(`Release remains unready`,[`No source maps found. Enable source-map generation and upload them during the build.`]);return}log.info(`Completed`,[`https://interfere.com/~/${result.config.org.slug}/apps/${result.config.surface.slug}`,`Release: ${result.release.destination.slug}`,`Build: ${result.buildId}`,config.uploadSourceMaps?`Artifacts: ${result.fileCount} source maps`:`Source-map uploads disabled`])}catch(error){let diagnostic=diagnoseRelease(DIAGNOSTIC_CONTEXT,error);log[diagnostic.severity](diagnostic.title,[...diagnostic.details])}}export{withInterfere};
|
|
@@ -26,7 +26,7 @@ interface ConfigureBuildInput {
|
|
|
26
26
|
export declare function configureBuild({ existingWebpack, existingTurbopack, nextMajor, projectDir, remoteConfigFetch, values }: ConfigureBuildInput): {
|
|
27
27
|
clientInstrumentationApplies: boolean;
|
|
28
28
|
turbopack: import("@interfere/helpers/omit-undefined").OmitUndefined<{
|
|
29
|
-
resolveAlias?: Record<string, string | string[] | Record<string, string | string[]>>;
|
|
29
|
+
resolveAlias?: Record<string, false | string | string[] | Record<string, false | string | string[]>>;
|
|
30
30
|
resolveExtensions?: string[];
|
|
31
31
|
rules?: Record<string, import("next/dist/server/config-shared").TurbopackRuleConfigCollection>;
|
|
32
32
|
root?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{log}from"../../logger.mjs";import{PRODUCER_VERSION}from"../../version.mjs";import{resolveReleaseRequest as resolveReleaseRequest$1}from"@interfere/build/release-request";function resolveReleaseRequest(buildId,environment,releaseSlug,config){let result=resolveReleaseRequest$1({buildId,config,environment,producerVersion:PRODUCER_VERSION,releaseSlug});if(result.ok)return result;let sourceMissing=result.reason===`missing_source_provider`;return log.warn(sourceMissing?`Release skipped: missing version control provider`:`Release skipped: missing deployment target`,[sourceMissing?`This surface does not have a version control provider configured.`:`This surface does not have a deployment target integration configured.`,`Configure one at https://interfere.com/~/${config.org.slug}/
|
|
1
|
+
import{log}from"../../logger.mjs";import{PRODUCER_VERSION}from"../../version.mjs";import{resolveReleaseRequest as resolveReleaseRequest$1}from"@interfere/build/release-request";function resolveReleaseRequest(buildId,environment,releaseSlug,config){let result=resolveReleaseRequest$1({buildId,config,environment,producerVersion:PRODUCER_VERSION,releaseSlug});if(result.ok)return result;let sourceMissing=result.reason===`missing_source_provider`;return log.warn(sourceMissing?`Release skipped: missing version control provider`:`Release skipped: missing deployment target`,[sourceMissing?`This surface does not have a version control provider configured.`:`This surface does not have a deployment target integration configured.`,`Configure one at https://interfere.com/~/${config.org.slug}/apps/${config.surface.slug}`]),result}export{resolveReleaseRequest};
|
|
@@ -23,14 +23,7 @@ import { LogRecordProcessor } from "@opentelemetry/sdk-logs";
|
|
|
23
23
|
* them at all.
|
|
24
24
|
*/
|
|
25
25
|
export interface ServerInstrumentationOptions {
|
|
26
|
-
/** @internal */
|
|
27
26
|
_internalAdditionalLogRecordProcessors?: LogRecordProcessor[];
|
|
28
|
-
/**
|
|
29
|
-
* Extra span processors fanned into the NodeTracerProvider's processor
|
|
30
|
-
* list. See `_internalAdditionalLogRecordProcessors`.
|
|
31
|
-
*
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
27
|
_internalAdditionalSpanProcessors?: SpanProcessor[];
|
|
35
28
|
/**
|
|
36
29
|
* Install a `process.on("uncaughtException")` listener that captures the
|
|
@@ -1,17 +1,3 @@
|
|
|
1
1
|
//#region src/internal/server/static-generation.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Whether the current render is a static-generation render — a build-time
|
|
4
|
-
* prerender or a runtime ISR revalidation. Trace context injected into such
|
|
5
|
-
* a render is baked into cached HTML and served to every visitor in the
|
|
6
|
-
* cache window, so injection paths that feed `clientTraceMetadata` must
|
|
7
|
-
* skip it, mirroring what Next itself produces for build-time prerenders
|
|
8
|
-
* (no meta at all).
|
|
9
|
-
*
|
|
10
|
-
* Reads Next's `workAsyncStorage` external — the same store Next consults
|
|
11
|
-
* for its own static/dynamic decisions, importable on both the Node.js and
|
|
12
|
-
* Edge runtimes. Outside any render (no store) this returns `false`; the
|
|
13
|
-
* client-side `tracestate` freshness guard remains the backstop for
|
|
14
|
-
* caching the server cannot see (CDN full-page caches).
|
|
15
|
-
*/
|
|
16
2
|
export declare function isStaticGenerationRender(): boolean;
|
|
17
3
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{workAsyncStorage}from"next/dist/server/app-render/work-async-storage.external.js";function isStaticGenerationRender(){try{
|
|
1
|
+
import{workAsyncStorage}from"next/dist/server/app-render/work-async-storage.external.js";import{workUnitAsyncStorage}from"next/dist/server/app-render/work-unit-async-storage.external.js";function isStaticGenerationRender(){try{let store=workAsyncStorage.getStore();if(!store)return!1;if(`isStaticGeneration`in store)return store.isStaticGeneration===!0;if(store.isBuildTimePrerendering)return!0;let unit=workUnitAsyncStorage.getStore();return unit?.type!==`request`&&unit?.type!==`prerender-runtime`}catch{return!1}}export{isStaticGenerationRender};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
//#region src/internal/server/wrap-server-action.d.ts
|
|
2
2
|
interface ServerActionOptions {
|
|
3
|
-
/**
|
|
4
|
-
* The action's arguments — used only to derive a value-free shape (typeof /
|
|
5
|
-
* class names), never recorded. Pass them to populate `args_shape`.
|
|
6
|
-
*/
|
|
3
|
+
/** Derives argument types and class names for args_shape without recording values. */
|
|
7
4
|
readonly args?: readonly unknown[];
|
|
8
5
|
}
|
|
9
6
|
/**
|
package/dist/package.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var name=`@interfere/next`,version=`12.1.
|
|
1
|
+
var name=`@interfere/next`,version=`12.1.3`;export{name,version};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interfere/next",
|
|
3
|
-
"version": "12.1.
|
|
3
|
+
"version": "12.1.3",
|
|
4
4
|
"description": "Build software that never breaks.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"error-tracking",
|
|
@@ -10,9 +10,7 @@
|
|
|
10
10
|
"typescript"
|
|
11
11
|
],
|
|
12
12
|
"homepage": "https://interfere.com",
|
|
13
|
-
"bugs":
|
|
14
|
-
"url": "mailto:support@interfere.com"
|
|
15
|
-
},
|
|
13
|
+
"bugs": "mailto:support@interfere.com",
|
|
16
14
|
"license": "MIT",
|
|
17
15
|
"author": "Interfere <support@interfere.com> (https://interfere.com)",
|
|
18
16
|
"repository": {
|
|
@@ -21,7 +19,9 @@
|
|
|
21
19
|
"directory": "src/packages/public/next"
|
|
22
20
|
},
|
|
23
21
|
"files": [
|
|
24
|
-
"dist"
|
|
22
|
+
"dist",
|
|
23
|
+
"LICENSE",
|
|
24
|
+
"THIRD_PARTY_NOTICES.md"
|
|
25
25
|
],
|
|
26
26
|
"type": "module",
|
|
27
27
|
"sideEffects": [
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"types": "./dist/instrumentation.edge.d.mts",
|
|
55
55
|
"default": "./dist/instrumentation.edge.mjs"
|
|
56
56
|
},
|
|
57
|
+
"types": "./dist/instrumentation.d.mts",
|
|
57
58
|
"node": {
|
|
58
59
|
"monorepo": "./src/instrumentation.ts",
|
|
59
60
|
"types": "./dist/instrumentation.d.mts",
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
},
|
|
92
93
|
"scripts": {
|
|
93
94
|
"build": "tsdown",
|
|
94
|
-
"test": "vitest run --config ../../../../vitest.config.ts",
|
|
95
|
+
"test": "node ../../private/vitest-config/src/cli.ts run --config ../../../../vitest.config.ts",
|
|
95
96
|
"test:e2e": "playwright test",
|
|
96
97
|
"typecheck": "bun check"
|
|
97
98
|
},
|
|
@@ -100,49 +101,49 @@
|
|
|
100
101
|
"@interfere/constants": "^9.2.0",
|
|
101
102
|
"@interfere/helpers": "^9.2.1",
|
|
102
103
|
"@interfere/javascript": "^0.2.1",
|
|
103
|
-
"@interfere/react": "^12.1.
|
|
104
|
+
"@interfere/react": "^12.1.3",
|
|
104
105
|
"@interfere/types": "^10.3.0",
|
|
105
|
-
"@opentelemetry/api": "
|
|
106
|
-
"@opentelemetry/api-logs": "
|
|
107
|
-
"@opentelemetry/baggage-span-processor": "
|
|
108
|
-
"@opentelemetry/context-async-hooks": "
|
|
109
|
-
"@opentelemetry/core": "
|
|
110
|
-
"@opentelemetry/exporter-logs-otlp-http": "
|
|
111
|
-
"@opentelemetry/exporter-trace-otlp-http": "
|
|
112
|
-
"@opentelemetry/instrumentation": "
|
|
113
|
-
"@opentelemetry/otlp-exporter-base": "
|
|
114
|
-
"@opentelemetry/otlp-transformer": "
|
|
115
|
-
"@opentelemetry/resources": "
|
|
116
|
-
"@opentelemetry/sdk-logs": "
|
|
117
|
-
"@opentelemetry/sdk-metrics": "
|
|
118
|
-
"@opentelemetry/sdk-trace-base": "
|
|
119
|
-
"@opentelemetry/sdk-trace-node": "
|
|
106
|
+
"@opentelemetry/api": "1.9.1",
|
|
107
|
+
"@opentelemetry/api-logs": "0.222.0",
|
|
108
|
+
"@opentelemetry/baggage-span-processor": "0.5.0",
|
|
109
|
+
"@opentelemetry/context-async-hooks": "2.11.0",
|
|
110
|
+
"@opentelemetry/core": "2.11.0",
|
|
111
|
+
"@opentelemetry/exporter-logs-otlp-http": "0.222.0",
|
|
112
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.222.0",
|
|
113
|
+
"@opentelemetry/instrumentation": "0.222.0",
|
|
114
|
+
"@opentelemetry/otlp-exporter-base": "0.222.0",
|
|
115
|
+
"@opentelemetry/otlp-transformer": "0.222.0",
|
|
116
|
+
"@opentelemetry/resources": "2.11.0",
|
|
117
|
+
"@opentelemetry/sdk-logs": "0.222.0",
|
|
118
|
+
"@opentelemetry/sdk-metrics": "2.11.0",
|
|
119
|
+
"@opentelemetry/sdk-trace-base": "2.11.0",
|
|
120
|
+
"@opentelemetry/sdk-trace-node": "2.11.0",
|
|
120
121
|
"@vercel/otel": "2.1.3",
|
|
121
|
-
"chalk": "
|
|
122
|
-
"zod": "
|
|
122
|
+
"chalk": "6.0.1",
|
|
123
|
+
"zod": "4.6.6"
|
|
123
124
|
},
|
|
124
125
|
"devDependencies": {
|
|
125
126
|
"@interfere/test-utils": "^10.0.1",
|
|
126
127
|
"@interfere/typescript-config": "^9.0.2",
|
|
127
128
|
"@interfere/vitest-config": "0.0.0",
|
|
128
|
-
"@playwright/test": "
|
|
129
|
-
"@types/node": "
|
|
129
|
+
"@playwright/test": "1.63.0",
|
|
130
|
+
"@types/node": "26.4.1",
|
|
130
131
|
"@types/react": "19.2.18",
|
|
131
132
|
"@types/react-dom": "19.2.7",
|
|
132
|
-
"@vitejs/plugin-react": "
|
|
133
|
+
"@vitejs/plugin-react": "6.1.1",
|
|
133
134
|
"@vitest/browser": "5.0.5",
|
|
134
135
|
"@vitest/browser-playwright": "5.0.5",
|
|
135
136
|
"@vitest/coverage-v8": "5.0.5",
|
|
136
|
-
"msw": "
|
|
137
|
-
"next": "
|
|
138
|
-
"playwright": "
|
|
137
|
+
"msw": "2.15.0",
|
|
138
|
+
"next": "16.4.1",
|
|
139
|
+
"playwright": "1.63.0",
|
|
139
140
|
"react": "19.3.0",
|
|
140
141
|
"react-dom": "19.3.0",
|
|
141
|
-
"tsdown": "
|
|
142
|
-
"typescript": "
|
|
142
|
+
"tsdown": "0.23.0",
|
|
143
|
+
"typescript": "7.0.2",
|
|
143
144
|
"vitest": "5.0.5",
|
|
144
145
|
"vitest-browser-react": "2.3.0",
|
|
145
|
-
"webpack": "
|
|
146
|
+
"webpack": "5.111.1"
|
|
146
147
|
},
|
|
147
148
|
"peerDependencies": {
|
|
148
149
|
"next": "^15.3.0 || ^16.0.0",
|