@notty/modules 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/dist/addons/index.cjs +690 -0
- package/dist/addons/index.d.cts +22 -0
- package/dist/addons/index.d.ts +22 -0
- package/dist/addons/index.js +10 -0
- package/dist/business/index.cjs +696 -0
- package/dist/business/index.d.cts +2 -0
- package/dist/business/index.d.ts +2 -0
- package/dist/business/index.js +16 -0
- package/dist/chunk-XGAN6DSV.js +678 -0
- package/dist/core/index.cjs +690 -0
- package/dist/core/index.d.cts +2 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +10 -0
- package/dist/enterprise/index.cjs +692 -0
- package/dist/enterprise/index.d.cts +2 -0
- package/dist/enterprise/index.d.ts +2 -0
- package/dist/enterprise/index.js +12 -0
- package/dist/index.cjs +698 -0
- package/dist/index.d.cts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +16 -0
- package/dist/pro/index.cjs +688 -0
- package/dist/pro/index.d.cts +2 -0
- package/dist/pro/index.d.ts +2 -0
- package/dist/pro/index.js +8 -0
- package/package.json +120 -0
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/addons/index.ts
|
|
21
|
+
var addons_exports = {};
|
|
22
|
+
__export(addons_exports, {
|
|
23
|
+
addOnModules: () => addOnModules,
|
|
24
|
+
commerceBundleModule: () => commerceBundleModule,
|
|
25
|
+
portalBundleModule: () => portalBundleModule
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(addons_exports);
|
|
28
|
+
|
|
29
|
+
// src/catalog.ts
|
|
30
|
+
var coreCmsModule = {
|
|
31
|
+
module: {
|
|
32
|
+
key: "core.cms",
|
|
33
|
+
displayName: "Core CMS",
|
|
34
|
+
description: "Schema builder, content editor, media library, delivery APIs and base RBAC.",
|
|
35
|
+
firstParty: true,
|
|
36
|
+
commercial: false,
|
|
37
|
+
addOn: false,
|
|
38
|
+
packageName: "@notty/module-cms",
|
|
39
|
+
configKey: "cms"
|
|
40
|
+
},
|
|
41
|
+
features: [
|
|
42
|
+
{
|
|
43
|
+
key: "content.schema-builder",
|
|
44
|
+
displayName: "Schema Builder",
|
|
45
|
+
description: "Create and manage content schemas.",
|
|
46
|
+
owningModule: "core.cms",
|
|
47
|
+
commercial: false
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: "content.editor",
|
|
51
|
+
displayName: "Content Editor",
|
|
52
|
+
description: "Create and edit content entries in the admin panel.",
|
|
53
|
+
owningModule: "core.cms",
|
|
54
|
+
commercial: false
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: "media.library",
|
|
58
|
+
displayName: "Media Library",
|
|
59
|
+
description: "Upload, organize and deliver media assets.",
|
|
60
|
+
owningModule: "core.cms",
|
|
61
|
+
commercial: false
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: "api.rest",
|
|
65
|
+
displayName: "REST API",
|
|
66
|
+
description: "Deliver content through REST endpoints.",
|
|
67
|
+
owningModule: "core.cms",
|
|
68
|
+
commercial: false
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "api.graphql",
|
|
72
|
+
displayName: "GraphQL API",
|
|
73
|
+
description: "Deliver content through GraphQL.",
|
|
74
|
+
owningModule: "core.cms",
|
|
75
|
+
commercial: false
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
key: "auth.basic-rbac",
|
|
79
|
+
displayName: "Basic RBAC",
|
|
80
|
+
description: "Base roles and permission controls.",
|
|
81
|
+
owningModule: "core.cms",
|
|
82
|
+
commercial: false
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
var coreDeveloperModule = {
|
|
87
|
+
module: {
|
|
88
|
+
key: "core.developer",
|
|
89
|
+
displayName: "Developer Platform",
|
|
90
|
+
description: "Plugin runtime, admin extensions and generated application contracts.",
|
|
91
|
+
firstParty: true,
|
|
92
|
+
commercial: false,
|
|
93
|
+
addOn: false,
|
|
94
|
+
requiredModules: ["core.cms"],
|
|
95
|
+
packageName: "@notty/module-developer",
|
|
96
|
+
configKey: "developer"
|
|
97
|
+
},
|
|
98
|
+
features: [
|
|
99
|
+
{
|
|
100
|
+
key: "plugins.runtime",
|
|
101
|
+
displayName: "Plugin Runtime",
|
|
102
|
+
description: "Load app-local and reusable plugins.",
|
|
103
|
+
owningModule: "core.developer",
|
|
104
|
+
commercial: false
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
key: "plugins.admin-extensions",
|
|
108
|
+
displayName: "Admin Extensions",
|
|
109
|
+
description: "Render plugin-provided admin navigation, pages and widgets.",
|
|
110
|
+
owningModule: "core.developer",
|
|
111
|
+
commercial: false
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
key: "sdk.codegen",
|
|
115
|
+
displayName: "Generated App Contract",
|
|
116
|
+
description: "Use generated project structure and extension contracts.",
|
|
117
|
+
owningModule: "core.developer",
|
|
118
|
+
commercial: false
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
adminRouteGates: {
|
|
122
|
+
"admin:extensions:get": "plugins.admin-extensions"
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
var proProductionModule = {
|
|
126
|
+
module: {
|
|
127
|
+
key: "pro.production",
|
|
128
|
+
displayName: "Production Use",
|
|
129
|
+
description: "Commercial production use, white-label branding, preview tokens and backups.",
|
|
130
|
+
firstParty: true,
|
|
131
|
+
commercial: true,
|
|
132
|
+
addOn: false,
|
|
133
|
+
requiredModules: ["core.cms", "core.developer"],
|
|
134
|
+
packageName: "@notty/module-production",
|
|
135
|
+
configKey: "production"
|
|
136
|
+
},
|
|
137
|
+
features: [
|
|
138
|
+
{
|
|
139
|
+
key: "deployment.production-use",
|
|
140
|
+
displayName: "Production Use",
|
|
141
|
+
description: "Run Notty for commercial production projects.",
|
|
142
|
+
owningModule: "pro.production",
|
|
143
|
+
commercial: true
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
key: "branding.white-label",
|
|
147
|
+
displayName: "White-label Branding",
|
|
148
|
+
description: "Customize admin branding for commercial projects.",
|
|
149
|
+
owningModule: "pro.production",
|
|
150
|
+
commercial: true
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
key: "preview.tokens",
|
|
154
|
+
displayName: "Preview Tokens",
|
|
155
|
+
description: "Generate secure preview links for unpublished content.",
|
|
156
|
+
owningModule: "pro.production",
|
|
157
|
+
commercial: true
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
key: "backups.manual",
|
|
161
|
+
displayName: "Manual Backups",
|
|
162
|
+
description: "Create and restore backups manually.",
|
|
163
|
+
owningModule: "pro.production",
|
|
164
|
+
commercial: true
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
adminRouteGates: {
|
|
168
|
+
"admin:backups:list": "backups.manual",
|
|
169
|
+
"admin:backups:get": "backups.manual",
|
|
170
|
+
"admin:backups:create": "backups.manual",
|
|
171
|
+
"admin:backups:delete": "backups.manual",
|
|
172
|
+
"admin:backups:restore": "backups.manual",
|
|
173
|
+
"admin:preview-tokens:list": "preview.tokens",
|
|
174
|
+
"admin:preview-tokens:create": "preview.tokens",
|
|
175
|
+
"admin:preview-tokens:delete": "preview.tokens"
|
|
176
|
+
},
|
|
177
|
+
adminScopeGates: {
|
|
178
|
+
"admin:backups:read": "backups.manual",
|
|
179
|
+
"admin:backups:write": "backups.manual",
|
|
180
|
+
"preview:read": "preview.tokens",
|
|
181
|
+
"preview:write": "preview.tokens"
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
var businessWorkflowModule = {
|
|
185
|
+
module: {
|
|
186
|
+
key: "business.workflow",
|
|
187
|
+
displayName: "Workflow",
|
|
188
|
+
description: "Approvals, releases, assignments and editorial collaboration.",
|
|
189
|
+
firstParty: true,
|
|
190
|
+
commercial: true,
|
|
191
|
+
addOn: false,
|
|
192
|
+
requiredModules: ["pro.production"],
|
|
193
|
+
packageName: "@notty/module-workflow",
|
|
194
|
+
configKey: "workflow"
|
|
195
|
+
},
|
|
196
|
+
features: [
|
|
197
|
+
{
|
|
198
|
+
key: "workflow.approvals",
|
|
199
|
+
displayName: "Approvals",
|
|
200
|
+
description: "Route content through editorial approval states.",
|
|
201
|
+
owningModule: "business.workflow",
|
|
202
|
+
commercial: true
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
key: "workflow.releases",
|
|
206
|
+
displayName: "Content Releases",
|
|
207
|
+
description: "Group, schedule and roll back coordinated releases.",
|
|
208
|
+
owningModule: "business.workflow",
|
|
209
|
+
commercial: true
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
key: "workflow.assignments",
|
|
213
|
+
displayName: "Assignments",
|
|
214
|
+
description: "Assign editorial work to users.",
|
|
215
|
+
owningModule: "business.workflow",
|
|
216
|
+
commercial: true
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
key: "collaboration.comments",
|
|
220
|
+
displayName: "Comments",
|
|
221
|
+
description: "Discuss content with editorial comments.",
|
|
222
|
+
owningModule: "business.workflow",
|
|
223
|
+
commercial: true
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
adminRouteGates: {
|
|
227
|
+
"admin:assignments:mine": "workflow.assignments",
|
|
228
|
+
"admin:releases:list": "workflow.releases",
|
|
229
|
+
"admin:releases:get": "workflow.releases",
|
|
230
|
+
"admin:releases:create": "workflow.releases",
|
|
231
|
+
"admin:releases:update": "workflow.releases",
|
|
232
|
+
"admin:releases:delete": "workflow.releases",
|
|
233
|
+
"admin:releases:add-item": "workflow.releases",
|
|
234
|
+
"admin:releases:remove-item": "workflow.releases",
|
|
235
|
+
"admin:releases:publish": "workflow.releases",
|
|
236
|
+
"admin:releases:schedule": "workflow.releases",
|
|
237
|
+
"admin:releases:unschedule": "workflow.releases",
|
|
238
|
+
"admin:releases:rollback": "workflow.releases"
|
|
239
|
+
},
|
|
240
|
+
adminScopeGates: {
|
|
241
|
+
"releases:read": "workflow.releases",
|
|
242
|
+
"releases:write": "workflow.releases"
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
var businessOperationsModule = {
|
|
246
|
+
module: {
|
|
247
|
+
key: "business.operations",
|
|
248
|
+
displayName: "Operations",
|
|
249
|
+
description: "Webhooks, job queue, scheduled jobs, backup automation and delivery insights.",
|
|
250
|
+
firstParty: true,
|
|
251
|
+
commercial: true,
|
|
252
|
+
addOn: false,
|
|
253
|
+
requiredModules: ["pro.production"],
|
|
254
|
+
packageName: "@notty/module-operations",
|
|
255
|
+
configKey: "operations"
|
|
256
|
+
},
|
|
257
|
+
features: [
|
|
258
|
+
{
|
|
259
|
+
key: "operations.webhooks",
|
|
260
|
+
displayName: "Webhooks",
|
|
261
|
+
description: "Send event-driven integrations.",
|
|
262
|
+
owningModule: "business.operations",
|
|
263
|
+
commercial: true
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
key: "operations.jobs",
|
|
267
|
+
displayName: "Job Queue",
|
|
268
|
+
description: "Run background jobs and retries.",
|
|
269
|
+
owningModule: "business.operations",
|
|
270
|
+
commercial: true
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
key: "operations.scheduled-jobs",
|
|
274
|
+
displayName: "Scheduled Jobs",
|
|
275
|
+
description: "Run cron-like operational jobs.",
|
|
276
|
+
owningModule: "business.operations",
|
|
277
|
+
commercial: true
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
key: "operations.backup-automation",
|
|
281
|
+
displayName: "Backup Automation",
|
|
282
|
+
description: "Schedule recurring backups and retention.",
|
|
283
|
+
owningModule: "business.operations",
|
|
284
|
+
commercial: true
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
key: "operations.delivery-observability",
|
|
288
|
+
displayName: "Delivery Observability",
|
|
289
|
+
description: "Inspect delivery API, search and cache state.",
|
|
290
|
+
owningModule: "business.operations",
|
|
291
|
+
commercial: true
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
key: "operations.alerts",
|
|
295
|
+
displayName: "Operational Alerts",
|
|
296
|
+
description: "Configure, acknowledge and resolve operational alerts.",
|
|
297
|
+
owningModule: "business.operations",
|
|
298
|
+
commercial: true
|
|
299
|
+
}
|
|
300
|
+
],
|
|
301
|
+
adminRouteGates: {
|
|
302
|
+
"admin:backups:schedule:get": "operations.backup-automation",
|
|
303
|
+
"admin:backups:schedule:update": "operations.backup-automation",
|
|
304
|
+
"admin:alerts:list": "operations.alerts",
|
|
305
|
+
"admin:alerts:stats": "operations.alerts",
|
|
306
|
+
"admin:alerts:config:get": "operations.alerts",
|
|
307
|
+
"admin:alerts:config:update": "operations.alerts",
|
|
308
|
+
"admin:alerts:acknowledge": "operations.alerts",
|
|
309
|
+
"admin:alerts:resolve": "operations.alerts",
|
|
310
|
+
"admin:jobs:list": "operations.jobs",
|
|
311
|
+
"admin:jobs:get": "operations.jobs",
|
|
312
|
+
"admin:jobs:stats": "operations.jobs",
|
|
313
|
+
"admin:jobs:retry": "operations.jobs",
|
|
314
|
+
"admin:jobs:cancel": "operations.jobs",
|
|
315
|
+
"admin:jobs:cleanup": "operations.jobs",
|
|
316
|
+
"admin:scheduled-jobs:list": "operations.scheduled-jobs",
|
|
317
|
+
"admin:scheduled-jobs:get": "operations.scheduled-jobs",
|
|
318
|
+
"admin:scheduled-jobs:create": "operations.scheduled-jobs",
|
|
319
|
+
"admin:scheduled-jobs:update": "operations.scheduled-jobs",
|
|
320
|
+
"admin:scheduled-jobs:delete": "operations.scheduled-jobs",
|
|
321
|
+
"admin:scheduled-jobs:trigger": "operations.scheduled-jobs",
|
|
322
|
+
"admin:delivery:overview": "operations.delivery-observability",
|
|
323
|
+
"admin:delivery:reindex": "operations.delivery-observability",
|
|
324
|
+
"admin:observability:overview": "operations.delivery-observability",
|
|
325
|
+
"admin:observability:cache:clear": "operations.delivery-observability"
|
|
326
|
+
},
|
|
327
|
+
adminScopeGates: {
|
|
328
|
+
"webhooks:read": "operations.webhooks",
|
|
329
|
+
"webhooks:write": "operations.webhooks",
|
|
330
|
+
"jobs:read": "operations.jobs",
|
|
331
|
+
"jobs:write": "operations.jobs",
|
|
332
|
+
"scheduled-jobs:read": "operations.scheduled-jobs",
|
|
333
|
+
"scheduled-jobs:write": "operations.scheduled-jobs",
|
|
334
|
+
"admin:alerts:read": "operations.alerts",
|
|
335
|
+
"admin:alerts:write": "operations.alerts"
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
var businessComplianceModule = {
|
|
339
|
+
module: {
|
|
340
|
+
key: "business.compliance",
|
|
341
|
+
displayName: "Compliance",
|
|
342
|
+
description: "Audit logs, retention policies, legal holds and subject request workflows.",
|
|
343
|
+
firstParty: true,
|
|
344
|
+
commercial: true,
|
|
345
|
+
addOn: false,
|
|
346
|
+
requiredModules: ["pro.production"],
|
|
347
|
+
optionalModules: ["business.workflow"],
|
|
348
|
+
packageName: "@notty/module-compliance",
|
|
349
|
+
configKey: "compliance"
|
|
350
|
+
},
|
|
351
|
+
features: [
|
|
352
|
+
{
|
|
353
|
+
key: "compliance.audit-log",
|
|
354
|
+
displayName: "Audit Log",
|
|
355
|
+
description: "Track administrative and content activity.",
|
|
356
|
+
owningModule: "business.compliance",
|
|
357
|
+
commercial: true
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
key: "compliance.governance",
|
|
361
|
+
displayName: "Governance",
|
|
362
|
+
description: "Configure compliance governance controls.",
|
|
363
|
+
owningModule: "business.compliance",
|
|
364
|
+
commercial: true
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
key: "compliance.retention",
|
|
368
|
+
displayName: "Retention Policies",
|
|
369
|
+
description: "Manage data retention policy execution.",
|
|
370
|
+
owningModule: "business.compliance",
|
|
371
|
+
commercial: true
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
key: "compliance.legal-holds",
|
|
375
|
+
displayName: "Legal Holds",
|
|
376
|
+
description: "Protect records from retention deletion.",
|
|
377
|
+
owningModule: "business.compliance",
|
|
378
|
+
commercial: true
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
key: "compliance.subject-requests",
|
|
382
|
+
displayName: "Subject Requests",
|
|
383
|
+
description: "Handle privacy export and erasure workflows.",
|
|
384
|
+
owningModule: "business.compliance",
|
|
385
|
+
commercial: true
|
|
386
|
+
}
|
|
387
|
+
],
|
|
388
|
+
adminRouteGates: {
|
|
389
|
+
"admin:audit-logs:list": "compliance.audit-log",
|
|
390
|
+
"admin:audit-logs:get": "compliance.audit-log",
|
|
391
|
+
"admin:activity:list": "compliance.audit-log",
|
|
392
|
+
"admin:activity:stream": "compliance.audit-log",
|
|
393
|
+
"admin:compliance:governance:get": "compliance.governance",
|
|
394
|
+
"admin:compliance:governance:upsert": "compliance.governance",
|
|
395
|
+
"admin:compliance:legal-holds:list": "compliance.legal-holds",
|
|
396
|
+
"admin:compliance:legal-holds:get": "compliance.legal-holds",
|
|
397
|
+
"admin:compliance:legal-holds:create": "compliance.legal-holds",
|
|
398
|
+
"admin:compliance:legal-holds:release": "compliance.legal-holds",
|
|
399
|
+
"admin:compliance:retention:list": "compliance.retention",
|
|
400
|
+
"admin:compliance:retention:get": "compliance.retention",
|
|
401
|
+
"admin:compliance:retention:create": "compliance.retention",
|
|
402
|
+
"admin:compliance:retention:update": "compliance.retention",
|
|
403
|
+
"admin:compliance:retention:delete": "compliance.retention",
|
|
404
|
+
"admin:compliance:retention:run": "compliance.retention",
|
|
405
|
+
"admin:compliance:subject-requests:list": "compliance.subject-requests",
|
|
406
|
+
"admin:compliance:subject-requests:get": "compliance.subject-requests",
|
|
407
|
+
"admin:compliance:subject-requests:create": "compliance.subject-requests",
|
|
408
|
+
"admin:compliance:subject-requests:download": "compliance.subject-requests"
|
|
409
|
+
},
|
|
410
|
+
adminScopeGates: {
|
|
411
|
+
"audit-logs:read": "compliance.audit-log",
|
|
412
|
+
"activity:read": "compliance.audit-log"
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
var businessAiModule = {
|
|
416
|
+
module: {
|
|
417
|
+
key: "business.ai",
|
|
418
|
+
displayName: "AI Assistants",
|
|
419
|
+
description: "Schema, editorial and governance assistants with operational guardrails.",
|
|
420
|
+
firstParty: true,
|
|
421
|
+
commercial: true,
|
|
422
|
+
addOn: false,
|
|
423
|
+
requiredModules: ["core.developer"],
|
|
424
|
+
optionalModules: ["business.workflow", "business.compliance"],
|
|
425
|
+
packageName: "@notty/module-ai",
|
|
426
|
+
configKey: "ai"
|
|
427
|
+
},
|
|
428
|
+
features: [
|
|
429
|
+
{
|
|
430
|
+
key: "ai.schema-assistant",
|
|
431
|
+
displayName: "Schema Assistant",
|
|
432
|
+
description: "Use AI to propose schema improvements.",
|
|
433
|
+
owningModule: "business.ai",
|
|
434
|
+
commercial: true
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
key: "ai.editorial-qa",
|
|
438
|
+
displayName: "Editorial QA",
|
|
439
|
+
description: "Use AI to review content quality.",
|
|
440
|
+
owningModule: "business.ai",
|
|
441
|
+
commercial: true
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
key: "ai.guardrails",
|
|
445
|
+
displayName: "AI Guardrails",
|
|
446
|
+
description: "Apply AI action policy and governance checks.",
|
|
447
|
+
owningModule: "business.ai",
|
|
448
|
+
commercial: true
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
adminRouteGates: {
|
|
452
|
+
"admin:ai:schema-assistant": "ai.schema-assistant",
|
|
453
|
+
"admin:ai:migration-advisor": "ai.schema-assistant",
|
|
454
|
+
"admin:ai:scaffolding-assistant": "ai.schema-assistant",
|
|
455
|
+
"admin:ai:editorial-qa": "ai.editorial-qa",
|
|
456
|
+
"admin:ai:query-advisor": "ai.guardrails",
|
|
457
|
+
"admin:ai:automation-advisor": "ai.guardrails",
|
|
458
|
+
"admin:ai:actions:list": "ai.guardrails",
|
|
459
|
+
"admin:ai:actions:get": "ai.guardrails",
|
|
460
|
+
"admin:ai:actions:propose": "ai.guardrails",
|
|
461
|
+
"admin:ai:actions:approve": "ai.guardrails",
|
|
462
|
+
"admin:ai:actions:reject": "ai.guardrails",
|
|
463
|
+
"admin:ai:actions:apply": "ai.guardrails"
|
|
464
|
+
},
|
|
465
|
+
adminScopeGates: {
|
|
466
|
+
"admin:ai:read": "ai.guardrails",
|
|
467
|
+
"admin:ai:write": "ai.guardrails"
|
|
468
|
+
}
|
|
469
|
+
};
|
|
470
|
+
var businessPluginTrustModule = {
|
|
471
|
+
module: {
|
|
472
|
+
key: "business.plugin-trust",
|
|
473
|
+
displayName: "Plugin Trust",
|
|
474
|
+
description: "First-party plugin allowlists, integrity checks and production trust policy.",
|
|
475
|
+
firstParty: true,
|
|
476
|
+
commercial: true,
|
|
477
|
+
addOn: false,
|
|
478
|
+
requiredModules: ["core.developer"],
|
|
479
|
+
packageName: "@notty/module-plugin-trust",
|
|
480
|
+
configKey: "pluginTrust"
|
|
481
|
+
},
|
|
482
|
+
features: [
|
|
483
|
+
{
|
|
484
|
+
key: "plugins.trust-policy",
|
|
485
|
+
displayName: "Plugin Trust Policy",
|
|
486
|
+
description: "Enforce plugin allowlists and integrity checks.",
|
|
487
|
+
owningModule: "business.plugin-trust",
|
|
488
|
+
commercial: true
|
|
489
|
+
}
|
|
490
|
+
]
|
|
491
|
+
};
|
|
492
|
+
var enterpriseAuthModule = {
|
|
493
|
+
module: {
|
|
494
|
+
key: "enterprise.auth",
|
|
495
|
+
displayName: "Enterprise Identity",
|
|
496
|
+
description: "SSO and SCIM automation for corporate identity providers.",
|
|
497
|
+
firstParty: true,
|
|
498
|
+
commercial: true,
|
|
499
|
+
addOn: false,
|
|
500
|
+
requiredModules: ["pro.production"],
|
|
501
|
+
packageName: "@notty/module-enterprise-auth",
|
|
502
|
+
configKey: "enterpriseAuth"
|
|
503
|
+
},
|
|
504
|
+
features: [
|
|
505
|
+
{
|
|
506
|
+
key: "enterprise.sso",
|
|
507
|
+
displayName: "SSO",
|
|
508
|
+
description: "Authenticate admins through enterprise identity providers.",
|
|
509
|
+
owningModule: "enterprise.auth",
|
|
510
|
+
commercial: true
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
key: "enterprise.scim",
|
|
514
|
+
displayName: "SCIM",
|
|
515
|
+
description: "Automate identity provisioning and deprovisioning.",
|
|
516
|
+
owningModule: "enterprise.auth",
|
|
517
|
+
commercial: true
|
|
518
|
+
}
|
|
519
|
+
],
|
|
520
|
+
adminRouteGates: {
|
|
521
|
+
"admin:sso:providers:list": "enterprise.sso",
|
|
522
|
+
"admin:sso:providers:show": "enterprise.sso",
|
|
523
|
+
"admin:sso:providers:create": "enterprise.sso",
|
|
524
|
+
"admin:sso:providers:update": "enterprise.sso",
|
|
525
|
+
"admin:sso:providers:delete": "enterprise.sso"
|
|
526
|
+
},
|
|
527
|
+
adminScopeGates: {
|
|
528
|
+
"admin:scim:read": "enterprise.scim",
|
|
529
|
+
"admin:scim:write": "enterprise.scim"
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
var enterpriseScaleModule = {
|
|
533
|
+
module: {
|
|
534
|
+
key: "enterprise.scale",
|
|
535
|
+
displayName: "Enterprise Scale",
|
|
536
|
+
description: "Multi-tenancy, workspaces, quotas and scale-oriented isolation controls.",
|
|
537
|
+
firstParty: true,
|
|
538
|
+
commercial: true,
|
|
539
|
+
addOn: false,
|
|
540
|
+
requiredModules: ["pro.production"],
|
|
541
|
+
optionalModules: ["enterprise.auth"],
|
|
542
|
+
packageName: "@notty/module-enterprise-scale",
|
|
543
|
+
configKey: "enterpriseScale"
|
|
544
|
+
},
|
|
545
|
+
features: [
|
|
546
|
+
{
|
|
547
|
+
key: "enterprise.multi-tenancy",
|
|
548
|
+
displayName: "Multi-tenancy",
|
|
549
|
+
description: "Isolate tenants in a single deployment.",
|
|
550
|
+
owningModule: "enterprise.scale",
|
|
551
|
+
commercial: true
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
key: "enterprise.workspaces",
|
|
555
|
+
displayName: "Workspaces",
|
|
556
|
+
description: "Segment content and users by workspace.",
|
|
557
|
+
owningModule: "enterprise.scale",
|
|
558
|
+
commercial: true
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
key: "enterprise.quotas",
|
|
562
|
+
displayName: "Quotas",
|
|
563
|
+
description: "Limit tenant and workspace resource usage.",
|
|
564
|
+
owningModule: "enterprise.scale",
|
|
565
|
+
commercial: true
|
|
566
|
+
}
|
|
567
|
+
],
|
|
568
|
+
adminRouteGates: {
|
|
569
|
+
"admin:workspaces:list": "enterprise.workspaces",
|
|
570
|
+
"admin:workspaces:get": "enterprise.workspaces",
|
|
571
|
+
"admin:workspaces:create": "enterprise.workspaces",
|
|
572
|
+
"admin:workspaces:update": "enterprise.workspaces",
|
|
573
|
+
"admin:workspaces:delete": "enterprise.workspaces"
|
|
574
|
+
},
|
|
575
|
+
adminScopeGates: {
|
|
576
|
+
"admin:workspaces:read": "enterprise.workspaces",
|
|
577
|
+
"admin:workspaces:write": "enterprise.workspaces"
|
|
578
|
+
}
|
|
579
|
+
};
|
|
580
|
+
var enterpriseDeploymentModule = {
|
|
581
|
+
module: {
|
|
582
|
+
key: "enterprise.deployment",
|
|
583
|
+
displayName: "Enterprise Deployment",
|
|
584
|
+
description: "High-availability deployment and operations controls.",
|
|
585
|
+
firstParty: true,
|
|
586
|
+
commercial: true,
|
|
587
|
+
addOn: false,
|
|
588
|
+
requiredModules: ["pro.production"],
|
|
589
|
+
optionalModules: ["business.operations"],
|
|
590
|
+
packageName: "@notty/module-enterprise-deployment",
|
|
591
|
+
configKey: "enterpriseDeployment"
|
|
592
|
+
},
|
|
593
|
+
features: [
|
|
594
|
+
{
|
|
595
|
+
key: "enterprise.ha",
|
|
596
|
+
displayName: "High Availability",
|
|
597
|
+
description: "Run Notty in highly available production topologies.",
|
|
598
|
+
owningModule: "enterprise.deployment",
|
|
599
|
+
commercial: true
|
|
600
|
+
}
|
|
601
|
+
]
|
|
602
|
+
};
|
|
603
|
+
var commerceBundleModule = {
|
|
604
|
+
module: {
|
|
605
|
+
key: "commerce.bundle",
|
|
606
|
+
displayName: "Commerce Bundle",
|
|
607
|
+
description: "First-party commerce domain modules for catalogs and checkout integrations.",
|
|
608
|
+
firstParty: true,
|
|
609
|
+
commercial: true,
|
|
610
|
+
addOn: true,
|
|
611
|
+
requiredModules: ["pro.production"],
|
|
612
|
+
optionalModules: ["business.workflow"],
|
|
613
|
+
packageName: "@notty/module-commerce",
|
|
614
|
+
configKey: "commerce"
|
|
615
|
+
},
|
|
616
|
+
features: [
|
|
617
|
+
{
|
|
618
|
+
key: "commerce.catalog",
|
|
619
|
+
displayName: "Commerce Catalog",
|
|
620
|
+
description: "Model products, variants and commerce content.",
|
|
621
|
+
owningModule: "commerce.bundle",
|
|
622
|
+
commercial: true
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
key: "commerce.checkout-integrations",
|
|
626
|
+
displayName: "Checkout Integrations",
|
|
627
|
+
description: "Connect commerce content to checkout providers.",
|
|
628
|
+
owningModule: "commerce.bundle",
|
|
629
|
+
commercial: true
|
|
630
|
+
}
|
|
631
|
+
]
|
|
632
|
+
};
|
|
633
|
+
var portalBundleModule = {
|
|
634
|
+
module: {
|
|
635
|
+
key: "portal.bundle",
|
|
636
|
+
displayName: "Portal Bundle",
|
|
637
|
+
description: "First-party portal modules for intranet and authenticated member areas.",
|
|
638
|
+
firstParty: true,
|
|
639
|
+
commercial: true,
|
|
640
|
+
addOn: true,
|
|
641
|
+
requiredModules: ["pro.production"],
|
|
642
|
+
optionalModules: ["enterprise.auth"],
|
|
643
|
+
packageName: "@notty/module-portal",
|
|
644
|
+
configKey: "portal"
|
|
645
|
+
},
|
|
646
|
+
features: [
|
|
647
|
+
{
|
|
648
|
+
key: "portal.intranet",
|
|
649
|
+
displayName: "Intranet Portal",
|
|
650
|
+
description: "Build internal portals on top of Notty content.",
|
|
651
|
+
owningModule: "portal.bundle",
|
|
652
|
+
commercial: true
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
key: "portal.member-areas",
|
|
656
|
+
displayName: "Member Areas",
|
|
657
|
+
description: "Build authenticated portal experiences.",
|
|
658
|
+
owningModule: "portal.bundle",
|
|
659
|
+
commercial: true
|
|
660
|
+
}
|
|
661
|
+
]
|
|
662
|
+
};
|
|
663
|
+
var coreModules = [coreCmsModule, coreDeveloperModule];
|
|
664
|
+
var proModules = [proProductionModule];
|
|
665
|
+
var businessModules = [
|
|
666
|
+
businessWorkflowModule,
|
|
667
|
+
businessOperationsModule,
|
|
668
|
+
businessComplianceModule,
|
|
669
|
+
businessAiModule,
|
|
670
|
+
businessPluginTrustModule
|
|
671
|
+
];
|
|
672
|
+
var enterpriseModules = [
|
|
673
|
+
enterpriseAuthModule,
|
|
674
|
+
enterpriseScaleModule,
|
|
675
|
+
enterpriseDeploymentModule
|
|
676
|
+
];
|
|
677
|
+
var addOnModules = [commerceBundleModule, portalBundleModule];
|
|
678
|
+
var firstPartyModuleManifests = [
|
|
679
|
+
...coreModules,
|
|
680
|
+
...proModules,
|
|
681
|
+
...businessModules,
|
|
682
|
+
...enterpriseModules,
|
|
683
|
+
...addOnModules
|
|
684
|
+
];
|
|
685
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
686
|
+
0 && (module.exports = {
|
|
687
|
+
addOnModules,
|
|
688
|
+
commerceBundleModule,
|
|
689
|
+
portalBundleModule
|
|
690
|
+
});
|