@danceroutine/tango-resources 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +170 -0
- package/dist/context/RequestContext.d.ts +23 -4
- package/dist/filters/FilterSet.d.ts +59 -4
- package/dist/filters/index.d.ts +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.js +515 -205
- package/dist/index.js.map +1 -1
- package/dist/pagination/CursorPaginationInput.d.ts +7 -0
- package/dist/pagination/OffsetPaginationInput.d.ts +7 -0
- package/dist/pagination/PaginatedResponse.d.ts +8 -2
- package/dist/pagination/Paginator.d.ts +5 -3
- package/dist/pagination/index.d.ts +5 -3
- package/dist/paginators/CursorPaginator.d.ts +32 -6
- package/dist/paginators/OffsetPaginator.d.ts +30 -7
- package/dist/resource/OpenAPIDescription.d.ts +21 -0
- package/dist/resource/ResourceModelLike.d.ts +16 -0
- package/dist/resource/index.d.ts +5 -0
- package/dist/serializer/ModelSerializer.d.ts +47 -0
- package/dist/serializer/Serializer.d.ts +52 -0
- package/dist/serializer/index.d.ts +5 -0
- package/dist/view/APIView.d.ts +26 -0
- package/dist/view/GenericAPIView.d.ts +57 -0
- package/dist/view/generics/CreateAPIView.d.ts +10 -0
- package/dist/view/generics/ListAPIView.d.ts +10 -0
- package/dist/view/generics/ListCreateAPIView.d.ts +11 -0
- package/dist/view/generics/RetrieveAPIView.d.ts +10 -0
- package/dist/view/generics/RetrieveDestroyAPIView.d.ts +11 -0
- package/dist/view/generics/RetrieveUpdateAPIView.d.ts +12 -0
- package/dist/view/generics/RetrieveUpdateDestroyAPIView.d.ts +13 -0
- package/dist/view/generics/index.d.ts +10 -0
- package/dist/view/index.d.ts +8 -0
- package/dist/view/index.js +3 -0
- package/dist/view/mixins/CreateModelMixin.d.ts +11 -0
- package/dist/view/mixins/DestroyModelMixin.d.ts +11 -0
- package/dist/view/mixins/ListModelMixin.d.ts +11 -0
- package/dist/view/mixins/RetrieveModelMixin.d.ts +11 -0
- package/dist/view/mixins/UpdateModelMixin.d.ts +12 -0
- package/dist/view/mixins/index.d.ts +8 -0
- package/dist/view-BNGEURL_.js +547 -0
- package/dist/view-BNGEURL_.js.map +1 -0
- package/dist/viewset/ModelViewSet.d.ts +91 -45
- package/dist/viewset/index.d.ts +2 -1
- package/package.json +75 -69
- package/dist/domain/index.d.ts +0 -8
- package/dist/pagination/PaginationInput.d.ts +0 -7
- package/dist/viewset/ModelViewSet.js +0 -143
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain boundary barrel: centralizes this subdomain's public contract.
|
|
3
|
+
*/
|
|
4
|
+
export { Serializer, type SerializerClass, type AnySerializerClass, type SerializerCreateInput, type SerializerUpdateInput, type SerializerOutput, type SerializerSchema, } from './Serializer';
|
|
5
|
+
export { ModelSerializer, type ModelSerializerClass, type AnyModelSerializerClass } from './ModelSerializer';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { TangoResponse } from '@danceroutine/tango-core';
|
|
2
|
+
import { RequestContext } from '../context/index';
|
|
3
|
+
export type APIViewMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
4
|
+
/**
|
|
5
|
+
* Lightweight class-based request dispatcher for non-model API endpoints.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class APIView {
|
|
8
|
+
static readonly BRAND: "tango.resources.api_view";
|
|
9
|
+
readonly __tangoBrand: typeof APIView.BRAND;
|
|
10
|
+
/**
|
|
11
|
+
* Narrow an unknown value to `APIView`.
|
|
12
|
+
*/
|
|
13
|
+
static isAPIView(value: unknown): value is APIView;
|
|
14
|
+
/**
|
|
15
|
+
* Dispatch the request to the handler for the current HTTP method.
|
|
16
|
+
*/
|
|
17
|
+
dispatch(ctx: RequestContext): Promise<TangoResponse>;
|
|
18
|
+
getAllowedMethods(): readonly APIViewMethod[];
|
|
19
|
+
protected get(_ctx: RequestContext): Promise<TangoResponse>;
|
|
20
|
+
protected post(_ctx: RequestContext): Promise<TangoResponse>;
|
|
21
|
+
protected put(_ctx: RequestContext): Promise<TangoResponse>;
|
|
22
|
+
protected patch(_ctx: RequestContext): Promise<TangoResponse>;
|
|
23
|
+
protected delete(_ctx: RequestContext): Promise<TangoResponse>;
|
|
24
|
+
protected httpMethodNotAllowed(): TangoResponse;
|
|
25
|
+
private getMethodHandler;
|
|
26
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { TangoResponse } from '@danceroutine/tango-core';
|
|
2
|
+
import { type ManagerLike, type QuerySet } from '@danceroutine/tango-orm';
|
|
3
|
+
import type { Paginator } from '../pagination/index';
|
|
4
|
+
import { APIView } from './APIView';
|
|
5
|
+
import { RequestContext } from '../context/index';
|
|
6
|
+
import type { FilterSet } from '../filters/index';
|
|
7
|
+
import type { GenericAPIViewOpenAPIDescription } from '../resource/index';
|
|
8
|
+
import type { ModelSerializerClass, SerializerOutput, SerializerSchema } from '../serializer/index';
|
|
9
|
+
export interface GenericAPIViewConfig<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> {
|
|
10
|
+
serializer: TSerializer;
|
|
11
|
+
filters?: FilterSet<TModel>;
|
|
12
|
+
orderingFields?: (keyof TModel)[];
|
|
13
|
+
searchFields?: (keyof TModel)[];
|
|
14
|
+
lookupField?: keyof TModel;
|
|
15
|
+
lookupParam?: string;
|
|
16
|
+
paginatorFactory?: (queryset: QuerySet<TModel>) => Paginator<TModel, SerializerOutput<TSerializer>>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generic API base class that centralizes query/build/validation helpers.
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class GenericAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends APIView {
|
|
22
|
+
protected readonly serializerClass: TSerializer;
|
|
23
|
+
protected readonly filters?: FilterSet<TModel>;
|
|
24
|
+
protected readonly orderingFields: readonly (keyof TModel)[];
|
|
25
|
+
protected readonly searchFields: readonly (keyof TModel)[];
|
|
26
|
+
protected readonly lookupField?: keyof TModel;
|
|
27
|
+
protected readonly lookupParam: string;
|
|
28
|
+
protected readonly paginatorFactory?: (queryset: QuerySet<TModel>) => Paginator<TModel, SerializerOutput<TSerializer>>;
|
|
29
|
+
private serializer?;
|
|
30
|
+
constructor(config: GenericAPIViewConfig<TModel, TSerializer>);
|
|
31
|
+
/**
|
|
32
|
+
* Return the serializer class that owns this resource contract.
|
|
33
|
+
*/
|
|
34
|
+
getSerializerClass(): TSerializer;
|
|
35
|
+
/**
|
|
36
|
+
* Return the serializer instance for the current resource.
|
|
37
|
+
*/
|
|
38
|
+
getSerializer(): InstanceType<TSerializer>;
|
|
39
|
+
/**
|
|
40
|
+
* Describe the public HTTP contract that this resource contributes to OpenAPI generation.
|
|
41
|
+
*/
|
|
42
|
+
describeOpenAPI(): GenericAPIViewOpenAPIDescription<TModel, TSerializer>;
|
|
43
|
+
protected getManager(): ManagerLike<TModel>;
|
|
44
|
+
protected getOutputSchema(): TSerializer['outputSchema'];
|
|
45
|
+
protected getCreateSchema(): TSerializer['createSchema'];
|
|
46
|
+
protected getUpdateSchema(): TSerializer['updateSchema'];
|
|
47
|
+
protected getLookupField(): keyof TModel;
|
|
48
|
+
protected getLookupValue(ctx: RequestContext): string | null;
|
|
49
|
+
protected getPaginator(queryset: QuerySet<TModel>): Paginator<TModel, SerializerOutput<TSerializer>>;
|
|
50
|
+
protected performList(ctx: RequestContext): Promise<TangoResponse>;
|
|
51
|
+
protected performCreate(ctx: RequestContext): Promise<TangoResponse>;
|
|
52
|
+
protected performRetrieve(ctx: RequestContext): Promise<TangoResponse>;
|
|
53
|
+
protected performUpdate(ctx: RequestContext): Promise<TangoResponse>;
|
|
54
|
+
protected performDestroy(ctx: RequestContext): Promise<TangoResponse>;
|
|
55
|
+
protected handleError(error: unknown): TangoResponse;
|
|
56
|
+
private requireModelMetadata;
|
|
57
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CreateModelMixin } from '../mixins/CreateModelMixin';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for endpoints that only support resource creation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class CreateAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends CreateModelMixin<TModel, TSerializer> {
|
|
9
|
+
protected post(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ListModelMixin } from '../mixins/ListModelMixin';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for endpoints that only expose a list operation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class ListAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends ListModelMixin<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for collection endpoints that list and create resources.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class ListCreateAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected post(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RetrieveModelMixin } from '../mixins/RetrieveModelMixin';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for endpoints that retrieve a single resource by lookup.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class RetrieveAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends RetrieveModelMixin<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for endpoints that retrieve and delete a single resource.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class RetrieveDestroyAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected delete(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for endpoints that retrieve and update a single resource.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class RetrieveUpdateAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected put(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
protected patch(ctx: RequestContext): Promise<TangoResponse>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Generic API view for full detail endpoints that retrieve, update, and delete.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class RetrieveUpdateDestroyAPIView<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected put(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
protected patch(ctx: RequestContext): Promise<TangoResponse>;
|
|
12
|
+
protected delete(ctx: RequestContext): Promise<TangoResponse>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain boundary barrel: centralizes this subdomain's public contract.
|
|
3
|
+
*/
|
|
4
|
+
export { ListAPIView } from './ListAPIView';
|
|
5
|
+
export { CreateAPIView } from './CreateAPIView';
|
|
6
|
+
export { RetrieveAPIView } from './RetrieveAPIView';
|
|
7
|
+
export { ListCreateAPIView } from './ListCreateAPIView';
|
|
8
|
+
export { RetrieveUpdateAPIView } from './RetrieveUpdateAPIView';
|
|
9
|
+
export { RetrieveDestroyAPIView } from './RetrieveDestroyAPIView';
|
|
10
|
+
export { RetrieveUpdateDestroyAPIView } from './RetrieveUpdateDestroyAPIView';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain boundary barrel: centralizes this subdomain's public contract.
|
|
3
|
+
*/
|
|
4
|
+
export { APIView, type APIViewMethod } from './APIView';
|
|
5
|
+
export { GenericAPIView, type GenericAPIViewConfig } from './GenericAPIView';
|
|
6
|
+
export type { GenericAPIViewOpenAPIDescription } from '../resource/index';
|
|
7
|
+
export { ListModelMixin, CreateModelMixin, RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, } from './mixins/index';
|
|
8
|
+
export { ListAPIView, CreateAPIView, RetrieveAPIView, ListCreateAPIView, RetrieveUpdateAPIView, RetrieveDestroyAPIView, RetrieveUpdateDestroyAPIView, } from './generics/index';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { APIView, CreateAPIView, CreateModelMixin, DestroyModelMixin, GenericAPIView, ListAPIView, ListCreateAPIView, ListModelMixin, RetrieveAPIView, RetrieveDestroyAPIView, RetrieveModelMixin, RetrieveUpdateAPIView, RetrieveUpdateDestroyAPIView, UpdateModelMixin } from "../view-BNGEURL_.js";
|
|
2
|
+
|
|
3
|
+
export { APIView, CreateAPIView, CreateModelMixin, DestroyModelMixin, GenericAPIView, ListAPIView, ListCreateAPIView, ListModelMixin, RetrieveAPIView, RetrieveDestroyAPIView, RetrieveModelMixin, RetrieveUpdateAPIView, RetrieveUpdateDestroyAPIView, UpdateModelMixin };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Mixin that wires `POST` requests to the generic create implementation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class CreateModelMixin<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected create(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected post(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Mixin that wires `DELETE` requests to the generic destroy implementation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class DestroyModelMixin<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected destroy(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected delete(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Mixin that wires `GET` requests to the generic list implementation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class ListModelMixin<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected list(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Mixin that wires `GET` requests to the generic retrieve implementation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class RetrieveModelMixin<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected retrieve(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected get(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericAPIView } from '../GenericAPIView';
|
|
2
|
+
import type { TangoResponse } from '@danceroutine/tango-core';
|
|
3
|
+
import { RequestContext } from '../../context/index';
|
|
4
|
+
import type { ModelSerializerClass, SerializerSchema } from '../../serializer/index';
|
|
5
|
+
/**
|
|
6
|
+
* Mixin that wires `PUT` and `PATCH` requests to the generic update implementation.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class UpdateModelMixin<TModel extends Record<string, unknown>, TSerializer extends ModelSerializerClass<TModel, SerializerSchema, SerializerSchema, SerializerSchema>> extends GenericAPIView<TModel, TSerializer> {
|
|
9
|
+
protected update(ctx: RequestContext): Promise<TangoResponse>;
|
|
10
|
+
protected put(ctx: RequestContext): Promise<TangoResponse>;
|
|
11
|
+
protected patch(ctx: RequestContext): Promise<TangoResponse>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain boundary barrel: centralizes this subdomain's public contract.
|
|
3
|
+
*/
|
|
4
|
+
export { ListModelMixin } from './ListModelMixin';
|
|
5
|
+
export { CreateModelMixin } from './CreateModelMixin';
|
|
6
|
+
export { RetrieveModelMixin } from './RetrieveModelMixin';
|
|
7
|
+
export { UpdateModelMixin } from './UpdateModelMixin';
|
|
8
|
+
export { DestroyModelMixin } from './DestroyModelMixin';
|