@defra/forms-model 3.0.529 → 3.0.530

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.
@@ -15,6 +15,7 @@ export * from "./form/form-editor/index.js";
15
15
  export * from "./form/form-editor/preview/index.js";
16
16
  export * from "./form/form-manager/types.js";
17
17
  export * from "./form/form-manager/errors.js";
18
+ export * from "./manage/roles.js";
18
19
  export * from "./manage/users.js";
19
20
  export * from "./pages/index.js";
20
21
  export * from "./utils/helpers.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/common/enums.js'\nexport * from '~/src/common/random-id.js'\nexport * from '~/src/common/schema.js'\nexport * from '~/src/common/pagination/index.js'\nexport * from '~/src/common/search/index.js'\nexport * from '~/src/common/sorting/index.js'\nexport * from '~/src/components/index.js'\nexport * from '~/src/conditions/index.js'\nexport * from '~/src/form/form-definition/index.js'\nexport * from '~/src/form/form-definition/types.js'\nexport * from '~/src/form/form-metadata/index.js'\nexport * from '~/src/form/form-submission/index.js'\nexport * from '~/src/form/utils/index.js'\nexport * from '~/src/form/form-editor/index.js'\nexport * from '~/src/form/form-editor/preview/index.js'\nexport * from '~/src/form/form-manager/types.js'\nexport * from '~/src/form/form-manager/errors.js'\nexport * from '~/src/manage/users.js'\nexport * from '~/src/pages/index.js'\nexport * from '~/src/utils/helpers.js'\nexport * from '~/src/utils/markdown.js'\nexport * from '~/src/form/form-audit/index.js'\nexport * from '~/src/form/form-audit/enums.js'\n\nexport type * from '~/src/common/types.js'\nexport type * from '~/src/common/pagination/types.js'\nexport type * from '~/src/common/search/types.js'\nexport type * from '~/src/common/sorting/types.js'\nexport type * from '~/src/components/types.js'\nexport type * from '~/src/conditions/types.js'\nexport type * from '~/src/form/form-definition/types.js'\nexport type * from '~/src/form/form-metadata/types.js'\nexport type * from '~/src/form/form-submission/types.js'\nexport type * from '~/src/form/form-editor/preview/types.js'\nexport type * from '~/src/form/form-editor/types.js'\nexport type * from '~/src/form/form-editor/macros/types.js'\nexport type * from '~/src/form/form-audit/types.js'\nexport type * from '~/src/manage/types.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/common/enums.js'\nexport * from '~/src/common/random-id.js'\nexport * from '~/src/common/schema.js'\nexport * from '~/src/common/pagination/index.js'\nexport * from '~/src/common/search/index.js'\nexport * from '~/src/common/sorting/index.js'\nexport * from '~/src/components/index.js'\nexport * from '~/src/conditions/index.js'\nexport * from '~/src/form/form-definition/index.js'\nexport * from '~/src/form/form-definition/types.js'\nexport * from '~/src/form/form-metadata/index.js'\nexport * from '~/src/form/form-submission/index.js'\nexport * from '~/src/form/utils/index.js'\nexport * from '~/src/form/form-editor/index.js'\nexport * from '~/src/form/form-editor/preview/index.js'\nexport * from '~/src/form/form-manager/types.js'\nexport * from '~/src/form/form-manager/errors.js'\nexport * from '~/src/manage/roles.js'\nexport * from '~/src/manage/users.js'\nexport * from '~/src/pages/index.js'\nexport * from '~/src/utils/helpers.js'\nexport * from '~/src/utils/markdown.js'\nexport * from '~/src/form/form-audit/index.js'\nexport * from '~/src/form/form-audit/enums.js'\n\nexport type * from '~/src/common/types.js'\nexport type * from '~/src/common/pagination/types.js'\nexport type * from '~/src/common/search/types.js'\nexport type * from '~/src/common/sorting/types.js'\nexport type * from '~/src/components/types.js'\nexport type * from '~/src/conditions/types.js'\nexport type * from '~/src/form/form-definition/types.js'\nexport type * from '~/src/form/form-metadata/types.js'\nexport type * from '~/src/form/form-submission/types.js'\nexport type * from '~/src/form/form-editor/preview/types.js'\nexport type * from '~/src/form/form-editor/types.js'\nexport type * from '~/src/form/form-editor/macros/types.js'\nexport type * from '~/src/form/form-audit/types.js'\nexport type * from '~/src/manage/types.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ export let Roles = /*#__PURE__*/function (Roles) {
