@esri/hub-common 15.41.3 → 15.42.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/dist/esm/channels/HubChannel.js +173 -0
- package/dist/esm/channels/HubChannel.js.map +1 -0
- package/dist/esm/channels/_internal/ChannelBusinessRules.js +39 -0
- package/dist/esm/channels/_internal/ChannelBusinessRules.js.map +1 -0
- package/dist/esm/channels/_internal/ChannelSchema.js +198 -0
- package/dist/esm/channels/_internal/ChannelSchema.js.map +1 -0
- package/dist/esm/channels/_internal/ChannelUiSchemaCreate.js +288 -0
- package/dist/esm/channels/_internal/ChannelUiSchemaCreate.js.map +1 -0
- package/dist/esm/channels/_internal/ChannelUiSchemaEdit.js +20 -0
- package/dist/esm/channels/_internal/ChannelUiSchemaEdit.js.map +1 -0
- package/dist/esm/channels/_internal/buildDefaultChannel.js +26 -0
- package/dist/esm/channels/_internal/buildDefaultChannel.js.map +1 -0
- package/dist/esm/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js +49 -0
- package/dist/esm/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js.map +1 -0
- package/dist/esm/channels/_internal/transformChannelToEntity.js +61 -0
- package/dist/esm/channels/_internal/transformChannelToEntity.js.map +1 -0
- package/dist/esm/channels/_internal/transformEditorToEntity.js +22 -0
- package/dist/esm/channels/_internal/transformEditorToEntity.js.map +1 -0
- package/dist/esm/channels/_internal/transformEntityPermissionPoliciesToFormValues.js +164 -0
- package/dist/esm/channels/_internal/transformEntityPermissionPoliciesToFormValues.js.map +1 -0
- package/dist/esm/channels/_internal/transformEntityToChannelData.js +69 -0
- package/dist/esm/channels/_internal/transformEntityToChannelData.js.map +1 -0
- package/dist/esm/channels/_internal/transformEntityToEditor.js +20 -0
- package/dist/esm/channels/_internal/transformEntityToEditor.js.map +1 -0
- package/dist/esm/channels/_internal/transformFormValuesToEntityPermissionPolicies.js +68 -0
- package/dist/esm/channels/_internal/transformFormValuesToEntityPermissionPolicies.js.map +1 -0
- package/dist/esm/channels/edit.js +35 -0
- package/dist/esm/channels/edit.js.map +1 -0
- package/dist/esm/channels/fetch.js +14 -0
- package/dist/esm/channels/fetch.js.map +1 -0
- package/dist/esm/channels/index.js +4 -0
- package/dist/esm/channels/index.js.map +1 -0
- package/dist/esm/core/EntityEditor.js +4 -0
- package/dist/esm/core/EntityEditor.js.map +1 -1
- package/dist/esm/core/fetchHubEntity.js +4 -0
- package/dist/esm/core/fetchHubEntity.js.map +1 -1
- package/dist/esm/core/getTypeFromEntity.js +3 -0
- package/dist/esm/core/getTypeFromEntity.js.map +1 -1
- package/dist/esm/core/schemas/internal/getEditorSchemas.js +16 -0
- package/dist/esm/core/schemas/internal/getEditorSchemas.js.map +1 -1
- package/dist/esm/core/schemas/shared/CatalogSchema.js +2 -0
- package/dist/esm/core/schemas/shared/CatalogSchema.js.map +1 -1
- package/dist/esm/core/schemas/types.js +2 -0
- package/dist/esm/core/schemas/types.js.map +1 -1
- package/dist/esm/core/types/HubEntityType.js +1 -0
- package/dist/esm/core/types/HubEntityType.js.map +1 -1
- package/dist/esm/core/types/IHubChannel.js +1 -0
- package/dist/esm/core/types/IHubChannel.js.map +1 -0
- package/dist/esm/core/types/index.js +1 -0
- package/dist/esm/core/types/index.js.map +1 -1
- package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js +1 -0
- package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
- package/dist/esm/discussions/utils.js +3 -3
- package/dist/esm/discussions/utils.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/permissions/types/IEntityPermissionPolicy.js +13 -0
- package/dist/esm/permissions/types/IEntityPermissionPolicy.js.map +1 -1
- package/dist/esm/permissions/types/Permission.js +2 -0
- package/dist/esm/permissions/types/Permission.js.map +1 -1
- package/dist/esm/search/_internal/getEntityTypeFromType.js +1 -1
- package/dist/esm/search/_internal/getEntityTypeFromType.js.map +1 -1
- package/dist/esm/search/_internal/hubSearchChannels.js +5 -3
- package/dist/esm/search/_internal/hubSearchChannels.js.map +1 -1
- package/dist/node/channels/HubChannel.js +177 -0
- package/dist/node/channels/HubChannel.js.map +1 -0
- package/dist/node/channels/_internal/ChannelBusinessRules.js +42 -0
- package/dist/node/channels/_internal/ChannelBusinessRules.js.map +1 -0
- package/dist/node/channels/_internal/ChannelSchema.js +201 -0
- package/dist/node/channels/_internal/ChannelSchema.js.map +1 -0
- package/dist/node/channels/_internal/ChannelUiSchemaCreate.js +291 -0
- package/dist/node/channels/_internal/ChannelUiSchemaCreate.js.map +1 -0
- package/dist/node/channels/_internal/ChannelUiSchemaEdit.js +23 -0
- package/dist/node/channels/_internal/ChannelUiSchemaEdit.js.map +1 -0
- package/dist/node/channels/_internal/buildDefaultChannel.js +30 -0
- package/dist/node/channels/_internal/buildDefaultChannel.js.map +1 -0
- package/dist/node/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js +52 -0
- package/dist/node/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js.map +1 -0
- package/dist/node/channels/_internal/transformChannelToEntity.js +65 -0
- package/dist/node/channels/_internal/transformChannelToEntity.js.map +1 -0
- package/dist/node/channels/_internal/transformEditorToEntity.js +26 -0
- package/dist/node/channels/_internal/transformEditorToEntity.js.map +1 -0
- package/dist/node/channels/_internal/transformEntityPermissionPoliciesToFormValues.js +167 -0
- package/dist/node/channels/_internal/transformEntityPermissionPoliciesToFormValues.js.map +1 -0
- package/dist/node/channels/_internal/transformEntityToChannelData.js +73 -0
- package/dist/node/channels/_internal/transformEntityToChannelData.js.map +1 -0
- package/dist/node/channels/_internal/transformEntityToEditor.js +24 -0
- package/dist/node/channels/_internal/transformEntityToEditor.js.map +1 -0
- package/dist/node/channels/_internal/transformFormValuesToEntityPermissionPolicies.js +72 -0
- package/dist/node/channels/_internal/transformFormValuesToEntityPermissionPolicies.js.map +1 -0
- package/dist/node/channels/edit.js +41 -0
- package/dist/node/channels/edit.js.map +1 -0
- package/dist/node/channels/fetch.js +18 -0
- package/dist/node/channels/fetch.js.map +1 -0
- package/dist/node/channels/index.js +7 -0
- package/dist/node/channels/index.js.map +1 -0
- package/dist/node/core/EntityEditor.js +4 -0
- package/dist/node/core/EntityEditor.js.map +1 -1
- package/dist/node/core/fetchHubEntity.js +4 -0
- package/dist/node/core/fetchHubEntity.js.map +1 -1
- package/dist/node/core/getTypeFromEntity.js +3 -0
- package/dist/node/core/getTypeFromEntity.js.map +1 -1
- package/dist/node/core/schemas/internal/getEditorSchemas.js +16 -0
- package/dist/node/core/schemas/internal/getEditorSchemas.js.map +1 -1
- package/dist/node/core/schemas/shared/CatalogSchema.js +2 -0
- package/dist/node/core/schemas/shared/CatalogSchema.js.map +1 -1
- package/dist/node/core/schemas/types.js +2 -0
- package/dist/node/core/schemas/types.js.map +1 -1
- package/dist/node/core/types/HubEntityType.js +1 -0
- package/dist/node/core/types/HubEntityType.js.map +1 -1
- package/dist/node/core/types/IHubChannel.js +3 -0
- package/dist/node/core/types/IHubChannel.js.map +1 -0
- package/dist/node/core/types/index.js +1 -0
- package/dist/node/core/types/index.js.map +1 -1
- package/dist/node/discussions/api/settings/getDefaultEntitySettings.js +1 -0
- package/dist/node/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
- package/dist/node/discussions/utils.js +3 -3
- package/dist/node/discussions/utils.js.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/permissions/types/IEntityPermissionPolicy.js +14 -0
- package/dist/node/permissions/types/IEntityPermissionPolicy.js.map +1 -1
- package/dist/node/permissions/types/Permission.js +2 -0
- package/dist/node/permissions/types/Permission.js.map +1 -1
- package/dist/node/search/_internal/getEntityTypeFromType.js +1 -1
- package/dist/node/search/_internal/getEntityTypeFromType.js.map +1 -1
- package/dist/node/search/_internal/hubSearchChannels.js +4 -2
- package/dist/node/search/_internal/hubSearchChannels.js.map +1 -1
- package/dist/types/channels/HubChannel.d.ts +105 -0
- package/dist/types/channels/_internal/ChannelBusinessRules.d.ts +19 -0
- package/dist/types/channels/_internal/ChannelSchema.d.ts +16 -0
- package/dist/types/channels/_internal/ChannelUiSchemaCreate.d.ts +10 -0
- package/dist/types/channels/_internal/ChannelUiSchemaEdit.d.ts +10 -0
- package/dist/types/channels/_internal/buildDefaultChannel.d.ts +8 -0
- package/dist/types/channels/_internal/transformAclPermissionToEntityPermissionPolicy.d.ts +11 -0
- package/dist/types/channels/_internal/transformChannelToEntity.d.ts +11 -0
- package/dist/types/channels/_internal/transformEditorToEntity.d.ts +8 -0
- package/dist/types/channels/_internal/transformEntityPermissionPoliciesToFormValues.d.ts +44 -0
- package/dist/types/channels/_internal/transformEntityToChannelData.d.ts +9 -0
- package/dist/types/channels/_internal/transformEntityToEditor.d.ts +9 -0
- package/dist/types/channels/_internal/transformFormValuesToEntityPermissionPolicies.d.ts +9 -0
- package/dist/types/channels/edit.d.ts +23 -0
- package/dist/types/channels/fetch.d.ts +9 -0
- package/dist/types/channels/index.d.ts +3 -0
- package/dist/types/content/_internal/internalContentUtils.d.ts +1 -1
- package/dist/types/content/get-family.d.ts +1 -1
- package/dist/types/core/EntityEditor.d.ts +1 -1
- package/dist/types/core/schemas/types.d.ts +2 -2
- package/dist/types/core/types/HubEntity.d.ts +3 -2
- package/dist/types/core/types/HubEntityType.d.ts +1 -1
- package/dist/types/core/types/IHubChannel.d.ts +91 -0
- package/dist/types/core/types/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/permissions/types/IEntityPermissionPolicy.d.ts +10 -2
- package/dist/types/permissions/types/Permission.d.ts +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { cloneObject } from "../util";
|
|
2
|
+
import { buildDefaultChannel } from "./_internal/buildDefaultChannel";
|
|
3
|
+
export class HubChannel {
|
|
4
|
+
constructor(entity, context) {
|
|
5
|
+
this.isDestroyed = false;
|
|
6
|
+
this.context = context;
|
|
7
|
+
this.entity = entity;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Create an instance from an IHubChannel object
|
|
11
|
+
* @param json - JSON object to create a HubChannel from
|
|
12
|
+
* @param context - ArcGIS context
|
|
13
|
+
* @returns a HubChannel instance
|
|
14
|
+
*/
|
|
15
|
+
static fromJson(json, context) {
|
|
16
|
+
const pojo = this.applyDefaults(json, context);
|
|
17
|
+
return new HubChannel(pojo, context);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a new HubChannel, returning a HubChannel instance.
|
|
21
|
+
* Note: This does not persist the Channel into the backing store
|
|
22
|
+
* @param partialChannel A partial IHubChannel object
|
|
23
|
+
* @param context ArcGIS Context
|
|
24
|
+
* @returns a HubChannel instance
|
|
25
|
+
*/
|
|
26
|
+
static async create(partialChannel, context, save = false) {
|
|
27
|
+
const pojo = this.applyDefaults(partialChannel, context);
|
|
28
|
+
const instance = HubChannel.fromJson(pojo, context);
|
|
29
|
+
if (save) {
|
|
30
|
+
await instance.save();
|
|
31
|
+
}
|
|
32
|
+
return instance;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Fetch a Channel from the backing store and return a HubChannel instance.
|
|
36
|
+
* @param identifier - Identifier of the channel to load
|
|
37
|
+
* @param context - An IArcGISContext object
|
|
38
|
+
* @returns a HubChannel instance
|
|
39
|
+
*/
|
|
40
|
+
static async fetch(identifier, context) {
|
|
41
|
+
try {
|
|
42
|
+
const { fetchHubChannel } = await import("./fetch");
|
|
43
|
+
const entity = await fetchHubChannel(identifier, context);
|
|
44
|
+
return HubChannel.fromJson(entity, context);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
// TODO: any specific error handling? see HubProject fetch...
|
|
48
|
+
throw new Error("Channel not found.");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Given a partial channel, apply defaults to it to ensure that a baseline of properties are set
|
|
53
|
+
* @param partialChannel A partial IHubChannel object
|
|
54
|
+
* @param context - ArcGIS Context
|
|
55
|
+
* @returns an IHubChannel object
|
|
56
|
+
*/
|
|
57
|
+
static applyDefaults(partialChannel, context) {
|
|
58
|
+
const pojo = Object.assign(Object.assign({}, buildDefaultChannel(context.currentUser.orgId)), partialChannel);
|
|
59
|
+
return pojo;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Can the current user edit the channel?
|
|
63
|
+
* @returns boolean
|
|
64
|
+
*/
|
|
65
|
+
get canEdit() {
|
|
66
|
+
return this.entity.canEdit;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Can the current user delete the channel?
|
|
70
|
+
* @returns boolean
|
|
71
|
+
*/
|
|
72
|
+
get canDelete() {
|
|
73
|
+
return this.entity.canDelete;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The orgId of the channel
|
|
77
|
+
* @returns the orgId of the channel
|
|
78
|
+
*/
|
|
79
|
+
get orgId() {
|
|
80
|
+
return this.entity.orgId;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Return the backing entity as an object literal
|
|
84
|
+
* @returns an IHubChannel
|
|
85
|
+
*/
|
|
86
|
+
toJson() {
|
|
87
|
+
if (this.isDestroyed) {
|
|
88
|
+
throw new Error("HubChannel is already destroyed.");
|
|
89
|
+
}
|
|
90
|
+
return cloneObject(this.entity);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Apply a new state to the instance
|
|
94
|
+
* @param changes A partial IHubChannel object
|
|
95
|
+
*/
|
|
96
|
+
update(changes) {
|
|
97
|
+
if (this.isDestroyed) {
|
|
98
|
+
throw new Error("HubChannel is already destroyed.");
|
|
99
|
+
}
|
|
100
|
+
this.entity = Object.assign(Object.assign({}, this.entity), changes);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Save the HubChannel to the backing store.
|
|
104
|
+
* @returns a promise
|
|
105
|
+
*/
|
|
106
|
+
async save() {
|
|
107
|
+
if (this.isDestroyed) {
|
|
108
|
+
throw new Error("HubChannel is already destroyed.");
|
|
109
|
+
}
|
|
110
|
+
if (this.entity.id) {
|
|
111
|
+
const { updateHubChannel } = await import("./edit");
|
|
112
|
+
this.entity = await updateHubChannel(this.entity, this.context);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const { createHubChannel } = await import("./edit");
|
|
116
|
+
this.entity = await createHubChannel(this.entity, this.context);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Delete the HubChannel from the store
|
|
121
|
+
* set a flag to indicate that it is destroyed
|
|
122
|
+
* @returns a promise
|
|
123
|
+
*/
|
|
124
|
+
async delete() {
|
|
125
|
+
if (this.isDestroyed) {
|
|
126
|
+
throw new Error("HubChannel is already destroyed.");
|
|
127
|
+
}
|
|
128
|
+
const { deleteHubChannel } = await import("./edit");
|
|
129
|
+
this.isDestroyed = true;
|
|
130
|
+
await deleteHubChannel(this.entity.id, this.context);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* TODO
|
|
134
|
+
* @param opts
|
|
135
|
+
* @returns
|
|
136
|
+
*/
|
|
137
|
+
convertToCardModel(opts) {
|
|
138
|
+
// TODO
|
|
139
|
+
throw new Error("not implemented");
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get a specifc editor config for the HubChannel entity.
|
|
143
|
+
* @param i18nScope A string representing the i18n scope for translated strings
|
|
144
|
+
* @param type One of the supported ChannelEditorType strings
|
|
145
|
+
* @returns a promise that resolves a IEditorConfig object
|
|
146
|
+
*/
|
|
147
|
+
async getEditorConfig(i18nScope, type) {
|
|
148
|
+
const { getEditorConfig } = await import("../core/schemas/getEditorConfig");
|
|
149
|
+
return getEditorConfig(i18nScope, type, this.entity, this.context);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Return the channel as an editor object
|
|
153
|
+
* @param editorContext An IEntityEditorContext object
|
|
154
|
+
* @param include An optional array of includes
|
|
155
|
+
* @returns a promise that resolves an IHubChannelEditor object
|
|
156
|
+
*/
|
|
157
|
+
async toEditor(editorContext, include) {
|
|
158
|
+
const { transformEntityToEditor } = await import("./_internal/transformEntityToEditor");
|
|
159
|
+
return transformEntityToEditor(this.entity, this.context);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Load the channel from the editor object
|
|
163
|
+
* @param editor An IHubChannelEditor object
|
|
164
|
+
* @returns a promise that resolves an IHubChannel
|
|
165
|
+
*/
|
|
166
|
+
async fromEditor(editor) {
|
|
167
|
+
const { transformEditorToEntity } = await import("./_internal/transformEditorToEntity");
|
|
168
|
+
this.entity = Object.assign(Object.assign({}, this.entity), transformEditorToEntity(editor));
|
|
169
|
+
await this.save();
|
|
170
|
+
return this.entity;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=HubChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HubChannel.js","sourceRoot":"","sources":["../../../src/channels/HubChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @private
|
|
3
|
+
* An array of all supported channel permissions
|
|
4
|
+
*/
|
|
5
|
+
export const ChannelPermissions = [
|
|
6
|
+
"hub:channel",
|
|
7
|
+
"hub:channel:create",
|
|
8
|
+
"hub:channel:delete",
|
|
9
|
+
"hub:channel:edit",
|
|
10
|
+
"hub:channel:view",
|
|
11
|
+
"hub:channel:owner",
|
|
12
|
+
"hub:channel:manage",
|
|
13
|
+
"hub:channel:read",
|
|
14
|
+
"hub:channel:write",
|
|
15
|
+
"hub:channel:readWrite",
|
|
16
|
+
"hub:channel:moderate",
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* A pseudo-permission used as a placeholder for the "None" permission option
|
|
20
|
+
*/
|
|
21
|
+
export const ChannelNonePermission = "hub:channel:none";
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
* A map of all supported channel permissions
|
|
25
|
+
*/
|
|
26
|
+
export const CHANNEL_PERMISSIONS = {
|
|
27
|
+
channelRoot: "hub:channel",
|
|
28
|
+
channelCreate: "hub:channel:create",
|
|
29
|
+
channelDelete: "hub:channel:delete",
|
|
30
|
+
channelEdit: "hub:channel:edit",
|
|
31
|
+
channelView: "hub:channel:view",
|
|
32
|
+
channelOwner: "hub:channel:owner",
|
|
33
|
+
channelManage: "hub:channel:manage",
|
|
34
|
+
channelRead: "hub:channel:read",
|
|
35
|
+
channelWrite: "hub:channel:write",
|
|
36
|
+
channelReadWrite: "hub:channel:readWrite",
|
|
37
|
+
channelModerate: "hub:channel:moderate",
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=ChannelBusinessRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelBusinessRules.js","sourceRoot":"","sources":["../../../../src/channels/_internal/ChannelBusinessRules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,sBAAsB;CACd,CAAC;AAQX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAa5B;IACF,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,oBAAoB;IACnC,aAAa,EAAE,oBAAoB;IACnC,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,mBAAmB;IACjC,aAAa,EAAE,oBAAoB;IACnC,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,mBAAmB;IACjC,gBAAgB,EAAE,uBAAuB;IACzC,eAAe,EAAE,sBAAsB;CACxC,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { CHANNEL_PERMISSIONS, ChannelNonePermission, } from "./ChannelBusinessRules";
|
|
2
|
+
/**
|
|
3
|
+
* @private
|
|
4
|
+
* The supported channel editor types
|
|
5
|
+
*/
|
|
6
|
+
export const ChannelEditorTypes = [
|
|
7
|
+
"hub:channel:create",
|
|
8
|
+
"hub:channel:edit",
|
|
9
|
+
];
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* The channel editor schema
|
|
13
|
+
*/
|
|
14
|
+
export const ChannelSchema = {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
name: {
|
|
18
|
+
type: "string",
|
|
19
|
+
},
|
|
20
|
+
blockWords: {
|
|
21
|
+
type: "string",
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
format: "blockWords",
|
|
25
|
+
},
|
|
26
|
+
publicConfigs: {
|
|
27
|
+
type: "array",
|
|
28
|
+
items: {
|
|
29
|
+
type: "object",
|
|
30
|
+
properties: {
|
|
31
|
+
key: { type: "string" },
|
|
32
|
+
entityId: { type: "string" },
|
|
33
|
+
entityType: { type: "string" },
|
|
34
|
+
roles: {
|
|
35
|
+
type: "object",
|
|
36
|
+
properties: {
|
|
37
|
+
anonymous: {
|
|
38
|
+
type: "object",
|
|
39
|
+
properties: {
|
|
40
|
+
value: {
|
|
41
|
+
type: "string",
|
|
42
|
+
enum: [
|
|
43
|
+
ChannelNonePermission,
|
|
44
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
45
|
+
],
|
|
46
|
+
default: ChannelNonePermission,
|
|
47
|
+
},
|
|
48
|
+
id: { type: "string" },
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
authenticated: {
|
|
52
|
+
type: "object",
|
|
53
|
+
properties: {
|
|
54
|
+
value: {
|
|
55
|
+
type: "string",
|
|
56
|
+
enum: [
|
|
57
|
+
ChannelNonePermission,
|
|
58
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
59
|
+
CHANNEL_PERMISSIONS.channelReadWrite,
|
|
60
|
+
],
|
|
61
|
+
default: ChannelNonePermission,
|
|
62
|
+
},
|
|
63
|
+
id: { type: "string" },
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
orgConfigs: {
|
|
72
|
+
type: "array",
|
|
73
|
+
items: {
|
|
74
|
+
type: "object",
|
|
75
|
+
properties: {
|
|
76
|
+
key: { type: "string" },
|
|
77
|
+
entityId: { type: "string" },
|
|
78
|
+
entityType: { type: "string" },
|
|
79
|
+
roles: {
|
|
80
|
+
type: "object",
|
|
81
|
+
properties: {
|
|
82
|
+
member: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
value: {
|
|
86
|
+
type: "string",
|
|
87
|
+
enum: [
|
|
88
|
+
ChannelNonePermission,
|
|
89
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
90
|
+
CHANNEL_PERMISSIONS.channelReadWrite,
|
|
91
|
+
],
|
|
92
|
+
default: ChannelNonePermission,
|
|
93
|
+
},
|
|
94
|
+
id: { type: "string" },
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
admin: {
|
|
98
|
+
type: "object",
|
|
99
|
+
properties: {
|
|
100
|
+
value: {
|
|
101
|
+
type: "string",
|
|
102
|
+
enum: [CHANNEL_PERMISSIONS.channelOwner],
|
|
103
|
+
default: CHANNEL_PERMISSIONS.channelOwner,
|
|
104
|
+
},
|
|
105
|
+
id: { type: "string" },
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
groupConfigs: {
|
|
114
|
+
type: "array",
|
|
115
|
+
items: {
|
|
116
|
+
type: "object",
|
|
117
|
+
properties: {
|
|
118
|
+
key: { type: "string" },
|
|
119
|
+
entityId: { type: "string" },
|
|
120
|
+
entityType: { type: "string" },
|
|
121
|
+
roles: {
|
|
122
|
+
type: "object",
|
|
123
|
+
properties: {
|
|
124
|
+
member: {
|
|
125
|
+
type: "object",
|
|
126
|
+
properties: {
|
|
127
|
+
value: {
|
|
128
|
+
type: "string",
|
|
129
|
+
enum: [
|
|
130
|
+
ChannelNonePermission,
|
|
131
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
132
|
+
CHANNEL_PERMISSIONS.channelReadWrite,
|
|
133
|
+
],
|
|
134
|
+
default: ChannelNonePermission,
|
|
135
|
+
},
|
|
136
|
+
id: { type: "string" },
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
admin: {
|
|
140
|
+
type: "object",
|
|
141
|
+
properties: {
|
|
142
|
+
value: {
|
|
143
|
+
type: "string",
|
|
144
|
+
enum: [
|
|
145
|
+
ChannelNonePermission,
|
|
146
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
147
|
+
CHANNEL_PERMISSIONS.channelReadWrite,
|
|
148
|
+
CHANNEL_PERMISSIONS.channelManage,
|
|
149
|
+
],
|
|
150
|
+
default: ChannelNonePermission,
|
|
151
|
+
},
|
|
152
|
+
id: { type: "string" },
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
userConfigs: {
|
|
161
|
+
type: "array",
|
|
162
|
+
items: {
|
|
163
|
+
type: "object",
|
|
164
|
+
properties: {
|
|
165
|
+
key: { type: "string" },
|
|
166
|
+
entityId: { type: "string" },
|
|
167
|
+
entityType: { type: "string" },
|
|
168
|
+
roles: {
|
|
169
|
+
type: "object",
|
|
170
|
+
properties: {
|
|
171
|
+
user: {
|
|
172
|
+
type: "object",
|
|
173
|
+
properties: {
|
|
174
|
+
value: {
|
|
175
|
+
type: "string",
|
|
176
|
+
enum: [
|
|
177
|
+
ChannelNonePermission,
|
|
178
|
+
CHANNEL_PERMISSIONS.channelRead,
|
|
179
|
+
CHANNEL_PERMISSIONS.channelReadWrite,
|
|
180
|
+
],
|
|
181
|
+
default: ChannelNonePermission,
|
|
182
|
+
},
|
|
183
|
+
id: { type: "string" },
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
allowAsAnonymous: {
|
|
192
|
+
type: "boolean",
|
|
193
|
+
default: false,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
required: ["name"],
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=ChannelSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelSchema.js","sourceRoot":"","sources":["../../../../src/channels/_internal/ChannelSchema.ts"],"names":[],"mappings":"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"}
|