Skip to content

Commit 8570801

Browse files
authored
Merge branch 'develop' into aliu/ff-integration
2 parents 675b047 + 666e668 commit 8570801

File tree

182 files changed

+4379
-668
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+4379
-668
lines changed

.craft.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,24 @@ targets:
157157
- nodejs20.x
158158
license: MIT
159159

160+
# NOTE: We publish the v8 layer under its own name so people on v8 can still get patches
161+
# whenever we release a new v8 version—otherwise we would overwrite the current major lambda layer.
162+
163+
# AWS Lambda Layer target
164+
- name: aws-lambda-layer
165+
includeNames: /^sentry-node-serverless-\d+.\d+.\d+(-(beta|alpha|rc)\.\d+)?\.zip$/
166+
layerName: SentryNodeServerlessSDKv8
167+
compatibleRuntimes:
168+
- name: node
169+
versions:
170+
- nodejs10.x
171+
- nodejs12.x
172+
- nodejs14.x
173+
- nodejs16.x
174+
- nodejs18.x
175+
- nodejs20.x
176+
license: MIT
177+
160178
# CDN Bundle Target
161179
- name: gcs
162180
id: 'browser-cdn-bundles'

.size-limit.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ module.exports = [
7979
path: 'packages/browser/build/npm/esm/index.js',
8080
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'replayCanvasIntegration'),
8181
gzip: true,
82-
limit: '79 KB',
82+
limit: '80 KB',
8383
},
8484
{
8585
name: '@sentry/browser (incl. Tracing, Replay, Feedback)',
@@ -166,7 +166,7 @@ module.exports = [
166166
name: 'CDN Bundle (incl. Tracing, Replay)',
167167
path: createCDNPath('bundle.tracing.replay.min.js'),
168168
gzip: true,
169-
limit: '74 KB',
169+
limit: '80 KB',
170170
},
171171
{
172172
name: 'CDN Bundle (incl. Tracing, Replay, Feedback)',
@@ -194,7 +194,7 @@ module.exports = [
194194
path: createCDNPath('bundle.tracing.replay.min.js'),
195195
gzip: false,
196196
brotli: false,
197-
limit: '230 KB',
197+
limit: '240 KB',
198198
},
199199
{
200200
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
@@ -228,7 +228,7 @@ module.exports = [
228228
import: createImport('init'),
229229
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
230230
gzip: true,
231-
limit: '140 KB',
231+
limit: '170 KB',
232232
},
233233
{
234234
name: '@sentry/node - without tracing',
@@ -260,7 +260,7 @@ module.exports = [
260260
import: createImport('init'),
261261
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
262262
gzip: true,
263-
limit: '130 KB',
263+
limit: '135 KB',
264264
},
265265
];
266266

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,27 @@
1010

1111
- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott
1212

13+
### Important Changes
14+
15+
- **feat(nuxt): Add option autoInjectServerSentry (no default import()) ([#14553](https://github.com/getsentry/sentry-javascript/pull/14553))**
16+
17+
Using the dynamic `import()` as the default behavior for initializing the SDK on the server-side did not work for every project.
18+
The default behavior of the SDK has been changed, and you now need to **use the `--import` flag to initialize Sentry on the server-side** to leverage full functionality.
19+
20+
Example with `--import`:
21+
22+
```bash
23+
node --import ./.output/server/sentry.server.config.mjs .output/server/index.mjs
24+
```
25+
26+
In case you are not able to use the `--import` flag, you can enable auto-injecting Sentry in the `nuxt.config.ts` (comes with limitations):
27+
28+
```json
29+
sentry: {
30+
autoInjectServerSentry: 'top-level-import', // or 'experimental_dynamic-import'
31+
},
32+
```
33+
1334
Work in this release was contributed by @lsmurray. Thank you for your contribution!
1435

1536
## 8.42.0

dev-packages/browser-integration-tests/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"dependencies": {
4343
"@babel/preset-typescript": "^7.16.7",
4444
"@playwright/test": "^1.44.1",
45-
"@sentry-internal/rrweb": "2.29.0",
45+
"@sentry-internal/rrweb": "2.30.0",
4646
"@sentry/browser": "8.42.0",
4747
"axios": "1.7.7",
4848
"babel-loader": "^8.2.2",

dev-packages/e2e-tests/README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,14 @@ EOF
5757

5858
Make sure to add a `test:build` and `test:assert` command to the new app's `package.json` file.
5959

60-
Add the new test app to `test-application` matrix in `.github/workflows/build.yml` for the `job_e2e_tests` job. If you
61-
want to run a canary test, add it to the `canary.yml` workflow.
60+
Test apps in the folder `test-applications` will be automatically picked up by CI in the job `job_e2e_tests` (in `.github/workflows/build.yml`).
61+
The test matrix for CI is generated in `dev-packages/e2e-tests/lib/getTestMatrix.ts`.
62+
63+
For each test app, CI checks its dependencies (and devDependencies) to see if any of them have changed in the current PR (based on nx affected projects).
64+
For example, if something is changed in the browser package, only E2E test apps that depend on browser will run, while others will be skipped.
65+
66+
You can add additional information about the test (e.g. canary versions, optional in CI) by adding `sentryTest` in the `package.json`
67+
of a test application.
6268

6369
**An important thing to note:** In the context of the build/test commands the fake test registry is available at
6470
`http://127.0.0.1:4873`. It hosts all of our packages as if they were to be published with the state of the current

dev-packages/e2e-tests/test-applications/aws-lambda-layer-cjs/tests/basic.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ test('Lambda layer SDK bundle sends events', async ({ request }) => {
3333
'sentry.op': 'function.aws.lambda',
3434
'cloud.account.id': '123453789012',
3535
'faas.id': 'arn:aws:lambda:us-east-1:123453789012:function:my-lambda',
36+
'faas.coldstart': true,
3637
'otel.kind': 'SERVER',
3738
},
3839
op: 'function.aws.lambda',

dev-packages/e2e-tests/test-applications/aws-serverless-esm/tests/basic.test.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,22 @@ test('AWS Serverless SDK sends events in ESM mode', async ({ request }) => {
2828
expect(transactionEvent.contexts?.trace).toEqual({
2929
data: {
3030
'sentry.sample_rate': 1,
31-
'sentry.source': 'component',
32-
'sentry.origin': 'auto.function.serverless',
31+
'sentry.source': 'custom',
32+
'sentry.origin': 'auto.otel.aws-lambda',
3333
'sentry.op': 'function.aws.lambda',
34+
'cloud.account.id': '123453789012',
35+
'faas.id': 'arn:aws:lambda:us-east-1:123453789012:function:my-lambda',
36+
'faas.coldstart': true,
37+
'otel.kind': 'SERVER',
3438
},
3539
op: 'function.aws.lambda',
36-
origin: 'auto.function.serverless',
40+
origin: 'auto.otel.aws-lambda',
3741
span_id: expect.stringMatching(/[a-f0-9]{16}/),
3842
status: 'ok',
3943
trace_id: expect.stringMatching(/[a-f0-9]{32}/),
4044
});
4145

42-
expect(transactionEvent.spans).toHaveLength(2);
46+
expect(transactionEvent.spans).toHaveLength(3);
4347

4448
// shows that the Otel Http instrumentation is working
4549
expect(transactionEvent.spans).toContainEqual(
@@ -54,6 +58,19 @@ test('AWS Serverless SDK sends events in ESM mode', async ({ request }) => {
5458
}),
5559
);
5660

61+
expect(transactionEvent.spans).toContainEqual(
62+
expect.objectContaining({
63+
data: {
64+
'sentry.op': 'function.aws.lambda',
65+
'sentry.origin': 'auto.function.serverless',
66+
'sentry.source': 'component',
67+
},
68+
description: 'my-lambda',
69+
op: 'function.aws.lambda',
70+
origin: 'auto.function.serverless',
71+
}),
72+
);
73+
5774
// shows that the manual span creation is working
5875
expect(transactionEvent.spans).toContainEqual(
5976
expect.objectContaining({
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# compiled output
2+
/dist
3+
/node_modules
4+
/build
5+
6+
# Logs
7+
logs
8+
*.log
9+
npm-debug.log*
10+
pnpm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
lerna-debug.log*
14+
15+
# OS
16+
.DS_Store
17+
18+
# Tests
19+
/coverage
20+
/.nyc_output
21+
22+
# IDEs and editors
23+
/.idea
24+
.project
25+
.classpath
26+
.c9/
27+
*.launch
28+
.settings/
29+
*.sublime-workspace
30+
31+
# IDE - VSCode
32+
.vscode/*
33+
!.vscode/settings.json
34+
!.vscode/tasks.json
35+
!.vscode/launch.json
36+
!.vscode/extensions.json
37+
38+
# dotenv environment variable files
39+
.env
40+
.env.development.local
41+
.env.test.local
42+
.env.production.local
43+
.env.local
44+
45+
# temp directory
46+
.temp
47+
.tmp
48+
49+
# Runtime data
50+
pids
51+
*.pid
52+
*.seed
53+
*.pid.lock
54+
55+
# Diagnostic reports (https://nodejs.org/api/report.html)
56+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@sentry:registry=http://127.0.0.1:4873
2+
@sentry-internal:registry=http://127.0.0.1:4873
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<p align="center">
2+
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3+
</p>
4+
5+
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6+
[circleci-url]: https://circleci.com/gh/nestjs/nest
7+
8+
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9+
<p align="center">
10+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13+
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14+
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15+
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16+
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17+
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18+
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
19+
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20+
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
21+
</p>
22+
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23+
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24+
25+
## Description
26+
27+
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28+
29+
## Project setup
30+
31+
```bash
32+
$ yarn install
33+
```
34+
35+
## Compile and run the project
36+
37+
```bash
38+
# development
39+
$ yarn run start
40+
41+
# watch mode
42+
$ yarn run start:dev
43+
44+
# production mode
45+
$ yarn run start:prod
46+
```
47+
48+
## Run tests
49+
50+
```bash
51+
# unit tests
52+
$ yarn run test
53+
54+
# e2e tests
55+
$ yarn run test:e2e
56+
57+
# test coverage
58+
$ yarn run test:cov
59+
```
60+
61+
## Resources
62+
63+
Check out a few resources that may come in handy when working with NestJS:
64+
65+
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
66+
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
67+
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
68+
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
69+
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
70+
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
71+
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
72+
73+
## Support
74+
75+
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
76+
77+
## Stay in touch
78+
79+
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
80+
- Website - [https://nestjs.com](https://nestjs.com/)
81+
- Twitter - [@nestframework](https://twitter.com/nestframework)
82+
83+
## License
84+
85+
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).

0 commit comments

Comments
 (0)