2
+ Roles["Admin"] = "admin";
3
+ Roles["FormCreator"] = "form-creator";
4
+ return Roles;
5
+ }({});
6
+ export let Scopes = /*#__PURE__*/function (Scopes) {
7
+ Scopes["FormDelete"] = "form-delete";
8
+ Scopes["FormEdit"] = "form-edit";
9
+ Scopes["FormRead"] = "form-read";
10
+ Scopes["FormPublish"] = "form-publish";
11
+ Scopes["UserCreate"] = "user-create";
12
+ Scopes["UserDelete"] = "user-delete";
13
+ Scopes["UserEdit"] = "user-edit";
14
+ return Scopes;
15
+ }({});
16
+ export const RoleScopes = {
17
+ [Roles.Admin]: Object.entries(Scopes).map(x => x[1]),
18
+ [Roles.FormCreator]: [Scopes.FormRead, Scopes.FormEdit]
19
+ };
20
+
21
+ /**
22
+ * Return a unique list of scopes based on the array of roles passed in
23
+ */
24
+ export function mapScopesToRoles(roles) {
25
+ const scopeSet = new Set();
26
+ roles.forEach(role => {
27
+ const scopes = RoleScopes[role];
28
+ scopes.forEach(scope => {
29
+ scopeSet.add(scope);
30
+ });
31
+ });
32
+ return Array.from(scopeSet);
33
+ }
34
+ //# sourceMappingURL=roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.js","names":["Roles","Scopes","RoleScopes","Admin","Object","entries","map","x","FormCreator","FormRead","FormEdit","mapScopesToRoles","roles","scopeSet","Set","forEach","role","scopes","scope","add","Array","from"],"sources":["../../../src/manage/roles.ts"],"sourcesContent":["export enum Roles {\n Admin = 'admin',\n FormCreator = 'form-creator'\n}\n\nexport enum Scopes {\n FormDelete = 'form-delete',\n FormEdit = 'form-edit',\n FormRead = 'form-read',\n FormPublish = 'form-publish',\n UserCreate = 'user-create',\n UserDelete = 'user-delete',\n UserEdit = 'user-edit'\n}\n\nexport const RoleScopes = {\n [Roles.Admin]: Object.entries(Scopes).map((x) => x[1]),\n [Roles.FormCreator]: [Scopes.FormRead, Scopes.FormEdit]\n}\n\n/**\n * Return a unique list of scopes based on the array of roles passed in\n */\nexport function mapScopesToRoles(roles: Roles[]) {\n const scopeSet = new Set<string>()\n roles.forEach((role) => {\n const scopes = RoleScopes[role]\n scopes.forEach((scope) => {\n scopeSet.add(scope)\n })\n })\n return Array.from(scopeSet)\n}\n"],"mappings":"AAAA,WAAYA,KAAK,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA;AAKjB,WAAYC,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAUlB,OAAO,MAAMC,UAAU,GAAG;EACxB,CAACF,KAAK,CAACG,KAAK,GAAGC,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,CAACK,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,CAACP,KAAK,CAACQ,WAAW,GAAG,CAACP,MAAM,CAACQ,QAAQ,EAAER,MAAM,CAACS,QAAQ;AACxD,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAACC,KAAc,EAAE;EAC/C,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAS,CAAC;EAClCF,KAAK,CAACG,OAAO,CAAEC,IAAI,IAAK;IACtB,MAAMC,MAAM,GAAGf,UAAU,CAACc,IAAI,CAAC;IAC/BC,MAAM,CAACF,OAAO,CAAEG,KAAK,IAAK;MACxBL,QAAQ,CAACM,GAAG,CAACD,KAAK,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAOE,KAAK,CAACC,IAAI,CAACR,QAAQ,CAAC;AAC7B","ignoreList":[]}
@@ -15,6 +15,7 @@ export * from './form/form-editor/index.js';
15
15
  export * from './form/form-editor/preview/index.js';
