@90soft/parse-server-kit 2.9.0 → 2.10.1
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/CHANGELOG.md +99 -0
- package/CLAUDE.md +698 -698
- package/dist/config.d.ts +68 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +35 -0
- package/dist/config.js.map +1 -0
- package/dist/database/indexes.d.ts.map +1 -1
- package/dist/database/indexes.js +14 -1
- package/dist/database/indexes.js.map +1 -1
- package/dist/decorators/cloudDecorator.d.ts.map +1 -1
- package/dist/decorators/cloudDecorator.js +19 -0
- package/dist/decorators/cloudDecorator.js.map +1 -1
- package/dist/decorators/cloudRegistry.d.ts +13 -0
- package/dist/decorators/cloudRegistry.d.ts.map +1 -1
- package/dist/decorators/cloudRegistry.js +23 -1
- package/dist/decorators/cloudRegistry.js.map +1 -1
- package/dist/decorators/parseDecorators.d.ts +1 -1
- package/dist/decorators/parseDecorators.d.ts.map +1 -1
- package/dist/decorators/parseDecorators.js +131 -4
- package/dist/decorators/parseDecorators.js.map +1 -1
- package/dist/decorators/triggerDecorator.d.ts +14 -0
- package/dist/decorators/triggerDecorator.d.ts.map +1 -1
- package/dist/decorators/triggerDecorator.js +31 -2
- package/dist/decorators/triggerDecorator.js.map +1 -1
- package/dist/decorators/triggerRegistry.d.ts +8 -0
- package/dist/decorators/triggerRegistry.d.ts.map +1 -1
- package/dist/decorators/triggerRegistry.js +18 -0
- package/dist/decorators/triggerRegistry.js.map +1 -1
- package/dist/decorators/types/cloudTypes.d.ts +11 -0
- package/dist/decorators/types/cloudTypes.d.ts.map +1 -1
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +66 -5
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/models/BaseModel.d.ts.map +1 -1
- package/dist/models/BaseModel.js +5 -2
- package/dist/models/BaseModel.js.map +1 -1
- package/dist/utils/dynamicImport.d.ts.map +1 -1
- package/dist/utils/dynamicImport.js +33 -11
- package/dist/utils/dynamicImport.js.map +1 -1
- package/dist/utils/roleCache.d.ts.map +1 -1
- package/dist/utils/roleCache.js +4 -1
- package/dist/utils/roleCache.js.map +1 -1
- package/package.json +3 -2
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings this library needs but should not assume.
|
|
3
|
+
*
|
|
4
|
+
* These used to be constants, read straight from the environment or hardcoded
|
|
5
|
+
* to one project's conventions — a mount path from `process.env.mountPath`, an
|
|
6
|
+
* admin role called `SuperAdmin`, a pointer class called `IMG`. That works
|
|
7
|
+
* perfectly for the codebase they came from and confuses everyone else, who has
|
|
8
|
+
* different role names, different models, and no reason to know that this
|
|
9
|
+
* particular environment variable is load-bearing.
|
|
10
|
+
*
|
|
11
|
+
* Every default below reproduces the previous behaviour exactly, so an existing
|
|
12
|
+
* project that calls nothing here is unaffected.
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* configureKit({mountPath: '/api', adminRole: 'Owner'});
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Values are resolved when they are *used*, not when this module loads, so
|
|
19
|
+
* `dotenv` (or anything else that populates the environment after import) still
|
|
20
|
+
* works.
|
|
21
|
+
*/
|
|
22
|
+
export interface KitConfig {
|
|
23
|
+
/**
|
|
24
|
+
* Where Parse Server is mounted, e.g. `/parse`.
|
|
25
|
+
*
|
|
26
|
+
* Used to recognise file routes and as the default Swagger server URL.
|
|
27
|
+
* Falls back to `process.env.mountPath` — the variable this library used to
|
|
28
|
+
* read directly — and then to `/parse`, Parse Server's own default.
|
|
29
|
+
*/
|
|
30
|
+
mountPath?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The master key, used by `restrictRoutes` to let privileged callers past
|
|
33
|
+
* the route restrictions.
|
|
34
|
+
*
|
|
35
|
+
* Falls back to `process.env.masterKey` — the variable this library used to
|
|
36
|
+
* read directly. **If neither is set, the master key bypass never fires**,
|
|
37
|
+
* and a caller presenting a perfectly valid master key is still refused.
|
|
38
|
+
* That failure is silent, which is why it is worth setting explicitly.
|
|
39
|
+
*/
|
|
40
|
+
masterKey?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The role allowed to manage the `_Role` class in a generated schema.
|
|
43
|
+
* Default `SuperAdmin`.
|
|
44
|
+
*/
|
|
45
|
+
adminRole?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Pointer target classes that `BaseModel.fromParams()` skips.
|
|
48
|
+
*
|
|
49
|
+
* These are classes whose pointers need handling of their own — an uploaded
|
|
50
|
+
* image that has to be processed before it can be attached, for instance —
|
|
51
|
+
* so blindly building a pointer from request params would be wrong.
|
|
52
|
+
* Default `['IMG', 'File']`.
|
|
53
|
+
*
|
|
54
|
+
* A single model can still override this with a static of the same name.
|
|
55
|
+
*/
|
|
56
|
+
excludedPointerClasses?: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Set any of the library's settings. Merges with whatever was set before, so it
|
|
60
|
+
* can be called more than once, and can be called at any point before the
|
|
61
|
+
* values are used.
|
|
62
|
+
*/
|
|
63
|
+
export declare function configureKit(config: KitConfig): void;
|
|
64
|
+
/** Everything resolved, in precedence order: explicit → environment → default. */
|
|
65
|
+
export declare function kitConfig(): Required<KitConfig>;
|
|
66
|
+
/** Drop every override and go back to the defaults. Intended for tests. */
|
|
67
|
+
export declare function resetKitConfig(): void;
|
|
68
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC;AAUD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED,kFAAkF;AAClF,wBAAgB,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,CAW/C;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.configureKit = configureKit;
|
|
4
|
+
exports.kitConfig = kitConfig;
|
|
5
|
+
exports.resetKitConfig = resetKitConfig;
|
|
6
|
+
const DEFAULTS = {
|
|
7
|
+
adminRole: 'SuperAdmin',
|
|
8
|
+
excludedPointerClasses: ['IMG', 'File'],
|
|
9
|
+
mountPath: '/parse',
|
|
10
|
+
};
|
|
11
|
+
let overrides = {};
|
|
12
|
+
/**
|
|
13
|
+
* Set any of the library's settings. Merges with whatever was set before, so it
|
|
14
|
+
* can be called more than once, and can be called at any point before the
|
|
15
|
+
* values are used.
|
|
16
|
+
*/
|
|
17
|
+
function configureKit(config) {
|
|
18
|
+
overrides = { ...overrides, ...config };
|
|
19
|
+
}
|
|
20
|
+
/** Everything resolved, in precedence order: explicit → environment → default. */
|
|
21
|
+
function kitConfig() {
|
|
22
|
+
return {
|
|
23
|
+
mountPath: overrides.mountPath ?? process.env.mountPath ?? DEFAULTS.mountPath,
|
|
24
|
+
// No default: an absent master key must never match, so a misconfigured
|
|
25
|
+
// server fails closed rather than admitting everyone as master.
|
|
26
|
+
masterKey: overrides.masterKey ?? process.env.masterKey ?? '',
|
|
27
|
+
adminRole: overrides.adminRole ?? DEFAULTS.adminRole,
|
|
28
|
+
excludedPointerClasses: overrides.excludedPointerClasses ?? [...DEFAULTS.excludedPointerClasses],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Drop every override and go back to the defaults. Intended for tests. */
|
|
32
|
+
function resetKitConfig() {
|
|
33
|
+
overrides = {};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AA0EA,oCAEC;AAGD,8BAWC;AAGD,wCAEC;AAlCD,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,YAAY;IACvB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACvC,SAAS,EAAE,QAAQ;CACX,CAAC;AAEX,IAAI,SAAS,GAAc,EAAE,CAAC;AAE9B;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAiB;IAC5C,SAAS,GAAG,EAAC,GAAG,SAAS,EAAE,GAAG,MAAM,EAAC,CAAC;AACxC,CAAC;AAED,kFAAkF;AAClF,SAAgB,SAAS;IACvB,OAAO;QACL,SAAS,EACP,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;QACpE,wEAAwE;QACxE,gEAAgE;QAChE,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE;QAC7D,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;QACpD,sBAAsB,EACpB,SAAS,CAAC,sBAAsB,IAAI,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc;IAC5B,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../src/database/indexes.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAA4B,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAG1F,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,qCAAqC;IACrC,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CAmBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CA0BxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAoDlD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,mBAAmB,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"indexes.d.ts","sourceRoot":"","sources":["../../src/database/indexes.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAA4B,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAG1F,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,qCAAqC;IACrC,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CAmBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,iBAAiB,EAAE,CA0BxD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAoDlD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,mBAAmB,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA+H9E;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wBAAkB,CAAC"}
|
package/dist/database/indexes.js
CHANGED
|
@@ -139,7 +139,20 @@ async function applyAllIndexes(parseServerInstance) {
|
|
|
139
139
|
const collection = db.collection(className);
|
|
140
140
|
const [, existingIndexes] = await (0, helper_1.catchError)(collection.indexes());
|
|
141
141
|
if (existingIndexes) {
|
|
142
|
-
const conflictingIndex = existingIndexes.find(
|
|
142
|
+
const conflictingIndex = existingIndexes.find(
|
|
143
|
+
/*
|
|
144
|
+
* Only a SINGLE-FIELD index conflicts. The check used to be
|
|
145
|
+
* `idx.key[field] && !idx.unique`, which matches any non-unique index
|
|
146
|
+
* merely CONTAINING the field — a compound index included. So
|
|
147
|
+
* `unique: true` on `status` alongside a compound index on
|
|
148
|
+
* ['status', 'createdAt'] dropped the compound one on every boot, and
|
|
149
|
+
* an index created outside this library was dropped for good.
|
|
150
|
+
*/
|
|
151
|
+
(idx) => idx.name !== '_id_' &&
|
|
152
|
+
!idx.unique &&
|
|
153
|
+
idx.key &&
|
|
154
|
+
Object.keys(idx.key).length === 1 &&
|
|
155
|
+
idx.key[field] !== undefined);
|
|
143
156
|
if (conflictingIndex) {
|
|
144
157
|
console.log(`[Indexes] Dropping non-unique index: ${conflictingIndex.name}`);
|
|
145
158
|
await (0, helper_1.catchError)(collection.dropIndex(conflictingIndex.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/database/indexes.ts"],"names":[],"mappings":";;;AAoCA,4CAmBC;AAKD,gDA0BC;AAUD,0CAoDC;AAMD,
|
|
1
|
+
{"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/database/indexes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudDecorator.d.ts","sourceRoot":"","sources":["../../src/decorators/cloudDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAOtE,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;AAErF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,QAE9D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,IAE7C,QAAQ,GAAG,EACX,aAAa,MAAM,EACnB,aAAa,kBAAkB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"cloudDecorator.d.ts","sourceRoot":"","sources":["../../src/decorators/cloudDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAOtE,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;AAErF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,QAE9D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,IAE7C,QAAQ,GAAG,EACX,aAAa,MAAM,EACnB,aAAa,kBAAkB,GAAG,SAAS,wBA8D9C;AAkED,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,YAlI5D,GAAG,eACE,MAAM,eACN,kBAAkB,GAAG,SAAS,wBAsI9C"}
|
|
@@ -23,6 +23,18 @@ function CloudFunction(config) {
|
|
|
23
23
|
// Wrap with role checking
|
|
24
24
|
descriptor.value = async function (...args) {
|
|
25
25
|
const request = args[0];
|
|
26
|
+
/*
|
|
27
|
+
* `requiresAuth` used to be read by nothing but the Swagger renderer, so
|
|
28
|
+
* an endpoint declaring it was wide open while the docs drew a padlock on
|
|
29
|
+
* it — one character away from `validation.requireUser`, which did work.
|
|
30
|
+
*
|
|
31
|
+
* The master key is the system, so it passes: a cloud function called
|
|
32
|
+
* with the master key has no `request.user` and is not an anonymous
|
|
33
|
+
* caller.
|
|
34
|
+
*/
|
|
35
|
+
if (config.requiresAuth && !request.user && !request.master) {
|
|
36
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Authentication required');
|
|
37
|
+
}
|
|
26
38
|
if (config.requireRoles) {
|
|
27
39
|
await checkUserRoles(request, config);
|
|
28
40
|
}
|
|
@@ -32,6 +44,13 @@ function CloudFunction(config) {
|
|
|
32
44
|
name: propertyKey,
|
|
33
45
|
config,
|
|
34
46
|
handler: descriptor.value,
|
|
47
|
+
// Recorded so the registry can re-read the method when it registers it,
|
|
48
|
+
// rather than keeping this snapshot. Decorators apply bottom-up, so
|
|
49
|
+
// anything written *above* @CloudFunction has not run yet and is not in
|
|
50
|
+
// `descriptor.value` — @Transactional most notably. Re-reading later
|
|
51
|
+
// picks it up and makes the order of the two irrelevant.
|
|
52
|
+
owner: target,
|
|
53
|
+
propertyKey,
|
|
35
54
|
};
|
|
36
55
|
cloudRegistry_1.CloudFunctionRegistry.register(metadata);
|
|
37
56
|
// Register the endpoint for Swagger — mirrors how @ParseField registers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudDecorator.js","sourceRoot":"","sources":["../../src/decorators/cloudDecorator.ts"],"names":[],"mappings":";;AASA,oDAEC;AAED,
|
|
1
|
+
{"version":3,"file":"cloudDecorator.js","sourceRoot":"","sources":["../../src/decorators/cloudDecorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,19 @@ export declare class CloudFunctionRegistry {
|
|
|
4
4
|
static register(metadata: CloudFunctionMetadata): void;
|
|
5
5
|
static getFunctions(): CloudFunctionMetadata[];
|
|
6
6
|
static getFunction(name: string): CloudFunctionMetadata | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The method as it stands now, not as it stood when the decorator ran.
|
|
9
|
+
*
|
|
10
|
+
* `@CloudFunction` sees `descriptor.value` at the moment it is applied, and
|
|
11
|
+
* decorators apply bottom-up — so anything written *above* it, such as
|
|
12
|
+
* `@Transactional()`, has not wrapped the method yet. Registering that early
|
|
13
|
+
* snapshot meant the outer decorator was silently dropped: the endpoint
|
|
14
|
+
* worked, every write succeeded, and nothing was ever atomic.
|
|
15
|
+
*
|
|
16
|
+
* Reading the property back at registration time picks up every wrapper,
|
|
17
|
+
* whichever order they were written in.
|
|
18
|
+
*/
|
|
19
|
+
private static resolveHandler;
|
|
7
20
|
static initialize(): void;
|
|
8
21
|
}
|
|
9
22
|
//# sourceMappingURL=cloudRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudRegistry.d.ts","sourceRoot":"","sources":["../../src/decorators/cloudRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAIzD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiD;IAEzE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IAI/C,MAAM,CAAC,YAAY;IAInB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B,MAAM,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"cloudRegistry.d.ts","sourceRoot":"","sources":["../../src/decorators/cloudRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAIzD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiD;IAEzE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IAI/C,MAAM,CAAC,YAAY;IAInB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM;IAI/B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,MAAM,CAAC,UAAU;CAelB"}
|
|
@@ -13,9 +13,31 @@ class CloudFunctionRegistry {
|
|
|
13
13
|
static getFunction(name) {
|
|
14
14
|
return this.functions.get(name);
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* The method as it stands now, not as it stood when the decorator ran.
|
|
18
|
+
*
|
|
19
|
+
* `@CloudFunction` sees `descriptor.value` at the moment it is applied, and
|
|
20
|
+
* decorators apply bottom-up — so anything written *above* it, such as
|
|
21
|
+
* `@Transactional()`, has not wrapped the method yet. Registering that early
|
|
22
|
+
* snapshot meant the outer decorator was silently dropped: the endpoint
|
|
23
|
+
* worked, every write succeeded, and nothing was ever atomic.
|
|
24
|
+
*
|
|
25
|
+
* Reading the property back at registration time picks up every wrapper,
|
|
26
|
+
* whichever order they were written in.
|
|
27
|
+
*/
|
|
28
|
+
static resolveHandler(metadata) {
|
|
29
|
+
const { owner, propertyKey } = metadata;
|
|
30
|
+
if (owner && propertyKey) {
|
|
31
|
+
const current = owner[propertyKey];
|
|
32
|
+
if (typeof current === 'function')
|
|
33
|
+
return current;
|
|
34
|
+
}
|
|
35
|
+
return metadata.handler;
|
|
36
|
+
}
|
|
16
37
|
static initialize() {
|
|
17
38
|
this.functions.forEach(metadata => {
|
|
18
|
-
|
|
39
|
+
const handler = this.resolveHandler(metadata);
|
|
40
|
+
Parse.Cloud.define(metadata.name, handler, metadata.config.validation);
|
|
19
41
|
console.log(`Registered cloud function: ${metadata.name}`);
|
|
20
42
|
});
|
|
21
43
|
// Build entity-based route map after all functions are registered
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudRegistry.js","sourceRoot":"","sources":["../../src/decorators/cloudRegistry.ts"],"names":[],"mappings":";;;AACA,qDAA+C;AAC/C,iEAA4D;AAE5D,MAAa,qBAAqB;IAGhC,MAAM,CAAC,QAAQ,CAAC,QAA+B;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"cloudRegistry.js","sourceRoot":"","sources":["../../src/decorators/cloudRegistry.ts"],"names":[],"mappings":";;;AACA,qDAA+C;AAC/C,iEAA4D;AAE5D,MAAa,qBAAqB;IAGhC,MAAM,CAAC,QAAQ,CAAC,QAA+B;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,YAAY;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,MAAM,CAAC,cAAc,CAAC,QAA+B;QAC3D,MAAM,EAAC,KAAK,EAAE,WAAW,EAAC,GAAG,QAAQ,CAAC;QACtC,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,OAAO,OAAO,CAAC;QACpD,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,UAAU;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC9C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,kEAAkE;QAClE,8BAAa,CAAC,UAAU,EAAE,CAAC;QAE3B,wEAAwE;QACxE,kEAAkE;QAClE,yDAAyD;QACzD,iCAAe,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;;AAlDH,sDAmDC;AAlDgB,+BAAS,GAAuC,IAAI,GAAG,EAAE,CAAC"}
|
|
@@ -86,7 +86,7 @@ export interface ParseClassOptions {
|
|
|
86
86
|
description?: string;
|
|
87
87
|
compoundIndexes?: CompoundIndex[];
|
|
88
88
|
}
|
|
89
|
-
export declare function ParseClass(className: ClassNameType, options?: ParseClassOptions): (constructor:
|
|
89
|
+
export declare function ParseClass(className: ClassNameType, options?: ParseClassOptions): <T extends Function>(constructor: T) => T;
|
|
90
90
|
export declare function getSchemaDefinition<T>(target: new () => T): {
|
|
91
91
|
compoundIndexes?: CompoundIndex[] | undefined;
|
|
92
92
|
uniqueFields?: string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDecorators.d.ts","sourceRoot":"","sources":["../../src/decorators/parseDecorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAErB,aAAa,EAEb,aAAa,EAEd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"parseDecorators.d.ts","sourceRoot":"","sources":["../../src/decorators/parseDecorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ require("reflect-metadata");
|
|
|
9
9
|
const schemaTypes_1 = require("./types/schemaTypes");
|
|
10
10
|
const swaggerRegistry_1 = require("../swagger/swaggerRegistry");
|
|
11
11
|
const triggerRegistry_1 = require("./triggerRegistry");
|
|
12
|
+
const triggerDecorator_1 = require("./triggerDecorator");
|
|
12
13
|
const classHooks = [];
|
|
13
14
|
const fieldHooks = [];
|
|
14
15
|
/** Register a hook that runs when @ParseClass is applied. Used by Swagger, Triggers, etc. */
|
|
@@ -96,7 +97,43 @@ function ParseField(options) {
|
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
return function (target, propertyKey) {
|
|
99
|
-
|
|
100
|
+
// A standard (TC39) decorator is called as (value, context) where context
|
|
101
|
+
// is an object carrying `kind`. Legacy decorators get (target, key). If we
|
|
102
|
+
// are handed the standard shape, `experimentalDecorators` is off and every
|
|
103
|
+
// decorator in the project is quietly doing the wrong thing.
|
|
104
|
+
if (propertyKey !== null &&
|
|
105
|
+
typeof propertyKey === 'object' &&
|
|
106
|
+
'kind' in propertyKey) {
|
|
107
|
+
throw new Error('@ParseField received a standard (TC39) decorator context, which means ' +
|
|
108
|
+
'`experimentalDecorators` is not enabled. This library uses legacy ' +
|
|
109
|
+
'decorators. Set {"compilerOptions": {"experimentalDecorators": true}} ' +
|
|
110
|
+
'in tsconfig.json — without it no model, trigger or cloud function ' +
|
|
111
|
+
'registers correctly.');
|
|
112
|
+
}
|
|
113
|
+
/*
|
|
114
|
+
* Clone-on-first-write, because `getMetadata` walks the prototype chain.
|
|
115
|
+
*
|
|
116
|
+
* On a subclass with no field metadata of its own, `getMetadata` returns
|
|
117
|
+
* the PARENT's object — and writing into it makes every class in the tree
|
|
118
|
+
* share one record. An audit base class is enough to trigger it:
|
|
119
|
+
*
|
|
120
|
+
* class Auditable extends BaseModel { @ParseField() declare createdBy }
|
|
121
|
+
* class Product extends Auditable { @ParseField() declare name }
|
|
122
|
+
* class Order extends Auditable { @ParseField() declare total }
|
|
123
|
+
*
|
|
124
|
+
* Shared, Product gains `total`, Order gains `name`, and Auditable gains
|
|
125
|
+
* both — wrong schemas, `fromParams` converting fields the model does not
|
|
126
|
+
* have, `validateObject` demanding foreign required fields, and
|
|
127
|
+
* `applyAllIndexes` indexing columns that do not exist. None reported.
|
|
128
|
+
*
|
|
129
|
+
* `getOwnMetadata` asks only this class. Absent, copy what was inherited so
|
|
130
|
+
* the subclass keeps its parent's fields, then write into the copy.
|
|
131
|
+
*
|
|
132
|
+
* Identical to the old behaviour for a class extending BaseModel directly:
|
|
133
|
+
* BaseModel carries no field metadata, so the copy is of {}.
|
|
134
|
+
*/
|
|
135
|
+
const ownFields = Reflect.getOwnMetadata('parse:fields', target.constructor);
|
|
136
|
+
const existingFields = ownFields ?? { ...(Reflect.getMetadata('parse:fields', target.constructor) || {}) };
|
|
100
137
|
const fieldMeta = {
|
|
101
138
|
type, required,
|
|
102
139
|
...(targetClass && { targetClass }),
|
|
@@ -128,6 +165,41 @@ function ParseField(options) {
|
|
|
128
165
|
}
|
|
129
166
|
};
|
|
130
167
|
}
|
|
168
|
+
// ── Field shadowing repair ──
|
|
169
|
+
/**
|
|
170
|
+
* Undo a class field that is hiding one of our accessors.
|
|
171
|
+
*
|
|
172
|
+
* `@ParseField` installs a getter/setter on the **prototype**, which read and
|
|
173
|
+
* write Parse's attribute store. A field written `title!: string` compiles, at
|
|
174
|
+
* `target: ES2022` and above, to an own property set to `undefined` — and an
|
|
175
|
+
* own property shadows a prototype accessor. Reads then return `undefined`,
|
|
176
|
+
* and writes land on the instance instead of Parse, so `save()` sends nothing.
|
|
177
|
+
* Nothing throws at any point.
|
|
178
|
+
*
|
|
179
|
+
* Deleting the own property makes the accessor reachable again. A value is
|
|
180
|
+
* re-assigned through it afterwards, so anything already set still lands where
|
|
181
|
+
* Parse can see it.
|
|
182
|
+
*
|
|
183
|
+
* **This is a no-op for code that does not have the problem.** Below
|
|
184
|
+
* `target: ES2022` — or with `declare` fields, or `useDefineForClassFields`
|
|
185
|
+
* false — no such own property is ever created, so there is nothing to find
|
|
186
|
+
* and nothing changes.
|
|
187
|
+
*/
|
|
188
|
+
function repairShadowedFields(instance, fieldNames) {
|
|
189
|
+
for (const name of fieldNames) {
|
|
190
|
+
const own = Object.getOwnPropertyDescriptor(instance, name);
|
|
191
|
+
// An accessor here is already ours. A non-configurable property cannot be
|
|
192
|
+
// removed, and guessing would be worse than leaving it.
|
|
193
|
+
if (!own || own.get || own.set || !own.configurable)
|
|
194
|
+
continue;
|
|
195
|
+
const value = own.value;
|
|
196
|
+
delete instance[name];
|
|
197
|
+
// Route any value the field carried through the accessor, so it reaches
|
|
198
|
+
// Parse rather than sitting on the instance.
|
|
199
|
+
if (value !== undefined)
|
|
200
|
+
instance[name] = value;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
131
203
|
function ParseClass(className, options = {}) {
|
|
132
204
|
return function (constructor) {
|
|
133
205
|
Reflect.defineMetadata('parse:className', className, constructor);
|
|
@@ -140,13 +212,63 @@ function ParseClass(className, options = {}) {
|
|
|
140
212
|
Reflect.defineMetadata('parse:compoundIndexes', options.compoundIndexes, constructor);
|
|
141
213
|
}
|
|
142
214
|
const isRoleSubclass = constructor.prototype instanceof Parse.Role;
|
|
215
|
+
const fields = Reflect.getMetadata('parse:fields', constructor) || {};
|
|
216
|
+
const fieldNames = Object.keys(fields);
|
|
217
|
+
/**
|
|
218
|
+
* The class that actually gets constructed.
|
|
219
|
+
*
|
|
220
|
+
* A thin subclass whose constructor undoes any class field shadowing one of
|
|
221
|
+
* our accessors — see `repairShadowedFields`. Everything observable is
|
|
222
|
+
* preserved: `name` is copied over (`@Route` reads it), metadata is
|
|
223
|
+
* inherited through the prototype chain, and `instanceof` still holds
|
|
224
|
+
* because this extends the original.
|
|
225
|
+
*
|
|
226
|
+
* Whether repair is needed is decided once, from the first instance, and
|
|
227
|
+
* then remembered. A codebase without the problem pays one boolean check
|
|
228
|
+
* per object and nothing else.
|
|
229
|
+
*/
|
|
230
|
+
let needsRepair = undefined;
|
|
231
|
+
const Constructed = fieldNames.length === 0
|
|
232
|
+
? constructor
|
|
233
|
+
: (() => {
|
|
234
|
+
const Wrapped = class extends constructor {
|
|
235
|
+
constructor(...args) {
|
|
236
|
+
super(...args);
|
|
237
|
+
if (needsRepair === undefined) {
|
|
238
|
+
needsRepair = fieldNames.some(name => {
|
|
239
|
+
const own = Object.getOwnPropertyDescriptor(this, name);
|
|
240
|
+
return Boolean(own && !own.get && !own.set);
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
if (needsRepair)
|
|
244
|
+
repairShadowedFields(this, fieldNames);
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
// `@Route(Model)` derives its prefix from the class name, so this
|
|
248
|
+
// has to survive the wrapping.
|
|
249
|
+
Object.defineProperty(Wrapped, 'name', {
|
|
250
|
+
value: constructor.name,
|
|
251
|
+
configurable: true,
|
|
252
|
+
});
|
|
253
|
+
return Wrapped;
|
|
254
|
+
})();
|
|
143
255
|
if (!isRoleSubclass) {
|
|
144
|
-
|
|
145
|
-
|
|
256
|
+
// A second registration of the same name means the same file was loaded
|
|
257
|
+
// twice — almost always `importFiles` pointed at a tree holding both the
|
|
258
|
+
// compiled and the source copy. Parse accepts it quietly and the last
|
|
259
|
+
// one wins, which makes the resulting behaviour depend on directory
|
|
260
|
+
// order.
|
|
261
|
+
if (schemaTypes_1.classNames.includes(className)) {
|
|
262
|
+
console.warn(`[ParseClass] '${className}' is being registered a second time. ` +
|
|
263
|
+
'The later registration replaces the first. This usually means ' +
|
|
264
|
+
'importFiles ran over a directory containing both compiled and ' +
|
|
265
|
+
'source copies of the same model.');
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
146
268
|
schemaTypes_1.classNames.push(className);
|
|
147
269
|
}
|
|
270
|
+
Parse.Object.registerSubclass(className, Constructed);
|
|
148
271
|
}
|
|
149
|
-
const fields = Reflect.getMetadata('parse:fields', constructor) || {};
|
|
150
272
|
// ── Swagger Registration (built-in) ──
|
|
151
273
|
const properties = {
|
|
152
274
|
objectId: { type: 'string', description: 'Unique object identifier' },
|
|
@@ -180,11 +302,16 @@ function ParseClass(className, options = {}) {
|
|
|
180
302
|
validation: trigger.validation,
|
|
181
303
|
});
|
|
182
304
|
}
|
|
305
|
+
// This class's triggers are now real; it is no longer waiting.
|
|
306
|
+
(0, triggerDecorator_1.markTriggersFlushed)(constructor);
|
|
183
307
|
// Notify additional hooks (for custom integrations)
|
|
184
308
|
for (const hook of classHooks) {
|
|
185
309
|
hook(className, constructor, fields, options);
|
|
186
310
|
}
|
|
187
311
|
console.log(`Registered Parse class: ${className}`);
|
|
312
|
+
// Returned so `new Model()` in application code is constructed through the
|
|
313
|
+
// repair too, not only objects Parse builds from the database.
|
|
314
|
+
return Constructed;
|
|
188
315
|
};
|
|
189
316
|
}
|
|
190
317
|
// ── Schema Utility ──
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDecorators.js","sourceRoot":"","sources":["../../src/decorators/parseDecorators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parseDecorators.js","sourceRoot":"","sources":["../../src/decorators/parseDecorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { TriggerConfig } from './types/triggerTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Classes that have parked a trigger but not yet had it flushed.
|
|
5
|
+
*
|
|
6
|
+
* A trigger decorator cannot register anything on its own — it does not know
|
|
7
|
+
* the Parse class name, which only `@ParseClass` supplies. So it parks the
|
|
8
|
+
* handler in metadata and waits. On a class that never gets `@ParseClass`, it
|
|
9
|
+
* waits forever: the trigger is simply never registered, and nothing says so.
|
|
10
|
+
*
|
|
11
|
+
* Recording the constructor here lets `TriggerRegistry.initialize()` name the
|
|
12
|
+
* classes still waiting. Exported for that purpose only.
|
|
13
|
+
*/
|
|
14
|
+
export declare const pendingTriggerOwners: Map<Function, string[]>;
|
|
15
|
+
/** Called by `@ParseClass` once it has flushed a class's pending triggers. */
|
|
16
|
+
export declare function markTriggersFlushed(constructor: Function): void;
|
|
3
17
|
export declare const BeforeSave: (config?: TriggerConfig) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
4
18
|
export declare const AfterSave: (config?: TriggerConfig) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
5
19
|
export declare const BeforeDelete: (config?: TriggerConfig) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggerDecorator.d.ts","sourceRoot":"","sources":["../../src/decorators/triggerDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"triggerDecorator.d.ts","sourceRoot":"","sources":["../../src/decorators/triggerDecorator.ts"],"names":[],"mappings":"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"}
|