@interfere/vite 12.1.0 → 12.1.2
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/internal/build/source-maps.mjs +1 -1
- package/dist/package.mjs +1 -1
- package/package.json +33 -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
|
+
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHash,randomUUID}from"node:crypto";import{isAbsolute,join,relative,resolve}from"node:path";import{readFile,readdir,writeFile}from"node:fs/promises";import{injectDebugIdIntoJs,injectDebugIdIntoJs as injectDebugIdIntoJs$1,readDebugIdFromJs}from"@interfere/types/data/source-maps";import{mapWithConcurrency}from"@interfere/helpers/map-with-concurrency";const LEADING_DOT_SLASH_RE=/^(?:\.\/)+/u,SOURCEMAPPING_RE=/\/\/[#@]\s*sourceMappingURL=(?<sourceMap>\S+)\s*$/u,RUNTIME_DEBUG_ID_RE=/_debugIds\[[^\]]+\]\s*=\s*["'`](?<id>[a-fA-F0-9-]{36})["'`]/gu,SCRIPT_SUFFIXES=[`.js`,`.mjs`,`.cjs`];function normalizeDistDir(distDir){return distDir.replaceAll(`\\`,`/`).replace(LEADING_DOT_SLASH_RE,``)}function resolveDistDir(projectDir,distDir){return isAbsolute(distDir)?distDir:resolve(projectDir,distDir)}async function walkDistTrees(absDistDir,suffixes,subtrees){return(await Promise.all(subtrees.map(async subtree=>{let root=subtree===`.`?absDistDir:join(absDistDir,subtree),entries=await readdir(root,{recursive:!0}).catch(()=>[]),out=[];for(let entry of entries)suffixes.some(suffix=>entry.endsWith(suffix))&&out.push(join(root,entry));return out}))).flat()}function toPublicPath(rel,rewrites){let normalized=rel.replaceAll(`\\`,`/`);for(let{from,to}of rewrites){let prefix=from.endsWith(`/`)?from:`${from}/`;if(normalized.startsWith(prefix))return`${to}${normalized.slice(prefix.length)}`}return normalized}function injectDebugIdIntoMap(content,debugId){let json=JSON.parse(content);if(typeof json!=`object`||!json||Array.isArray(json))throw TypeError(`Source map must be a JSON object`);return Reflect.set(json,`debugId`,debugId),JSON.stringify(json)}async function discoverByPairing(opts){let absDistDir=resolveDistDir(opts.projectDir,normalizeDistDir(opts.distDir)),jsPaths=await walkDistTrees(absDistDir,SCRIPT_SUFFIXES,opts.subtrees),discovered=await mapWithConcurrency(jsPaths,16,async jsAbs=>{let content=await readFile(jsAbs,`utf8`),match=SOURCEMAPPING_RE.exec(content);if(!match?.groups?.sourceMap||match.groups.sourceMap.startsWith(`data:`))return null;let mapAbs
|
|
1
|
+
import{createHash,randomUUID}from"node:crypto";import{dirname,isAbsolute,join,relative,resolve,sep}from"node:path";import{readFile,readdir,realpath,writeFile}from"node:fs/promises";import{injectDebugIdIntoJs,injectDebugIdIntoJs as injectDebugIdIntoJs$1,readDebugIdFromJs}from"@interfere/types/data/source-maps";import{mapWithConcurrency}from"@interfere/helpers/map-with-concurrency";const LEADING_DOT_SLASH_RE=/^(?:\.\/)+/u,SOURCEMAPPING_RE=/\/\/[#@]\s*sourceMappingURL=(?<sourceMap>\S+)\s*$/u,RUNTIME_DEBUG_ID_RE=/_debugIds\[[^\]]+\]\s*=\s*["'`](?<id>[a-fA-F0-9-]{36})["'`]/gu,SCRIPT_SUFFIXES=[`.js`,`.mjs`,`.cjs`];function normalizeDistDir(distDir){return distDir.replaceAll(`\\`,`/`).replace(LEADING_DOT_SLASH_RE,``)}function resolveDistDir(projectDir,distDir){return isAbsolute(distDir)?distDir:resolve(projectDir,distDir)}function isInsideDir(root,candidate){let rel=relative(root,candidate);return rel!==``&&!isAbsolute(rel)&&rel.split(sep)[0]!==`..`}async function resolveContainedMap(absDistDir,realDistDir,jsAbs,sourceMappingUrl){let mapAbs=resolve(dirname(jsAbs),decodeURIComponent(sourceMappingUrl));if(!isInsideDir(absDistDir,mapAbs))return null;let mapReal=await realpath(mapAbs).catch(()=>null);return mapReal===null||isInsideDir(realDistDir,mapReal)?mapAbs:null}async function walkDistTrees(absDistDir,suffixes,subtrees){return(await Promise.all(subtrees.map(async subtree=>{let root=subtree===`.`?absDistDir:join(absDistDir,subtree),entries=await readdir(root,{recursive:!0}).catch(()=>[]),out=[];for(let entry of entries)suffixes.some(suffix=>entry.endsWith(suffix))&&out.push(join(root,entry));return out}))).flat()}function toPublicPath(rel,rewrites){let normalized=rel.replaceAll(`\\`,`/`);for(let{from,to}of rewrites){let prefix=from.endsWith(`/`)?from:`${from}/`;if(normalized.startsWith(prefix))return`${to}${normalized.slice(prefix.length)}`}return normalized}function injectDebugIdIntoMap(content,debugId){let json=JSON.parse(content);if(typeof json!=`object`||!json||Array.isArray(json))throw TypeError(`Source map must be a JSON object`);return Reflect.set(json,`debugId`,debugId),JSON.stringify(json)}async function discoverByPairing(opts){let absDistDir=resolveDistDir(opts.projectDir,normalizeDistDir(opts.distDir)),realDistDir=await realpath(absDistDir).catch(()=>absDistDir),jsPaths=await walkDistTrees(absDistDir,SCRIPT_SUFFIXES,opts.subtrees),discovered=await mapWithConcurrency(jsPaths,16,async jsAbs=>{let content=await readFile(jsAbs,`utf8`),match=SOURCEMAPPING_RE.exec(content);if(!match?.groups?.sourceMap||match.groups.sourceMap.startsWith(`data:`))return null;let mapAbs=await resolveContainedMap(absDistDir,realDistDir,jsAbs,match.groups.sourceMap);if(mapAbs===null)return null;let jsPublic=toPublicPath(relative(absDistDir,jsAbs),opts.publicPathRewrites);return[toPublicPath(relative(absDistDir,mapAbs),opts.publicPathRewrites),{existingDebugId:readDebugIdFromJs(content)??[...content.matchAll(RUNTIME_DEBUG_ID_RE)].at(-1)?.groups?.id,jsAbs,jsContent:content,jsPublic,mapAbs}]}),pairs=new Map;for(let[mapPublic,pair]of discovered.filter(entry=>entry!==null)){let chunkAbsolutes=pairs.get(mapPublic)?.chunkAbsolutes??[];pairs.set(mapPublic,{...pair,chunkAbsolutes:[...chunkAbsolutes,pair.jsAbs]})}let loaded=(await mapWithConcurrency([...pairs],16,async([mapPublic,pair])=>{let mapContent=await readFile(pair.mapAbs,`utf8`).catch(()=>null);if(mapContent===null)return null;let debugId=pair.existingDebugId??randomUUID(),mapJson=JSON.parse(mapContent),finalMap=typeof mapJson==`object`&&mapJson&&`debugId`in mapJson&&mapJson.debugId===debugId?mapContent:injectDebugIdIntoMap(mapContent,debugId);return pair.existingDebugId||await writeFile(pair.jsAbs,injectDebugIdIntoJs$1(pair.jsContent,debugId),`utf8`),finalMap!==mapContent&&await writeFile(pair.mapAbs,finalMap,`utf8`),{absolute:pair.mapAbs,chunkAbsolutes:pair.chunkAbsolutes,chunkUrl:pair.jsPublic,content:finalMap,debugId,hash:createHash(`sha256`).update(finalMap).digest(`hex`),path:mapPublic}})).filter(file=>file!==null);return{files:loaded,missingSourceMapCount:pairs.size-loaded.length,sourceFileCount:pairs.size}}export{discoverByPairing,injectDebugIdIntoJs};
|
package/dist/package.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var name=`@interfere/vite`,version=`12.1.
|
|
1
|
+
var name=`@interfere/vite`,version=`12.1.2`;export{name,version};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interfere/vite",
|
|
3
|
-
"version": "12.1.
|
|
3
|
+
"version": "12.1.2",
|
|
4
4
|
"description": "Vite build plugin and client + server initialization for Interfere.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"error-tracking",
|
|
@@ -12,9 +12,7 @@
|
|
|
12
12
|
"vite"
|
|
13
13
|
],
|
|
14
14
|
"homepage": "https://interfere.com",
|
|
15
|
-
"bugs":
|
|
16
|
-
"url": "mailto:support@interfere.com"
|
|
17
|
-
},
|
|
15
|
+
"bugs": "mailto:support@interfere.com",
|
|
18
16
|
"license": "MIT",
|
|
19
17
|
"author": "Interfere <support@interfere.com> (https://interfere.com)",
|
|
20
18
|
"repository": {
|
|
@@ -23,7 +21,9 @@
|
|
|
23
21
|
"directory": "src/packages/public/vite"
|
|
24
22
|
},
|
|
25
23
|
"files": [
|
|
26
|
-
"dist"
|
|
24
|
+
"dist",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"THIRD_PARTY_NOTICES.md"
|
|
27
27
|
],
|
|
28
28
|
"type": "module",
|
|
29
29
|
"exports": {
|
|
@@ -58,57 +58,57 @@
|
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"build": "tsdown",
|
|
61
|
-
"test": "vitest run --config ../../../../vitest.config.ts",
|
|
61
|
+
"test": "node ../../private/vitest-config/src/cli.ts run --config ../../../../vitest.config.ts",
|
|
62
62
|
"typecheck": "bun check"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@interfere/build": "^0.3.1",
|
|
66
66
|
"@interfere/constants": "^9.2.0",
|
|
67
|
-
"@interfere/helpers": "^9.2.
|
|
67
|
+
"@interfere/helpers": "^9.2.1",
|
|
68
68
|
"@interfere/javascript": "^0.2.1",
|
|
69
|
-
"@interfere/react": "^12.1.
|
|
69
|
+
"@interfere/react": "^12.1.2",
|
|
70
70
|
"@interfere/types": "^10.3.0",
|
|
71
|
-
"@opentelemetry/api": "
|
|
72
|
-
"@opentelemetry/api-logs": "
|
|
73
|
-
"@opentelemetry/baggage-span-processor": "
|
|
74
|
-
"@opentelemetry/context-async-hooks": "
|
|
75
|
-
"@opentelemetry/core": "
|
|
76
|
-
"@opentelemetry/exporter-logs-otlp-http": "
|
|
77
|
-
"@opentelemetry/exporter-metrics-otlp-http": "
|
|
78
|
-
"@opentelemetry/exporter-trace-otlp-http": "
|
|
79
|
-
"@opentelemetry/instrumentation": "
|
|
80
|
-
"@opentelemetry/instrumentation-undici": "
|
|
81
|
-
"@opentelemetry/resources": "
|
|
82
|
-
"@opentelemetry/sdk-logs": "
|
|
83
|
-
"@opentelemetry/sdk-metrics": "
|
|
84
|
-
"@opentelemetry/sdk-trace-base": "
|
|
85
|
-
"@opentelemetry/sdk-trace-node": "
|
|
86
|
-
"zod": "
|
|
71
|
+
"@opentelemetry/api": "1.9.1",
|
|
72
|
+
"@opentelemetry/api-logs": "0.222.0",
|
|
73
|
+
"@opentelemetry/baggage-span-processor": "0.5.0",
|
|
74
|
+
"@opentelemetry/context-async-hooks": "2.11.0",
|
|
75
|
+
"@opentelemetry/core": "2.11.0",
|
|
76
|
+
"@opentelemetry/exporter-logs-otlp-http": "0.222.0",
|
|
77
|
+
"@opentelemetry/exporter-metrics-otlp-http": "0.222.0",
|
|
78
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.222.0",
|
|
79
|
+
"@opentelemetry/instrumentation": "0.222.0",
|
|
80
|
+
"@opentelemetry/instrumentation-undici": "0.32.0",
|
|
81
|
+
"@opentelemetry/resources": "2.11.0",
|
|
82
|
+
"@opentelemetry/sdk-logs": "0.222.0",
|
|
83
|
+
"@opentelemetry/sdk-metrics": "2.11.0",
|
|
84
|
+
"@opentelemetry/sdk-trace-base": "2.11.0",
|
|
85
|
+
"@opentelemetry/sdk-trace-node": "2.11.0",
|
|
86
|
+
"zod": "4.6.6"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@interfere/test-utils": "^10.0.
|
|
89
|
+
"@interfere/test-utils": "^10.0.1",
|
|
90
90
|
"@interfere/typescript-config": "^9.0.2",
|
|
91
91
|
"@interfere/vitest-config": "0.0.0",
|
|
92
|
-
"@jridgewell/trace-mapping": "
|
|
93
|
-
"@playwright/test": "
|
|
92
|
+
"@jridgewell/trace-mapping": "0.3.31",
|
|
93
|
+
"@playwright/test": "1.63.0",
|
|
94
94
|
"@tanstack/react-start": "1.168.60",
|
|
95
|
-
"@types/node": "
|
|
95
|
+
"@types/node": "26.4.1",
|
|
96
96
|
"@types/react": "19.2.18",
|
|
97
97
|
"@types/react-dom": "19.2.7",
|
|
98
98
|
"@vitest/coverage-v8": "5.0.5",
|
|
99
|
-
"msw": "
|
|
99
|
+
"msw": "2.15.0",
|
|
100
100
|
"react": "19.3.0",
|
|
101
101
|
"react-dom": "19.3.0",
|
|
102
|
-
"tsdown": "
|
|
103
|
-
"typescript": "
|
|
104
|
-
"vite": "
|
|
102
|
+
"tsdown": "0.23.0",
|
|
103
|
+
"typescript": "7.0.2",
|
|
104
|
+
"vite": "8.2.4",
|
|
105
105
|
"vitest": "5.0.5"
|
|
106
106
|
},
|
|
107
107
|
"peerDependencies": {
|
|
108
108
|
"@tanstack/react-start": "1.168.60",
|
|
109
109
|
"react": "^19.0.0",
|
|
110
110
|
"react-dom": "^19.0.0",
|
|
111
|
-
"vite": "
|
|
111
|
+
"vite": "8.2.4"
|
|
112
112
|
},
|
|
113
113
|
"peerDependenciesMeta": {
|
|
114
114
|
"@tanstack/react-start": {
|