16
16
  export * from './form/form-manager/types.js';
17
17
  export * from './form/form-manager/errors.js';
18
+ export * from './manage/roles.js';
18
19
  export * from './manage/users.js';
19
20
  export * from './pages/index.js';
20
21
  export * from './utils/helpers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAE9C,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,+BAA+B,CAAA;AAClD,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,mCAAmC,CAAA;AACtD,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,yCAAyC,CAAA;AAC5D,mBAAmB,iCAAiC,CAAA;AACpD,mBAAmB,wCAAwC,CAAA;AAC3D,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAE9C,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,+BAA+B,CAAA;AAClD,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,mCAAmC,CAAA;AACtD,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,yCAAyC,CAAA;AAC5D,mBAAmB,iCAAiC,CAAA;AACpD,mBAAmB,wCAAwC,CAAA;AAC3D,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,uBAAuB,CAAA"}
@@ -0,0 +1,22 @@
1
+ export declare enum Roles {
2
+ Admin = "admin",
3
+ FormCreator = "form-creator"
4
+ }
5
+ export declare enum Scopes {
6
+ FormDelete = "form-delete",
7
+ FormEdit = "form-edit",
8
+ FormRead = "form-read",
9
+ FormPublish = "form-publish",
10
+ UserCreate = "user-create",
11
+ UserDelete = "user-delete",
12
+ UserEdit = "user-edit"
13
+ }
14
+ export declare const RoleScopes: {
15
+ admin: Scopes[];
16
+ "form-creator": Scopes[];
17
+ };
18
+ /**
19
+ * Return a unique list of scopes based on the array of roles passed in
20
+ */
21
+ export declare function mapScopesToRoles(roles: Roles[]): string[];
22
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../src/manage/roles.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,WAAW,iBAAiB;CAC7B;AAED,oBAAY,MAAM;IAChB,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;CACvB;AAED,eAAO,MAAM,UAAU;;;CAGtB,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,YAS9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.529",
3
+ "version": "3.0.530",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "types": "dist/types/index.d.ts",
package/src/index.ts CHANGED
@@ -15,6 +15,7 @@ export * from '~/src/form/form-editor/index.js'
15
15
  export * from '~/src/form/form-editor/preview/index.js'
16
16
  export * from '~/src/form/form-manager/types.js'
17
17
  export * from '~/src/form/form-manager/errors.js'
18
+ export * from '~/src/manage/roles.js'
18
19
  export * from '~/src/manage/users.js'
19
20
  export * from '~/src/pages/index.js'
20
21
  export * from '~/src/utils/helpers.js'
@@ -0,0 +1,33 @@
1
+ export enum Roles {
2
+ Admin = 'admin',
3
+ FormCreator = 'form-creator'
4
+ }
5
+
6
+ export enum Scopes {
7
+ FormDelete = 'form-delete',
8
+ FormEdit = 'form-edit',
9
+ FormRead = 'form-read',
10
+ FormPublish = 'form-publish',
11
+ UserCreate = 'user-create',
12
+ UserDelete = 'user-delete',
13
+ UserEdit = 'user-edit'
14
+ }
15
+
16
+ export const RoleScopes = {
17
+ [Roles.Admin]: Object.entries(Scopes).map((x) => x[1]),
18
+ [Roles.FormCreator]: [Scopes.FormRead, Scopes.FormEdit]
19
+ }
20
+
21
+ /**
22
+ * Return a unique list of scopes based on the array of roles passed in
23
+ */
24
+ export function mapScopesToRoles(roles: Roles[]) {
25
+ const scopeSet = new Set<string>()
26
+ roles.forEach((role) => {
27
+ const scopes = RoleScopes[role]
28
+ scopes.forEach((scope) => {
29
+ scopeSet.add(scope)
30
+ })
31
+ })
32
+ return Array.from(scopeSet)
33
+ }