Skip to content

Commit 92f5e08

Browse files
authored
Merge branch 'alpha' into pr/1
2 parents 269f4ce + 2c29756 commit 92f5e08

15 files changed

+1691
-1503
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
[![auto-release](https://img.shields.io/badge/%F0%9F%9A%80-auto--release-9e34eb.svg)](https://github.com/parse-community/parse-dashboard/releases)
1010

1111
[![Node Version](https://img.shields.io/badge/nodejs-18,_20,_22-green.svg?logo=node.js&style=flat)](https://nodejs.org)
12-
[![MongoDB Version](https://img.shields.io/badge/mongodb-4.2,_4.4,_5,_6,_7,_8-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
12+
[![MongoDB Version](https://img.shields.io/badge/mongodb-6,_7,_8-green.svg?logo=mongodb&style=flat)](https://www.mongodb.com)
1313
[![Postgres Version](https://img.shields.io/badge/postgresql-13,_14,_15,_16,_17-green.svg?logo=postgresql&style=flat)](https://www.postgresql.org)
1414

1515
[![npm latest version](https://img.shields.io/npm/v/parse-server/latest.svg)](https://www.npmjs.com/package/parse-server)

changelogs/CHANGELOG_alpha.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## [8.2.1-alpha.2](https://github.com/parse-community/parse-server/compare/8.2.1-alpha.1...8.2.1-alpha.2) (2025-05-14)
2+
3+
4+
### Performance Improvements
5+
6+
* Remove saving Parse Cloud Job request parameters in internal collection `_JobStatus` ([#8343](https://github.com/parse-community/parse-server/issues/8343)) ([e98733c](https://github.com/parse-community/parse-server/commit/e98733cbac9451521a3acc388d2f9d29eb4610e0))
7+
18
## [8.2.1-alpha.1](https://github.com/parse-community/parse-server/compare/8.2.0...8.2.1-alpha.1) (2025-05-03)
29

310

changelogs/CHANGELOG_release.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## [8.2.1](https://github.com/parse-community/parse-server/compare/8.2.0...8.2.1) (2025-06-01)
2+
3+
4+
### Bug Fixes
5+
6+
* `Parse.Query.containedIn` and `matchesQuery` do not work with nested objects ([#9738](https://github.com/parse-community/parse-server/issues/9738)) ([0db3a6f](https://github.com/parse-community/parse-server/commit/0db3a6ff27a129427770e314a792cc586e4255b5))
7+
8+
### Performance Improvements
9+
10+
* Remove saving Parse Cloud Job request parameters in internal collection `_JobStatus` ([#8343](https://github.com/parse-community/parse-server/issues/8343)) ([e98733c](https://github.com/parse-community/parse-server/commit/e98733cbac9451521a3acc388d2f9d29eb4610e0))
11+
112
# [8.2.0](https://github.com/parse-community/parse-server/compare/8.1.0...8.2.0) (2025-05-01)
213

314

package-lock.json

Lines changed: 1596 additions & 1433 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "parse-server",
3-
"version": "8.2.1-alpha.1",
3+
"version": "8.2.1",
44
"description": "An express module providing a Parse-compatible API server",
55
"main": "lib/index.js",
66
"repository": {
@@ -20,7 +20,7 @@
2020
],
2121
"license": "Apache-2.0",
2222
"dependencies": {
23-
"@apollo/server": "4.12.0",
23+
"@apollo/server": "4.12.1",
2424
"@babel/eslint-parser": "7.27.1",
2525
"@graphql-tools/merge": "9.0.24",
2626
"@graphql-tools/schema": "10.0.23",
@@ -46,7 +46,7 @@
4646
"lodash": "4.17.21",
4747
"lru-cache": "10.4.0",
4848
"mime": "4.0.7",
49-
"mongodb": "6.16.0",
49+
"mongodb": "6.17.0",
5050
"mustache": "4.2.0",
5151
"otpauth": "9.4.0",
5252
"parse": "6.1.1",
@@ -58,22 +58,22 @@
5858
"rate-limit-redis": "4.2.0",
5959
"redis": "4.7.0",
6060
"router": "2.2.0",
61-
"semver": "7.7.1",
61+
"semver": "7.7.2",
6262
"subscriptions-transport-ws": "0.11.0",
6363
"tv4": "1.3.0",
6464
"uuid": "11.1.0",
6565
"winston": "3.17.0",
6666
"winston-daily-rotate-file": "5.0.0",
67-
"ws": "8.18.1"
67+
"ws": "8.18.2"
6868
},
6969
"devDependencies": {
7070
"@actions/core": "1.11.1",
71-
"@apollo/client": "3.13.7",
71+
"@apollo/client": "3.13.8",
7272
"@babel/cli": "7.27.0",
73-
"@babel/core": "7.27.1",
73+
"@babel/core": "7.27.4",
7474
"@babel/plugin-proposal-object-rest-spread": "7.20.7",
7575
"@babel/plugin-transform-flow-strip-types": "7.26.5",
76-
"@babel/preset-env": "7.26.9",
76+
"@babel/preset-env": "7.27.2",
7777
"@babel/preset-typescript": "7.27.1",
7878
"@saithodev/semantic-release-backmerge": "4.0.1",
7979
"@semantic-release/changelog": "6.0.3",
@@ -87,31 +87,31 @@
8787
"clean-jsdoc-theme": "4.3.0",
8888
"cross-env": "7.0.3",
8989
"deep-diff": "1.0.2",
90-
"eslint": "9.25.1",
90+
"eslint": "9.27.0",
9191
"eslint-plugin-expect-type": "0.6.2",
92-
"flow-bin": "0.266.1",
93-
"form-data": "4.0.2",
94-
"globals": "16.1.0",
92+
"flow-bin": "0.271.0",
93+
"form-data": "4.0.3",
94+
"globals": "16.2.0",
9595
"graphql-tag": "2.12.6",
9696
"husky": "9.1.7",
97-
"jasmine": "5.6.0",
97+
"jasmine": "5.7.1",
9898
"jasmine-spec-reporter": "7.0.0",
9999
"jsdoc": "4.0.4",
100100
"jsdoc-babel": "0.5.0",
101-
"lint-staged": "15.5.1",
101+
"lint-staged": "16.1.0",
102102
"m": "1.9.1",
103103
"madge": "8.0.0",
104104
"mock-files-adapter": "file:spec/dependencies/mock-files-adapter",
105105
"mock-mail-adapter": "file:spec/dependencies/mock-mail-adapter",
106-
"mongodb-runner": "5.8.2",
106+
"mongodb-runner": "5.8.3",
107107
"node-abort-controller": "3.1.1",
108108
"node-fetch": "3.2.10",
109109
"nyc": "17.1.0",
110110
"prettier": "2.0.5",
111-
"semantic-release": "24.2.3",
111+
"semantic-release": "24.2.5",
112112
"typescript": "5.8.3",
113-
"typescript-eslint": "8.29.0",
114-
"yaml": "2.7.1"
113+
"typescript-eslint": "8.33.1",
114+
"yaml": "2.8.0"
115115
},
116116
"scripts": {
117117
"ci:check": "node ./ci/ciCheck.js",

spec/Adapters/Auth/gcenter.spec.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,28 @@ describe('GameCenterAuth Adapter', function () {
1212
const gcProd4 = fs.readFileSync(path.resolve(__dirname, '../../support/cert/gc-prod-4.cer'));
1313
const digicertPem = fs.readFileSync(path.resolve(__dirname, '../../support/cert/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crt.pem')).toString();
1414

15-
mockFetch([
16-
{
17-
url: 'https://static.gc.apple.com/public-key/gc-prod-4.cer',
18-
method: 'GET',
19-
response: {
20-
ok: true,
21-
headers: new Map(),
22-
arrayBuffer: () => Promise.resolve(
23-
gcProd4.buffer.slice(gcProd4.byteOffset, gcProd4.byteOffset + gcProd4.length)
24-
),
15+
mockFetch([
16+
{
17+
url: 'https://static.gc.apple.com/public-key/gc-prod-4.cer',
18+
method: 'GET',
19+
response: {
20+
ok: true,
21+
headers: new Map(),
22+
arrayBuffer: () => Promise.resolve(
23+
gcProd4.buffer.slice(gcProd4.byteOffset, gcProd4.byteOffset + gcProd4.length)
24+
),
25+
},
2526
},
26-
},
27-
{
28-
url: 'https://cacerts.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crt.pem',
29-
method: 'GET',
30-
response: {
31-
ok: true,
32-
headers: new Map([['content-type', 'application/x-pem-file'], ['content-length', digicertPem.length.toString()]]),
33-
text: () => Promise.resolve(digicertPem),
34-
},
35-
}
36-
]);
27+
{
28+
url: 'https://cacerts.digicert.com/DigiCertTrustedG4CodeSigningRSA4096SHA3842021CA1.crt.pem',
29+
method: 'GET',
30+
response: {
31+
ok: true,
32+
headers: new Map([['content-type', 'application/x-pem-file'], ['content-length', digicertPem.length.toString()]]),
33+
text: () => Promise.resolve(digicertPem),
34+
},
35+
}
36+
]);
3737
});
3838

3939
describe('Test config failing due to missing params or wrong types', function () {

spec/CloudCode.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3502,9 +3502,9 @@ describe('afterLogin hook', () => {
35023502
'X-Parse-REST-API-Key': 'rest',
35033503
'X-Parse-Cloud-Context': '{"a":"a"}',
35043504
},
3505-
body: JSON.stringify({_context: { hello: 'world' }}),
3505+
body: JSON.stringify({ _context: { hello: 'world' } }),
35063506
});
3507-
3507+
35083508
});
35093509

35103510
it('should have access to context when saving a new object', async () => {
@@ -3929,7 +3929,7 @@ describe('saveFile hooks', () => {
39293929
});
39303930
});
39313931

3932-
describe('Parse.File hooks', () => {
3932+
describe('Parse.File hooks', () => {
39333933
it('find hooks should run', async () => {
39343934
const file = new Parse.File('popeye.txt', [1, 2, 3], 'text/plain');
39353935
await file.save({ useMasterKey: true });
@@ -4047,7 +4047,7 @@ describe('Parse.File hooks', () => {
40474047
});
40484048
expect(response.headers['content-disposition']).toBe(`attachment;filename=${file._name}`);
40494049
});
4050-
});
4050+
});
40514051

40524052
describe('Cloud Config hooks', () => {
40534053
function testConfig() {

spec/EmailVerificationToken.spec.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,6 @@ describe('Email Verification Token Expiration:', () => {
647647

648648
it_id('b6c87f35-d887-477d-bc86-a9217a424f53')(it)('setting the email on the user should set a new email verification token and new expiration date for the token when expire email verify token flag is set', async () => {
649649
const user = new Parse.User();
650-
let userBeforeEmailReset;
651650

652651
let sendEmailOptions;
653652
const sendPromise = resolvingPromise();
@@ -680,7 +679,7 @@ describe('Email Verification Token Expiration:', () => {
680679
return results[0];
681680
});
682681
expect(typeof userFromDb).toBe('object');
683-
userBeforeEmailReset = userFromDb;
682+
const userBeforeEmailReset = userFromDb;
684683

685684
// trigger another token generation by setting the email
686685
user.set('email', '[email protected]');
@@ -713,7 +712,6 @@ describe('Email Verification Token Expiration:', () => {
713712
const user = new Parse.User();
714713
let sendEmailOptions;
715714
let sendVerificationEmailCallCount = 0;
716-
let userBeforeRequest;
717715
const promise1 = resolvingPromise();
718716
const promise2 = resolvingPromise();
719717
const emailAdapter = {
@@ -748,7 +746,7 @@ describe('Email Verification Token Expiration:', () => {
748746
return results[0];
749747
});
750748
// store this user before we make our email request
751-
userBeforeRequest = newUser;
749+
const userBeforeRequest = newUser;
752750

753751
expect(sendVerificationEmailCallCount).toBe(1);
754752

@@ -1011,7 +1009,7 @@ describe('Email Verification Token Expiration:', () => {
10111009
})
10121010
.then(fail)
10131011
.catch(response => response);
1014-
1012+
10151013
expect(response.status).toBe(400);
10161014
expect(sendVerificationEmailCallCount).toBe(0);
10171015
expect(sendEmailOptions).not.toBeDefined();

spec/ParseLiveQuery.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1182,7 +1182,7 @@ describe('ParseLiveQuery', function () {
11821182
await sleep(100);
11831183
expect(server.liveQueryServer.server.address()).toBeNull();
11841184
expect(server.liveQueryServer.subscriber.isOpen).toBeFalse();
1185-
1185+
11861186
liveQueryConnectionCount = await getConnectionsCount(server.liveQueryServer.server);
11871187
expect(liveQueryConnectionCount).toBe(0);
11881188
});

spec/ParseQuery.spec.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5312,7 +5312,7 @@ describe('Parse.Query testing', () => {
53125312
const child = new Parse.Object('Child');
53135313
child.set('key', 'value');
53145314
await child.save();
5315-
5315+
53165316
const parent = new Parse.Object('Parent');
53175317
parent.set('some', {
53185318
nested: {
@@ -5322,19 +5322,19 @@ describe('Parse.Query testing', () => {
53225322
},
53235323
});
53245324
await parent.save();
5325-
5325+
53265326
const query1 = await new Parse.Query('Parent')
53275327
.equalTo('some.nested.key.child', child)
53285328
.find();
5329-
5329+
53305330
expect(query1.length).toEqual(1);
53315331
});
5332-
5332+
53335333
it('queries nested key using containedIn', async () => {
53345334
const child = new Parse.Object('Child');
53355335
child.set('key', 'value');
53365336
await child.save();
5337-
5337+
53385338
const parent = new Parse.Object('Parent');
53395339
parent.set('some', {
53405340
nested: {
@@ -5344,19 +5344,19 @@ describe('Parse.Query testing', () => {
53445344
},
53455345
});
53465346
await parent.save();
5347-
5347+
53485348
const query1 = await new Parse.Query('Parent')
53495349
.containedIn('some.nested.key.child', [child])
53505350
.find();
5351-
5351+
53525352
expect(query1.length).toEqual(1);
53535353
});
5354-
5354+
53555355
it('queries nested key using matchesQuery', async () => {
53565356
const child = new Parse.Object('Child');
53575357
child.set('key', 'value');
53585358
await child.save();
5359-
5359+
53605360
const parent = new Parse.Object('Parent');
53615361
parent.set('some', {
53625362
nested: {
@@ -5366,11 +5366,11 @@ describe('Parse.Query testing', () => {
53665366
},
53675367
});
53685368
await parent.save();
5369-
5369+
53705370
const query1 = await new Parse.Query('Parent')
53715371
.matchesQuery('some.nested.key.child', new Parse.Query('Child').equalTo('key', 'value'))
53725372
.find();
5373-
5373+
53745374
expect(query1.length).toEqual(1);
53755375
});
53765376
});

0 commit comments

Comments
 (0)