@spinajs/orm-api 2.0.481 → 2.0.482
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/README.md +80 -4
- package/lib/cjs/controllers/crud/Create.d.ts.map +1 -1
- package/lib/cjs/controllers/crud/Create.js +1 -1
- package/lib/cjs/controllers/crud/Create.js.map +1 -1
- package/lib/cjs/controllers/crud/Delete.d.ts +3 -3
- package/lib/cjs/controllers/crud/Delete.d.ts.map +1 -1
- package/lib/cjs/controllers/crud/Delete.js +4 -4
- package/lib/cjs/controllers/crud/Delete.js.map +1 -1
- package/lib/cjs/controllers/crud/Read.d.ts.map +1 -1
- package/lib/cjs/controllers/crud/Read.js +6 -6
- package/lib/cjs/controllers/crud/Read.js.map +1 -1
- package/lib/cjs/controllers/crud/Update.d.ts.map +1 -1
- package/lib/cjs/controllers/crud/Update.js +5 -5
- package/lib/cjs/controllers/crud/Update.js.map +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +2 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +7 -1
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +15 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/policies/FindModelType.d.ts.map +1 -1
- package/lib/cjs/policies/FindModelType.js +2 -1
- package/lib/cjs/policies/FindModelType.js.map +1 -1
- package/lib/cjs/route-args/ModelType.d.ts.map +1 -1
- package/lib/cjs/route-args/ModelType.js +3 -1
- package/lib/cjs/route-args/ModelType.js.map +1 -1
- package/lib/mjs/controllers/crud/Create.d.ts.map +1 -1
- package/lib/mjs/controllers/crud/Create.js +2 -2
- package/lib/mjs/controllers/crud/Create.js.map +1 -1
- package/lib/mjs/controllers/crud/Delete.d.ts +3 -3
- package/lib/mjs/controllers/crud/Delete.d.ts.map +1 -1
- package/lib/mjs/controllers/crud/Delete.js +5 -5
- package/lib/mjs/controllers/crud/Delete.js.map +1 -1
- package/lib/mjs/controllers/crud/Read.d.ts.map +1 -1
- package/lib/mjs/controllers/crud/Read.js +7 -7
- package/lib/mjs/controllers/crud/Read.js.map +1 -1
- package/lib/mjs/controllers/crud/Update.d.ts.map +1 -1
- package/lib/mjs/controllers/crud/Update.js +6 -6
- package/lib/mjs/controllers/crud/Update.js.map +1 -1
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +2 -1
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +7 -1
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +14 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/policies/FindModelType.d.ts.map +1 -1
- package/lib/mjs/policies/FindModelType.js +2 -1
- package/lib/mjs/policies/FindModelType.js.map +1 -1
- package/lib/mjs/route-args/ModelType.d.ts.map +1 -1
- package/lib/mjs/route-args/ModelType.js +3 -1
- package/lib/mjs/route-args/ModelType.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +15 -14
package/README.md
CHANGED
|
@@ -1,11 +1,87 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `@spinajs/orm-api`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Building blocks for CRUD controllers over [`@spinajs/orm`](../orm) models: a route argument that
|
|
4
|
+
resolves a model *type* from a URL segment, query-argument DTOs for filtering / including /
|
|
5
|
+
paging, a pluggable collection transformer, and a policy that validates the requested model.
|
|
6
|
+
|
|
7
|
+
## Read this first
|
|
8
|
+
|
|
9
|
+
The name suggests a ready-made generic CRUD API. It is **not** that today.
|
|
10
|
+
|
|
11
|
+
| Component | State |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| `JsonApi` controller (`src/controllers/JsonApi.ts`) | **Entirely commented out.** This package registers no routes. |
|
|
14
|
+
| `Crud` base controller | Ships and works. |
|
|
15
|
+
| `ModelType()` + `FindModelType` | Ship and work. |
|
|
16
|
+
| `QueryArgs`, `QueryFilter`, `QueryIncludes` | Ship and work. |
|
|
17
|
+
| `PlainJsonCollectionTransformer` | Ships; is the registered default. |
|
|
18
|
+
| `FromModel` / `AsModel` | Ship, but are an older, less capable copy of [`@spinajs/orm-http`](../orm-http)'s. |
|
|
19
|
+
| `RepositoryMiddleware` | Defined but not exported, and nothing invokes it. |
|
|
20
|
+
| `src/index.ts` | Re-exports only the four route-argument symbols; everything else is unreachable by specifier. |
|
|
21
|
+
| Bundled config `system.dirs.controllers` | Points at a directory in `@spinajs/orm-http` that does not exist. |
|
|
22
|
+
| Bundled config transformer | Names `JsonApiCollectionTransformer`, which is registered nowhere. |
|
|
23
|
+
| Test suite | Does not run — fails in `before all` with `No __file_provider_instance__ registered`, and asserts against `collection/*` routes no controller defines. |
|
|
24
|
+
|
|
25
|
+
**Use this package for its pieces and write the controller yourself.** If you only need route
|
|
26
|
+
arguments and filtering, prefer [`@spinajs/orm-http`](../orm-http) — it is the maintained one.
|
|
4
27
|
|
|
5
28
|
## Usage
|
|
6
29
|
|
|
30
|
+
```ts
|
|
31
|
+
import { BaseController, BasePath, Get, Ok, Policy, Query } from '@spinajs/http';
|
|
32
|
+
import { IModelStatic, ModelBase } from '@spinajs/orm';
|
|
33
|
+
import { Autoinject } from '@spinajs/di';
|
|
34
|
+
// Reachable only by relative path — see the docs.
|
|
35
|
+
import { Crud, CollectionApiTransformer, _assertSingleColumnKey } from '../../src/interfaces.js';
|
|
36
|
+
import { ModelType } from '../../src/route-args/ModelType.js';
|
|
37
|
+
import { FindModelType } from '../../src/policies/FindModelType.js';
|
|
38
|
+
import { QueryArgs } from '../../src/dto/QueryArgs.js';
|
|
39
|
+
|
|
40
|
+
@BasePath('collection')
|
|
41
|
+
@Policy(FindModelType)
|
|
42
|
+
export class Collection extends Crud {
|
|
43
|
+
@Autoinject(CollectionApiTransformer)
|
|
44
|
+
protected Transformer: CollectionApiTransformer;
|
|
45
|
+
|
|
46
|
+
/** GET /collection/:model */
|
|
47
|
+
@Get(':model')
|
|
48
|
+
public async list(@ModelType() model: IModelStatic, @Query() args: QueryArgs) {
|
|
49
|
+
const perPage = args?.perPage && args.perPage > 0 ? Math.min(args.perPage, 100) : 25;
|
|
50
|
+
const page = args?.page && args.page > 0 ? args.page : 0;
|
|
51
|
+
|
|
52
|
+
const query = model.query().select('*');
|
|
53
|
+
const totalCount = await (query.clone() as any).selectCount();
|
|
54
|
+
const data = await query.take(perPage).skip(page * perPage);
|
|
55
|
+
|
|
56
|
+
return new Ok(this.Transformer.transform(data as ModelBase[], { model: model as any, totalCount, currentPage: page, perPage }));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
7
59
|
```
|
|
8
|
-
const ormHttp = require('orm-http');
|
|
9
60
|
|
|
10
|
-
|
|
61
|
+
`FindModelType` validates the `:model` segment; `ModelType()` resolves it to the model class,
|
|
62
|
+
without a guard of its own — so always pair the two.
|
|
63
|
+
|
|
64
|
+
## Documentation
|
|
65
|
+
|
|
66
|
+
Full documentation lives in **[docs/](docs/)**.
|
|
67
|
+
|
|
68
|
+
| | Page |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| 01 | [Overview](docs/01-overview.md) |
|
|
71
|
+
| 02 | [Configuration](docs/02-configuration.md) |
|
|
72
|
+
| 03 | [Building a CRUD controller](docs/03-building-a-crud-controller.md) |
|
|
73
|
+
| 04 | [Query arguments](docs/04-query-args.md) |
|
|
74
|
+
| 05 | [Transformers and policies](docs/05-transformers-and-policies.md) |
|
|
75
|
+
|
|
76
|
+
## Security note
|
|
77
|
+
|
|
78
|
+
A generic `/:model` controller exposes **every registered model**, including internal ones.
|
|
79
|
+
`FindModelType` answers "is this a real model" and authorises nothing. Put an authorisation
|
|
80
|
+
policy in front of it, or keep an allow-list of exposed model names.
|
|
81
|
+
|
|
82
|
+
## Development
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
npm run build
|
|
86
|
+
npm run docs:check # from the repo root
|
|
11
87
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAkC,MAAM,eAAe,CAAC;AAO7E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAkC,MAAM,eAAe,CAAC;AAO7E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAA0B,MAAM,uBAAuB,CAAC;AAErE,qBAEa,UAAW,SAAQ,IAAI;IAElC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;IAE5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU;IAUlE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU;IAMrD,IAAI,CAAc,KAAK,EAAE,YAAY,EAAe,IAAI,EAAE,OAAO,EAAU,IAAI,CAAC,EAAE,SAAS;IA4B3F,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAe,IAAI,EAAE,OAAO,EAAU,IAAI,CAAC,EAAE,SAAS;CA4ChK"}
|
|
@@ -76,7 +76,7 @@ let CrudCreate = class CrudCreate extends interfaces_js_1.Crud {
|
|
|
76
76
|
if (!m) {
|
|
77
77
|
throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
78
78
|
Resource: model.name,
|
|
79
|
-
[mDescriptor
|
|
79
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(mDescriptor)]: id,
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
if (!permission.granted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,sCAAiD;AACjD,wCAA6E;AAC7E,oCAAyC;AACzC,oDAAyF;AACzF,kDAA0C;AAC1C,oDAAuB;AACvB,gEAA0D;AAC1D,sEAAgE;AAChE,sCAA2C;AAC3C,wCAAuF;AAEvF,
|
|
1
|
+
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,14 @@ export declare class CrudDelete extends Crud {
|
|
|
8
8
|
protected Orm: Orm;
|
|
9
9
|
protected Ac: AccessControl;
|
|
10
10
|
batchDelete(model: IModelStatic, ids: any[]): Promise<Ok<{
|
|
11
|
-
[x:
|
|
11
|
+
[x: string]: any[];
|
|
12
12
|
}>>;
|
|
13
13
|
del(model: IModelStatic, id: any): Promise<Ok<{
|
|
14
|
-
[x:
|
|
14
|
+
[x: string]: any[];
|
|
15
15
|
}>>;
|
|
16
16
|
deleteRelationBatch(model: IModelStatic, id: any, relation: string, relationIds: any[]): Promise<Ok<any[]>>;
|
|
17
17
|
deleteRelation(model: IModelStatic, id: any, relation: string, relationId: number): Promise<Ok<{
|
|
18
|
-
[x:
|
|
18
|
+
[x: string]: number;
|
|
19
19
|
}>>;
|
|
20
20
|
deleteRelationAll(model: IModelStatic, id: any, relation: string): Promise<Ok<any>>;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delete.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAgB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAY,EAAE,EAA8D,MAAM,eAAe,CAAC;AAQzG,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Delete.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAgB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAY,EAAE,EAA8D,MAAM,eAAe,CAAC;AAQzG,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAA0B,MAAM,uBAAuB,CAAC;AAErE,qBAEa,UAAW,SAAQ,IAAI;IAElC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;IAGf,WAAW,CAAc,KAAK,EAAE,YAAY,EAAU,GAAG,EAAE,GAAG,EAAE;;;IAahE,GAAG,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG;;;IAatD,mBAAmB,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAU,WAAW,EAAE,GAAG,EAAE;IAuB7H,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,MAAM;;;IAwBzH,iBAAiB,CAAc,KAAK,EAAE,YAAY,EAAiC,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM;CAoBnI"}
|
|
@@ -26,10 +26,10 @@ const interfaces_js_1 = require("./../../interfaces.js");
|
|
|
26
26
|
let CrudDelete = class CrudDelete extends interfaces_js_1.Crud {
|
|
27
27
|
async batchDelete(model, ids) {
|
|
28
28
|
const tModel = this.getModelDescriptor(model);
|
|
29
|
-
const result = await model.destroy().whereIn(tModel
|
|
29
|
+
const result = await model.destroy().whereIn((0, interfaces_js_1._assertSingleColumnKey)(tModel), ids);
|
|
30
30
|
this.Log.trace(`Deleted ${result.RowsAffected} records from ${tModel.Name}`);
|
|
31
31
|
return new http_1.Ok({
|
|
32
|
-
[tModel
|
|
32
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(tModel)]: ids,
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
async del(model, id) {
|
|
@@ -37,7 +37,7 @@ let CrudDelete = class CrudDelete extends interfaces_js_1.Crud {
|
|
|
37
37
|
const result = await model.destroy(id);
|
|
38
38
|
this.Log.trace(`Deleted ${result.RowsAffected} records from ${descriptor.Name} with id ${id}`);
|
|
39
39
|
return new http_1.Ok({
|
|
40
|
-
[descriptor
|
|
40
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(descriptor)]: [id],
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
async deleteRelationBatch(model, id, relation, relationIds) {
|
|
@@ -71,7 +71,7 @@ let CrudDelete = class CrudDelete extends interfaces_js_1.Crud {
|
|
|
71
71
|
});
|
|
72
72
|
this.Log.trace(`Deleted related ${result.RowsAffected} records from ${tModel.Name} with id ${id}`);
|
|
73
73
|
return new http_1.Ok({
|
|
74
|
-
[tModel
|
|
74
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(tModel)]: relationId,
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
async deleteRelationAll(model, id, relation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAA+D;AAC/D,wCAAyG;AACzG,kDAAgD;AAChD,oCAAyC;AACzC,oDAAmE;AAGnE,gEAA0D;AAC1D,sEAAgE;AAChE,sCAA2C;AAC3C,wCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAa,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAO,EAAE,EAAkC,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAwB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAsD,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,eAAe,CAAC;AAIvB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAa,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAO,EAAE,EAAkC,MAAM,eAAe,CAAC;AAExE,OAAO,EAAE,IAAI,IAAI,SAAS,EAAwB,aAAa,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAsD,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,eAAe,CAAC;AAIvB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,IAAI,EAA0B,MAAM,uBAAuB,CAAC;AAErE,qBAEa,QAAS,SAAQ,IAAI;IAEhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY;IAK7C;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS;;;;IAwB9C,MAAM,CAAc,KAAK,EAAE,YAAY,EAAW,SAAS,EAAE,SAAS,EAAW,OAAO,EAAE,WAAW,EAAW,QAAQ,EAAE,aAAa,EAAU,IAAI,EAAE,SAAS;;;;IA2BhK,GAAG,CAAS,IAAI,EAAE,SAAS,EAAe,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAW,QAAQ,EAAE,aAAa;IAkBpH,WAAW,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,GAAG,EAAW,QAAQ,EAAE,aAAa,EAAU,IAAI,CAAC,EAAE,SAAS;IAiC/K,YAAY,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,SAAS,EAAW,OAAO,EAAE,WAAW,EAAW,QAAQ,EAAE,aAAa,EAAU,IAAI,CAAC,EAAE,SAAS;;;;CAyC/N"}
|
|
@@ -93,11 +93,11 @@ let CrudRead = class CrudRead extends interfaces_js_1.Crud {
|
|
|
93
93
|
const { query, permission } = this.getSafeQuery(model, user);
|
|
94
94
|
const result = await query
|
|
95
95
|
.select('*')
|
|
96
|
-
.where(descriptor
|
|
96
|
+
.where((0, interfaces_js_1._assertSingleColumnKey)(descriptor), id)
|
|
97
97
|
.populate(includes)
|
|
98
98
|
.firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
99
99
|
Resource: model.name,
|
|
100
|
-
[descriptor
|
|
100
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(descriptor)]: id,
|
|
101
101
|
}));
|
|
102
102
|
return new http_1.Ok(permission.filter(result.dehydrateWithRelations()));
|
|
103
103
|
}
|
|
@@ -113,16 +113,16 @@ let CrudRead = class CrudRead extends interfaces_js_1.Crud {
|
|
|
113
113
|
if (!pExists) {
|
|
114
114
|
throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
115
115
|
Resource: model.name,
|
|
116
|
-
[mDescriptor
|
|
116
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(mDescriptor)]: id,
|
|
117
117
|
});
|
|
118
118
|
}
|
|
119
119
|
const result = await query
|
|
120
120
|
.select('*')
|
|
121
121
|
.populate(includes)
|
|
122
|
-
.where(rmDescriptor
|
|
122
|
+
.where((0, interfaces_js_1._assertSingleColumnKey)(rmDescriptor), relationId)
|
|
123
123
|
.firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${relationId} not found`, {
|
|
124
124
|
Resource: rDescriptor.TargetModel.name,
|
|
125
|
-
[rmDescriptor
|
|
125
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(rmDescriptor)]: relationId,
|
|
126
126
|
}));
|
|
127
127
|
return new http_1.Ok(permission.filter(result.dehydrateWithRelations()));
|
|
128
128
|
}
|
|
@@ -137,7 +137,7 @@ let CrudRead = class CrudRead extends interfaces_js_1.Crud {
|
|
|
137
137
|
if (!pExists) {
|
|
138
138
|
throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
139
139
|
Resource: model.name,
|
|
140
|
-
[mDescriptor
|
|
140
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(mDescriptor)]: id,
|
|
141
141
|
});
|
|
142
142
|
}
|
|
143
143
|
query
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Read.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Read.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sCAA4D;AAC5D,wCAAwE;AACxE,kDAA0C;AAC1C,wCAAuF;AACvF,oCAAyC;AACzC,oDAAqG;AACrG,sCAA2C;AAC3C,yBAAuB;AAGvB,gEAA0D;AAC1D,yDAAmD;AACnD,6DAAuD;AACvD,iEAA2D;AAC3D,sEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"Read.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAiC,MAAM,eAAe,CAAC;AAQ5E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Update.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAiC,MAAM,eAAe,CAAC;AAQ5E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,IAAI,EAA0B,MAAM,uBAAuB,CAAC;AAErE,qBAEa,UAAW,SAAQ,IAAI;IAElC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;IAIf,MAAM,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAe,IAAI,EAAE,OAAO;IAmBxF,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,GAAG,EAAe,IAAI,EAAE,OAAO;CA4BnK"}
|
|
@@ -26,9 +26,9 @@ const interfaces_js_1 = require("./../../interfaces.js");
|
|
|
26
26
|
let CrudUpdate = class CrudUpdate extends interfaces_js_1.Crud {
|
|
27
27
|
async update(model, id, data) {
|
|
28
28
|
const descriptor = this.getModelDescriptor(model);
|
|
29
|
-
const entity = await model.where(descriptor
|
|
29
|
+
const entity = await model.where((0, interfaces_js_1._assertSingleColumnKey)(descriptor), id).firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
30
30
|
Resource: model.name,
|
|
31
|
-
[descriptor
|
|
31
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(descriptor)]: id,
|
|
32
32
|
}));
|
|
33
33
|
entity.hydrate(data);
|
|
34
34
|
await entity.update();
|
|
@@ -44,12 +44,12 @@ let CrudUpdate = class CrudUpdate extends interfaces_js_1.Crud {
|
|
|
44
44
|
if (!pExists) {
|
|
45
45
|
throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
|
|
46
46
|
Resource: model.name,
|
|
47
|
-
[mDescriptor
|
|
47
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(mDescriptor)]: id,
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
const result = await query.where(rmDescriptor
|
|
50
|
+
const result = await query.where((0, interfaces_js_1._assertSingleColumnKey)(rmDescriptor), relationId).firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${relationId} not found`, {
|
|
51
51
|
Resource: rDescriptor.TargetModel.name,
|
|
52
|
-
[rmDescriptor
|
|
52
|
+
[(0, interfaces_js_1._assertSingleColumnKey)(rmDescriptor)]: relationId,
|
|
53
53
|
}));
|
|
54
54
|
this.Log.trace(`Updating relation ${relation} with id ${relationId} for model ${model.name} with id ${id}`);
|
|
55
55
|
result.hydrate(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAiD;AACjD,wCAA4E;AAC5E,kDAAgD;AAChD,oCAAyC;AACzC,oDAAuD;AAGvD,gEAA0D;AAC1D,sEAAgE;AAChE,sCAA2C;AAC3C,wCAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"Update.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sCAAiD;AACjD,wCAA4E;AAC5E,kDAAgD;AAChD,oCAAyC;AACzC,oDAAuD;AAGvD,gEAA0D;AAC1D,sEAAgE;AAChE,sCAA2C;AAC3C,wCAA8C;AAC9C,yDAAqE;AAI9D,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,oBAAI;IAYrB,AAAN,KAAK,CAAC,MAAM,CAAc,KAAmB,EAAW,EAAU,EAAe,IAAa;QACnG,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAA,sCAAsB,EAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CACnF,IAAI,6BAAgB,CAAC,kBAAkB,EAAE,YAAY,EAAE;YACrD,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,CAAC,IAAA,sCAAsB,EAAC,UAAU,CAAC,CAAC,EAAE,EAAE;SACzC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,IAAW,CAAC,CAAC;QAC5B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAE/C,OAAO,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAIY,AAAN,KAAK,CAAC,cAAc,CAAc,KAAmB,EAAW,EAAU,EAAW,QAAgB,EAAW,UAAe,EAAe,IAAa;QAChK,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAE9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,6BAAgB,CAAC,kBAAkB,EAAE,YAAY,EAAE;gBAC3D,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,CAAC,IAAA,sCAAsB,EAAC,WAAW,CAAC,CAAC,EAAE,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,IAAA,sCAAsB,EAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,YAAY,CAC7F,IAAI,6BAAgB,CAAC,kBAAkB,UAAU,YAAY,EAAE;YAC7D,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC,IAAI;YACtC,CAAC,IAAA,sCAAsB,EAAC,YAAY,CAAC,CAAC,EAAE,UAAU;SACnD,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,QAAQ,YAAY,UAAU,cAAc,KAAK,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,CAAC;QAE5G,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAEtB,OAAO,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AA3DY,gCAAU;AAEX;IADT,IAAA,YAAM,EAAC,cAAc,CAAC;8BACR,SAAG;uCAAC;AAGT;IADT,IAAA,eAAU,GAAE;8BACE,SAAG;uCAAC;AAGT;IADT,IAAA,eAAU,GAAE;8BACC,oBAAa;sCAAC;AAIf;IAFZ,IAAA,UAAG,EAAC,YAAY,CAAC;IACjB,IAAA,sBAAU,EAAC,CAAC,WAAW,CAAC,CAAC;IACL,WAAA,IAAA,wBAAS,GAAE,CAAA;IAAuB,WAAA,IAAA,YAAK,GAAE,CAAA;IAAc,WAAA,IAAA,gBAAS,GAAE,CAAA;;;;wCAetF;AAIY;IAFZ,IAAA,UAAG,EAAC,kCAAkC,CAAC;IACvC,IAAA,sBAAU,EAAC,CAAC,WAAW,CAAC,CAAC;IACG,WAAA,IAAA,wBAAS,GAAE,CAAA;IAAuB,WAAA,IAAA,YAAK,GAAE,CAAA;IAAc,WAAA,IAAA,YAAK,GAAE,CAAA;IAAoB,WAAA,IAAA,YAAK,GAAE,CAAA;IAAmB,WAAA,IAAA,gBAAS,GAAE,CAAA;;;;gDA2BnJ;qBA1DU,UAAU;IAFtB,IAAA,eAAQ,EAAC,MAAM,CAAC;IAChB,IAAA,aAAM,EAAC,gCAAa,CAAC;GACT,UAAU,CA2DtB"}
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAA0E,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmC,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAA0E,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmC,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAA0B,MAAM,iBAAiB,CAAC;AAE3E,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAG,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAKpG;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAG,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;;;;IAY/H,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAG,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CAiEtJ;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,yGAErC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,yGAEnE;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQxC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -15,6 +15,7 @@ exports.FromModel = FromModel;
|
|
|
15
15
|
const orm_1 = require("@spinajs/orm");
|
|
16
16
|
const http_1 = require("@spinajs/http");
|
|
17
17
|
const di_1 = require("@spinajs/di");
|
|
18
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
18
19
|
let AsDbModel = class AsDbModel extends http_1.RouteArgs {
|
|
19
20
|
get SupportedType() {
|
|
20
21
|
return 'AsDbModel';
|
|
@@ -66,7 +67,7 @@ let FromDbModel = class FromDbModel extends http_1.RouteArgs {
|
|
|
66
67
|
const descriptor = (0, orm_1.extractModelDescriptor)(param.RuntimeType);
|
|
67
68
|
query.setTable(descriptor.TableName, `$${descriptor.TableName}`);
|
|
68
69
|
query.where(function () {
|
|
69
|
-
this.where(descriptor
|
|
70
|
+
this.where((0, interfaces_js_1._assertSingleColumnKey)(descriptor), pkValue);
|
|
70
71
|
});
|
|
71
72
|
/**
|
|
72
73
|
* Checks BelongsToRelations
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAiIA,0BAEC;AASD,8BAEC;AA9ID,sCAAsH;AACtH,wCAA0I;AAC1I,oCAA8F;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Class } from '@spinajs/di';
|
|
2
|
-
import { ModelBase, SortOrder, IModelStatic, IOrmRelation, SelectQueryBuilder } from '@spinajs/orm';
|
|
2
|
+
import { ModelBase, SortOrder, IModelStatic, IOrmRelation, SelectQueryBuilder, IModelDescriptor } from '@spinajs/orm';
|
|
3
3
|
import { BaseController } from '@spinajs/http';
|
|
4
|
+
/**
|
|
5
|
+
* CRUD routes address a row by one `:id` path segment, which cannot carry a composite key.
|
|
6
|
+
* Returns the single key column, or throws so the caller gets a 400 instead of a query that
|
|
7
|
+
* silently filters on half the key.
|
|
8
|
+
*/
|
|
9
|
+
export declare function _assertSingleColumnKey(descriptor: IModelDescriptor): string;
|
|
4
10
|
export declare class JsonApiIncomingObject {
|
|
5
11
|
data: {
|
|
6
12
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAK/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAQ3E;AAED,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAe;gBAEJ,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,SAAS;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;MAKE;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB;;OAEG;IACH,OAAO,CAAC,EAAG,MAAM,EAAE,CAAC;IAEpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,kBAAkB,CAAC;CAC/E;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,8BAAsB,wBAAwB;aAC5B,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;CACjH;AAED;;GAEG;AACH,8BAAsB,IAAK,SAAQ,cAAc;IAC/C,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI;;;;;CAYrK"}
|
package/lib/cjs/interfaces.js
CHANGED
|
@@ -10,8 +10,22 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.Crud = exports.CollectionApiTransformer = exports.JsonApiIncomingObject = void 0;
|
|
13
|
+
exports._assertSingleColumnKey = _assertSingleColumnKey;
|
|
13
14
|
const validation_1 = require("@spinajs/validation");
|
|
14
15
|
const http_1 = require("@spinajs/http");
|
|
16
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
17
|
+
/**
|
|
18
|
+
* CRUD routes address a row by one `:id` path segment, which cannot carry a composite key.
|
|
19
|
+
* Returns the single key column, or throws so the caller gets a 400 instead of a query that
|
|
20
|
+
* silently filters on half the key.
|
|
21
|
+
*/
|
|
22
|
+
function _assertSingleColumnKey(descriptor) {
|
|
23
|
+
const keys = descriptor.PrimaryKey ?? [];
|
|
24
|
+
if (keys.length !== 1) {
|
|
25
|
+
throw new exceptions_1.BadRequest(`model ${descriptor.Name} has a composite primary key (${keys.join(', ')}); the generic CRUD routes address rows by a single id and cannot serve it`);
|
|
26
|
+
}
|
|
27
|
+
return keys[0];
|
|
28
|
+
}
|
|
15
29
|
let JsonApiIncomingObject = class JsonApiIncomingObject {
|
|
16
30
|
constructor(data) {
|
|
17
31
|
this.data = null;
|
|
@@ -38,7 +52,7 @@ class Crud extends http_1.BaseController {
|
|
|
38
52
|
const descriptor = this.getModelDescriptor(model);
|
|
39
53
|
const rDescriptor = this.getRelationDescriptor(model, relation);
|
|
40
54
|
const tDescriptor = this.getModelDescriptor(rDescriptor.TargetModel);
|
|
41
|
-
const sQuery = model.query().where(descriptor
|
|
55
|
+
const sQuery = model.query().where(_assertSingleColumnKey(descriptor), id).populate(relation, callback);
|
|
42
56
|
return {
|
|
43
57
|
relation: rDescriptor,
|
|
44
58
|
relationModel: tDescriptor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAaA,wDAQC;AAnBD,oDAA6C;AAC7C,wCAA+C;AAC/C,oDAAiD;AAIjD;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,UAA4B;IACjE,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;IAEzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,uBAAU,CAAC,SAAS,UAAU,CAAC,IAAI,iCAAiC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC7K,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAQhC,YAAY,IAAS;QAPd,SAAI,GAKP,IAAW,CAAC;QAGd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAXY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAM,EAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;AA2DD;;;GAGG;AACH,MAAsB,wBAAwB;CAE7C;AAFD,4DAEC;AAED;;GAEG;AACH,MAAsB,IAAK,SAAQ,qBAAc;IACrC,YAAY,CAAC,KAAmB,EAAE,QAAgB,EAAE,EAAO,EAAE,QAA6F;QAClK,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAExG,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,MAAM;SACd,CAAC;IACJ,CAAC;CACF;AAbD,oBAaC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FindModelType.d.ts","sourceRoot":"","sources":["../../../src/policies/FindModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIhE,qBACa,aAAc,SAAQ,UAAU;IAE3C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,SAAS,IAAI,OAAO;IAGpB,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"FindModelType.d.ts","sourceRoot":"","sources":["../../../src/policies/FindModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIhE,qBACa,aAAc,SAAQ,UAAU;IAE3C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,SAAS,IAAI,OAAO;IAGpB,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBtC"}
|
|
@@ -25,7 +25,8 @@ let FindModelType = class FindModelType extends http_1.BasePolicy {
|
|
|
25
25
|
if (!req.params.model) {
|
|
26
26
|
throw new exceptions_1.InvalidOperation(`Invalid query parameters, 'model' is required`);
|
|
27
27
|
}
|
|
28
|
-
const
|
|
28
|
+
const model = Array.isArray(req.params.model) ? req.params.model[0] : req.params.model;
|
|
29
|
+
const mClass = this.Orm.Models.find((x) => x.name.toLowerCase() === model.trim().toLowerCase());
|
|
29
30
|
if (!mClass) {
|
|
30
31
|
throw new exceptions_1.InvalidOperation(`Resource type ${req.params.model} was not found`);
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FindModelType.js","sourceRoot":"","sources":["../../../src/policies/FindModelType.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAmC;AACnC,oCAAoD;AACpD,wCAAgE;AAChE,oDAAuD;AAIhD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iBAAU;IAI3C,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAa;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,6BAAgB,CAAC,0BAA0B,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,6BAAgB,CAAC,+CAA+C,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"FindModelType.js","sourceRoot":"","sources":["../../../src/policies/FindModelType.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAAmC;AACnC,oCAAoD;AACpD,wCAAgE;AAChE,oDAAuD;AAIhD,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,iBAAU;IAI3C,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAa;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,6BAAgB,CAAC,0BAA0B,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,6BAAgB,CAAC,+CAA+C,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,6BAAgB,CAAC,iBAAiB,GAAG,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF,CAAA;AAxBY,sCAAa;AAEd;IADT,IAAA,eAAU,GAAE;8BACE,SAAG;0CAAC;wBAFR,aAAa;IADzB,IAAA,cAAS,GAAE;GACC,aAAa,CAwBzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../../src/route-args/ModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,wBAAgB,SAAS,0GAExB;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAE7C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;;;;
|
|
1
|
+
{"version":3,"file":"ModelType.d.ts","sourceRoot":"","sources":["../../../src/route-args/ModelType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,wBAAgB,SAAS,0GAExB;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAE7C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEnB,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM;;;;CAQrJ"}
|
|
@@ -22,9 +22,11 @@ let ModelTypeRouteArgs = class ModelTypeRouteArgs extends http_1.RouteArgs {
|
|
|
22
22
|
return 'ModelTypeRouteArgs';
|
|
23
23
|
}
|
|
24
24
|
async extract(callData, _args, param, req, _res, _route) {
|
|
25
|
+
const rawParam = req.params[param.Name];
|
|
26
|
+
const modelParam = Array.isArray(rawParam) ? rawParam[0] : rawParam;
|
|
25
27
|
return Promise.resolve({
|
|
26
28
|
CallData: callData,
|
|
27
|
-
Args: this.Orm.Models.find((x) => x.name.toLowerCase() ===
|
|
29
|
+
Args: this.Orm.Models.find((x) => x.name.toLowerCase() === modelParam.trim().toLowerCase()).type,
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelType.js","sourceRoot":"","sources":["../../../src/route-args/ModelType.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,8BAEC;AAPD,sCAAmC;AACnC,oCAAqD;AACrD,wCAAiG;AAGjG,SAAgB,SAAS;IACrB,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,oBAAoB,CAAC,CAAC,CAAC;AAClD,CAAC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAS;IAI7C,IAAW,aAAa;QACpB,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,MAAe;QAC9I,OAAO,OAAO,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"ModelType.js","sourceRoot":"","sources":["../../../src/route-args/ModelType.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,8BAEC;AAPD,sCAAmC;AACnC,oCAAqD;AACrD,wCAAiG;AAGjG,SAAgB,SAAS;IACrB,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,oBAAoB,CAAC,CAAC,CAAC;AAClD,CAAC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gBAAS;IAI7C,IAAW,aAAa;QACpB,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,MAAe;QAC9I,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpE,OAAO,OAAO,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAE,CAAC,IAAI;SACpG,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AAhBY,gDAAkB;AAEjB;IADT,IAAA,eAAU,EAAC,SAAG,CAAC;8BACD,SAAG;+CAAC;6BAFV,kBAAkB;IAD9B,IAAA,eAAU,GAAE;GACA,kBAAkB,CAgB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAkC,MAAM,eAAe,CAAC;AAO7E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAY,EAAE,EAAkC,MAAM,eAAe,CAAC;AAO7E,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,IAAI,EAA0B,MAAM,uBAAuB,CAAC;AAErE,qBAEa,UAAW,SAAQ,IAAI;IAElC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC;IAE5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU;IAUlE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU;IAMrD,IAAI,CAAc,KAAK,EAAE,YAAY,EAAe,IAAI,EAAE,OAAO,EAAU,IAAI,CAAC,EAAE,SAAS;IA4B3F,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAe,IAAI,EAAE,OAAO,EAAU,IAAI,CAAC,EAAE,SAAS;CA4ChK"}
|
|
@@ -20,7 +20,7 @@ import { ModelType } from '../../route-args/ModelType.js';
|
|
|
20
20
|
import { FindModelType } from '../../policies/FindModelType.js';
|
|
21
21
|
import { Log, Logger } from '@spinajs/log';
|
|
22
22
|
import { AccessControl, User as UserModel } from '@spinajs/rbac';
|
|
23
|
-
import { Crud } from './../../interfaces.js';
|
|
23
|
+
import { Crud, _assertSingleColumnKey } from './../../interfaces.js';
|
|
24
24
|
let CrudCreate = class CrudCreate extends Crud {
|
|
25
25
|
checkAny(resource, user) {
|
|
26
26
|
// if we have user
|
|
@@ -70,7 +70,7 @@ let CrudCreate = class CrudCreate extends Crud {
|
|
|
70
70
|
if (!m) {
|
|
71
71
|
throw new ResourceNotFound(`Record with id ${id} not found`, {
|
|
72
72
|
Resource: model.name,
|
|
73
|
-
[mDescriptor
|
|
73
|
+
[_assertSingleColumnKey(mDescriptor)]: id,
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
if (!permission.granted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAgB,GAAG,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAwB,IAAI,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Create.js","sourceRoot":"","sources":["../../../../src/controllers/crud/Create.ts"],"names":[],"mappings":"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"}
|