@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.
Files changed (156) hide show
  1. package/dist/esm/channels/HubChannel.js +173 -0
  2. package/dist/esm/channels/HubChannel.js.map +1 -0
  3. package/dist/esm/channels/_internal/ChannelBusinessRules.js +39 -0
  4. package/dist/esm/channels/_internal/ChannelBusinessRules.js.map +1 -0
  5. package/dist/esm/channels/_internal/ChannelSchema.js +198 -0
  6. package/dist/esm/channels/_internal/ChannelSchema.js.map +1 -0
  7. package/dist/esm/channels/_internal/ChannelUiSchemaCreate.js +288 -0
  8. package/dist/esm/channels/_internal/ChannelUiSchemaCreate.js.map +1 -0
  9. package/dist/esm/channels/_internal/ChannelUiSchemaEdit.js +20 -0
  10. package/dist/esm/channels/_internal/ChannelUiSchemaEdit.js.map +1 -0
  11. package/dist/esm/channels/_internal/buildDefaultChannel.js +26 -0
  12. package/dist/esm/channels/_internal/buildDefaultChannel.js.map +1 -0
  13. package/dist/esm/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js +49 -0
  14. package/dist/esm/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js.map +1 -0
  15. package/dist/esm/channels/_internal/transformChannelToEntity.js +61 -0
  16. package/dist/esm/channels/_internal/transformChannelToEntity.js.map +1 -0
  17. package/dist/esm/channels/_internal/transformEditorToEntity.js +22 -0
  18. package/dist/esm/channels/_internal/transformEditorToEntity.js.map +1 -0
  19. package/dist/esm/channels/_internal/transformEntityPermissionPoliciesToFormValues.js +164 -0
  20. package/dist/esm/channels/_internal/transformEntityPermissionPoliciesToFormValues.js.map +1 -0
  21. package/dist/esm/channels/_internal/transformEntityToChannelData.js +69 -0
  22. package/dist/esm/channels/_internal/transformEntityToChannelData.js.map +1 -0
  23. package/dist/esm/channels/_internal/transformEntityToEditor.js +20 -0
  24. package/dist/esm/channels/_internal/transformEntityToEditor.js.map +1 -0
  25. package/dist/esm/channels/_internal/transformFormValuesToEntityPermissionPolicies.js +68 -0
  26. package/dist/esm/channels/_internal/transformFormValuesToEntityPermissionPolicies.js.map +1 -0
  27. package/dist/esm/channels/edit.js +35 -0
  28. package/dist/esm/channels/edit.js.map +1 -0
  29. package/dist/esm/channels/fetch.js +14 -0
  30. package/dist/esm/channels/fetch.js.map +1 -0
  31. package/dist/esm/channels/index.js +4 -0
  32. package/dist/esm/channels/index.js.map +1 -0
  33. package/dist/esm/core/EntityEditor.js +4 -0
  34. package/dist/esm/core/EntityEditor.js.map +1 -1
  35. package/dist/esm/core/fetchHubEntity.js +4 -0
  36. package/dist/esm/core/fetchHubEntity.js.map +1 -1
  37. package/dist/esm/core/getTypeFromEntity.js +3 -0
  38. package/dist/esm/core/getTypeFromEntity.js.map +1 -1
  39. package/dist/esm/core/schemas/internal/getEditorSchemas.js +16 -0
  40. package/dist/esm/core/schemas/internal/getEditorSchemas.js.map +1 -1
  41. package/dist/esm/core/schemas/shared/CatalogSchema.js +2 -0
  42. package/dist/esm/core/schemas/shared/CatalogSchema.js.map +1 -1
  43. package/dist/esm/core/schemas/types.js +2 -0
  44. package/dist/esm/core/schemas/types.js.map +1 -1
  45. package/dist/esm/core/types/HubEntityType.js +1 -0
  46. package/dist/esm/core/types/HubEntityType.js.map +1 -1
  47. package/dist/esm/core/types/IHubChannel.js +1 -0
  48. package/dist/esm/core/types/IHubChannel.js.map +1 -0
  49. package/dist/esm/core/types/index.js +1 -0
  50. package/dist/esm/core/types/index.js.map +1 -1
  51. package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js +1 -0
  52. package/dist/esm/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
  53. package/dist/esm/discussions/utils.js +3 -3
  54. package/dist/esm/discussions/utils.js.map +1 -1
  55. package/dist/esm/index.js +1 -0
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/permissions/types/IEntityPermissionPolicy.js +13 -0
  58. package/dist/esm/permissions/types/IEntityPermissionPolicy.js.map +1 -1
  59. package/dist/esm/permissions/types/Permission.js +2 -0
  60. package/dist/esm/permissions/types/Permission.js.map +1 -1
  61. package/dist/esm/search/_internal/getEntityTypeFromType.js +1 -1
  62. package/dist/esm/search/_internal/getEntityTypeFromType.js.map +1 -1
  63. package/dist/esm/search/_internal/hubSearchChannels.js +5 -3
  64. package/dist/esm/search/_internal/hubSearchChannels.js.map +1 -1
  65. package/dist/node/channels/HubChannel.js +177 -0
  66. package/dist/node/channels/HubChannel.js.map +1 -0
  67. package/dist/node/channels/_internal/ChannelBusinessRules.js +42 -0
  68. package/dist/node/channels/_internal/ChannelBusinessRules.js.map +1 -0
  69. package/dist/node/channels/_internal/ChannelSchema.js +201 -0
  70. package/dist/node/channels/_internal/ChannelSchema.js.map +1 -0
  71. package/dist/node/channels/_internal/ChannelUiSchemaCreate.js +291 -0
  72. package/dist/node/channels/_internal/ChannelUiSchemaCreate.js.map +1 -0
  73. package/dist/node/channels/_internal/ChannelUiSchemaEdit.js +23 -0
  74. package/dist/node/channels/_internal/ChannelUiSchemaEdit.js.map +1 -0
  75. package/dist/node/channels/_internal/buildDefaultChannel.js +30 -0
  76. package/dist/node/channels/_internal/buildDefaultChannel.js.map +1 -0
  77. package/dist/node/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js +52 -0
  78. package/dist/node/channels/_internal/transformAclPermissionToEntityPermissionPolicy.js.map +1 -0
  79. package/dist/node/channels/_internal/transformChannelToEntity.js +65 -0
  80. package/dist/node/channels/_internal/transformChannelToEntity.js.map +1 -0
  81. package/dist/node/channels/_internal/transformEditorToEntity.js +26 -0
  82. package/dist/node/channels/_internal/transformEditorToEntity.js.map +1 -0
  83. package/dist/node/channels/_internal/transformEntityPermissionPoliciesToFormValues.js +167 -0
  84. package/dist/node/channels/_internal/transformEntityPermissionPoliciesToFormValues.js.map +1 -0
  85. package/dist/node/channels/_internal/transformEntityToChannelData.js +73 -0
  86. package/dist/node/channels/_internal/transformEntityToChannelData.js.map +1 -0
  87. package/dist/node/channels/_internal/transformEntityToEditor.js +24 -0
  88. package/dist/node/channels/_internal/transformEntityToEditor.js.map +1 -0
  89. package/dist/node/channels/_internal/transformFormValuesToEntityPermissionPolicies.js +72 -0
  90. package/dist/node/channels/_internal/transformFormValuesToEntityPermissionPolicies.js.map +1 -0
  91. package/dist/node/channels/edit.js +41 -0
  92. package/dist/node/channels/edit.js.map +1 -0
  93. package/dist/node/channels/fetch.js +18 -0
  94. package/dist/node/channels/fetch.js.map +1 -0
  95. package/dist/node/channels/index.js +7 -0
  96. package/dist/node/channels/index.js.map +1 -0
  97. package/dist/node/core/EntityEditor.js +4 -0
  98. package/dist/node/core/EntityEditor.js.map +1 -1
  99. package/dist/node/core/fetchHubEntity.js +4 -0
  100. package/dist/node/core/fetchHubEntity.js.map +1 -1
  101. package/dist/node/core/getTypeFromEntity.js +3 -0
  102. package/dist/node/core/getTypeFromEntity.js.map +1 -1
  103. package/dist/node/core/schemas/internal/getEditorSchemas.js +16 -0
  104. package/dist/node/core/schemas/internal/getEditorSchemas.js.map +1 -1
  105. package/dist/node/core/schemas/shared/CatalogSchema.js +2 -0
  106. package/dist/node/core/schemas/shared/CatalogSchema.js.map +1 -1
  107. package/dist/node/core/schemas/types.js +2 -0
  108. package/dist/node/core/schemas/types.js.map +1 -1
  109. package/dist/node/core/types/HubEntityType.js +1 -0
  110. package/dist/node/core/types/HubEntityType.js.map +1 -1
  111. package/dist/node/core/types/IHubChannel.js +3 -0
  112. package/dist/node/core/types/IHubChannel.js.map +1 -0
  113. package/dist/node/core/types/index.js +1 -0
  114. package/dist/node/core/types/index.js.map +1 -1
  115. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js +1 -0
  116. package/dist/node/discussions/api/settings/getDefaultEntitySettings.js.map +1 -1
  117. package/dist/node/discussions/utils.js +3 -3
  118. package/dist/node/discussions/utils.js.map +1 -1
  119. package/dist/node/index.js +1 -0
  120. package/dist/node/index.js.map +1 -1
  121. package/dist/node/permissions/types/IEntityPermissionPolicy.js +14 -0
  122. package/dist/node/permissions/types/IEntityPermissionPolicy.js.map +1 -1
  123. package/dist/node/permissions/types/Permission.js +2 -0
  124. package/dist/node/permissions/types/Permission.js.map +1 -1
  125. package/dist/node/search/_internal/getEntityTypeFromType.js +1 -1
  126. package/dist/node/search/_internal/getEntityTypeFromType.js.map +1 -1
  127. package/dist/node/search/_internal/hubSearchChannels.js +4 -2
  128. package/dist/node/search/_internal/hubSearchChannels.js.map +1 -1
  129. package/dist/types/channels/HubChannel.d.ts +105 -0
  130. package/dist/types/channels/_internal/ChannelBusinessRules.d.ts +19 -0
  131. package/dist/types/channels/_internal/ChannelSchema.d.ts +16 -0
  132. package/dist/types/channels/_internal/ChannelUiSchemaCreate.d.ts +10 -0
  133. package/dist/types/channels/_internal/ChannelUiSchemaEdit.d.ts +10 -0
  134. package/dist/types/channels/_internal/buildDefaultChannel.d.ts +8 -0
  135. package/dist/types/channels/_internal/transformAclPermissionToEntityPermissionPolicy.d.ts +11 -0
  136. package/dist/types/channels/_internal/transformChannelToEntity.d.ts +11 -0
  137. package/dist/types/channels/_internal/transformEditorToEntity.d.ts +8 -0
  138. package/dist/types/channels/_internal/transformEntityPermissionPoliciesToFormValues.d.ts +44 -0
  139. package/dist/types/channels/_internal/transformEntityToChannelData.d.ts +9 -0
  140. package/dist/types/channels/_internal/transformEntityToEditor.d.ts +9 -0
  141. package/dist/types/channels/_internal/transformFormValuesToEntityPermissionPolicies.d.ts +9 -0
  142. package/dist/types/channels/edit.d.ts +23 -0
  143. package/dist/types/channels/fetch.d.ts +9 -0
  144. package/dist/types/channels/index.d.ts +3 -0
  145. package/dist/types/content/_internal/internalContentUtils.d.ts +1 -1
  146. package/dist/types/content/get-family.d.ts +1 -1
  147. package/dist/types/core/EntityEditor.d.ts +1 -1
  148. package/dist/types/core/schemas/types.d.ts +2 -2
  149. package/dist/types/core/types/HubEntity.d.ts +3 -2
  150. package/dist/types/core/types/HubEntityType.d.ts +1 -1
  151. package/dist/types/core/types/IHubChannel.d.ts +91 -0
  152. package/dist/types/core/types/index.d.ts +1 -0
  153. package/dist/types/index.d.ts +1 -0
  154. package/dist/types/permissions/types/IEntityPermissionPolicy.d.ts +10 -2
  155. package/dist/types/permissions/types/Permission.d.ts +2 -1
  156. 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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"}