@webiny/app-security 5.39.0-beta.0 → 5.39.0-beta.2

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/README.md CHANGED
@@ -67,8 +67,11 @@ Auth.configure({
67
67
  }
68
68
  });
69
69
 
70
+ interface AuthenticatorProps {
71
+ children: React.ReactNode;
72
+ }
70
73
  // The `Authenticator` component.
71
- const Authenticator: React.FC = props => {
74
+ const Authenticator = (props: AuthenticatorProps) => {
72
75
  const { setIdentity } = useSecurity();
73
76
 
74
77
  useEffect(() => {
@@ -101,7 +104,7 @@ Finally, use the `useSecurity` React hook in any of your components:
101
104
  import React from "react";
102
105
  import { useSecurity } from "@webiny/app-security";
103
106
 
104
- const MyComponent: React.FC = () => {
107
+ const MyComponent = () => {
105
108
  const { identity } = useSecurity();
106
109
 
107
110
  if (identity) {
package/Security.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import React from "react";
2
- export declare const Security: React.FC;
1
+ /// <reference types="react" />
2
+ export declare const Security: () => JSX.Element;
package/Security.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_app","_Security","SecurityProviderHOC","Component","SecurityProvider","_ref","children","default","createElement","Security","Provider","hoc","exports"],"sources":["Security.tsx"],"sourcesContent":["// Importing from `app-core` and NOT from `app-admin`, to avoid circular dependency.\n// This can be resolved in a different way, by changing the location of `AppInstaller` component (currently in `app-admin`).\n// But this is a faster solution, as I'm really short on time :)\nimport React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { SecurityProvider as ContextProvider } from \"./contexts/Security\";\n\nconst SecurityProviderHOC = (Component: React.FC<any>): React.FC<any> => {\n return function SecurityProvider({ children }) {\n return (\n <ContextProvider>\n <Component>{children}</Component>\n </ContextProvider>\n );\n };\n};\n\nexport const Security: React.FC = () => {\n return <Provider hoc={SecurityProviderHOC} />;\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,SAAwB,EAAoB;EACrE,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAAe;IAAA,IAAZC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACvC,oBACIT,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACP,SAAA,CAAAG,gBAAe,qBACZP,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACnB,CAAC;EAE1B,CAAC;AACL,CAAC;AAEM,IAAMG,QAAkB,GAAG,SAArBA,QAAkBA,CAAA,EAAS;EACpC,oBAAOZ,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,IAAA,CAAAU,QAAQ;IAACC,GAAG,EAAET;EAAoB,CAAE,CAAC;AACjD,CAAC;AAACU,OAAA,CAAAH,QAAA,GAAAA,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_app","_Security","SecurityProviderHOC","Component","SecurityProvider","_ref","children","default","createElement","Security","Provider","hoc","exports"],"sources":["Security.tsx"],"sourcesContent":["// Importing from `app-core` and NOT from `app-admin`, to avoid circular dependency.\n// This can be resolved in a different way, by changing the location of `AppInstaller` component (currently in `app-admin`).\n// But this is a faster solution, as I'm really short on time :)\nimport React from \"react\";\nimport { Provider } from \"@webiny/app\";\nimport { SecurityProvider as ContextProvider } from \"./contexts/Security\";\n\ninterface SecurityProviderProps {\n children: React.ReactNode;\n}\n\nconst SecurityProviderHOC = (Component: React.ComponentType) => {\n return function SecurityProvider({ children }: SecurityProviderProps) {\n return (\n <ContextProvider>\n <Component>{children}</Component>\n </ContextProvider>\n );\n };\n};\n\nexport const Security = () => {\n return <Provider hoc={SecurityProviderHOC} />;\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AALA;AACA;AACA;;AASA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,SAA8B,EAAK;EAC5D,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAAsC;IAAA,IAAnCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACvC,oBACIT,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACP,SAAA,CAAAG,gBAAe,qBACZP,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACnB,CAAC;EAE1B,CAAC;AACL,CAAC;AAEM,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAS;EAC1B,oBAAOZ,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,IAAA,CAAAU,QAAQ;IAACC,GAAG,EAAET;EAAoB,CAAE,CAAC;AACjD,CAAC;AAACU,OAAA,CAAAH,QAAA,GAAAA,QAAA"}
@@ -7,5 +7,9 @@ export interface SecurityContext {
7
7
  getPermission<T extends SecurityPermission = SecurityPermission>(name: string, exact?: boolean): T | null;
8
8
  getPermissions<T extends SecurityPermission = SecurityPermission>(name: string): T[];
9
9
  }
10
+ interface SecurityProviderProps {
11
+ children: React.ReactNode;
12
+ }
10
13
  export declare const SecurityContext: React.Context<SecurityContext>;
11
- export declare const SecurityProvider: React.FC;
14
+ export declare const SecurityProvider: (props: SecurityProviderProps) => JSX.Element;
15
+ export {};
@@ -48,7 +48,7 @@ var SecurityProvider = function SecurityProvider(props) {
48
48
  // Try matching using patterns
49
49
  return perms.find(function (p) {
50
50
  return (0, _minimatch.default)(name, p.name);
51
- });
51
+ }) || null;
52
52
  }, [identity]);
53
53
  var getPermissions = (0, _react.useCallback)(function (name) {
54
54
  if (!identity) {
@@ -1 +1 @@
1
- {"version":3,"names":["_minimatch","_interopRequireDefault","require","_react","_interopRequireWildcard","SecurityContext","React","createContext","identity","getIdentityId","setIdentity","getPermission","getPermissions","exports","SecurityProvider","props","_useState","useState","_useState2","_slicedToArray2","default","useCallback","name","exact","perms","permissions","exactMatch","find","p","minimatch","filter","current","id","login","value","useMemo","_objectSpread2","createElement","Provider","children"],"sources":["Security.tsx"],"sourcesContent":["import minimatch from \"minimatch\";\nimport React, { useState, useMemo, Dispatch, SetStateAction, useCallback } from \"react\";\nimport { SecurityIdentity, SecurityPermission } from \"~/types\";\n\nexport interface SecurityContext {\n identity: SecurityIdentity | null;\n getIdentityId: () => string | null;\n\n setIdentity: Dispatch<SetStateAction<SecurityIdentity | null>>;\n\n getPermission<T extends SecurityPermission = SecurityPermission>(\n name: string,\n exact?: boolean\n ): T | null;\n\n getPermissions<T extends SecurityPermission = SecurityPermission>(name: string): T[];\n}\n\nexport const SecurityContext = React.createContext<SecurityContext>({\n identity: null,\n getIdentityId: () => null,\n setIdentity: () => {\n return void 0;\n },\n getPermission: () => {\n return null;\n },\n getPermissions: () => {\n return [];\n }\n});\n\nexport const SecurityProvider: React.FC = props => {\n const [identity, setIdentity] = useState<SecurityIdentity | null>(null);\n\n const getPermission = useCallback(\n <T extends SecurityPermission = SecurityPermission>(\n name: string,\n exact?: boolean\n ): T | null => {\n if (!identity) {\n return null;\n }\n\n const perms = identity.permissions || [];\n const exactMatch = perms.find(p => p.name === name);\n if (exactMatch) {\n return exactMatch as T;\n } else if (exact) {\n return null;\n }\n\n // Try matching using patterns\n return perms.find(p => minimatch(name, p.name)) as any;\n },\n [identity]\n );\n\n const getPermissions = useCallback(\n <T extends SecurityPermission = SecurityPermission>(name: string): Array<T> => {\n if (!identity) {\n return [];\n }\n\n const permissions = identity.permissions || [];\n\n return permissions.filter(current => {\n const exactMatch = current.name === name;\n if (exactMatch) {\n return true;\n }\n\n // Try matching using patterns.\n return minimatch(name, current.name);\n }) as T[];\n },\n [identity]\n );\n\n const getIdentityId = useCallback(() => {\n if (!identity) {\n return null;\n }\n return identity.id || identity.login || null;\n }, [identity]);\n\n const value = useMemo(() => {\n return {\n identity: identity\n ? {\n ...identity,\n // For backwards compatibility, expose the `getPermission` method on the `identity` object.\n getPermission\n }\n : null,\n getIdentityId,\n setIdentity,\n getPermission,\n getPermissions\n };\n }, [identity]);\n\n return <SecurityContext.Provider value={value}>{props.children}</SecurityContext.Provider>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_minimatch","_interopRequireDefault","require","_react","_interopRequireWildcard","SecurityContext","React","createContext","identity","getIdentityId","setIdentity","getPermission","getPermissions","exports","SecurityProvider","props","_useState","useState","_useState2","_slicedToArray2","default","useCallback","name","exact","perms","permissions","exactMatch","find","p","minimatch","filter","current","id","login","value","useMemo","_objectSpread2","createElement","Provider","children"],"sources":["Security.tsx"],"sourcesContent":["import minimatch from \"minimatch\";\nimport React, { Dispatch, SetStateAction, useCallback, useMemo, useState } from \"react\";\nimport { SecurityIdentity, SecurityPermission } from \"~/types\";\n\nexport interface SecurityContext {\n identity: SecurityIdentity | null;\n getIdentityId: () => string | null;\n\n setIdentity: Dispatch<SetStateAction<SecurityIdentity | null>>;\n\n getPermission<T extends SecurityPermission = SecurityPermission>(\n name: string,\n exact?: boolean\n ): T | null;\n\n getPermissions<T extends SecurityPermission = SecurityPermission>(name: string): T[];\n}\n\ninterface SecurityProviderProps {\n children: React.ReactNode;\n}\n\nexport const SecurityContext = React.createContext<SecurityContext>({\n identity: null,\n getIdentityId: () => null,\n setIdentity: () => {\n return void 0;\n },\n getPermission: () => {\n return null;\n },\n getPermissions: () => {\n return [];\n }\n});\n\nexport const SecurityProvider = (props: SecurityProviderProps) => {\n const [identity, setIdentity] = useState<SecurityIdentity | null>(null);\n\n const getPermission = useCallback(\n <T extends SecurityPermission = SecurityPermission>(\n name: string,\n exact?: boolean\n ): T | null => {\n if (!identity) {\n return null;\n }\n\n const perms = (identity.permissions || []) as T[];\n const exactMatch = perms.find(p => p.name === name);\n if (exactMatch) {\n return exactMatch as T;\n } else if (exact) {\n return null;\n }\n\n // Try matching using patterns\n return perms.find(p => minimatch(name, p.name)) || null;\n },\n [identity]\n );\n\n const getPermissions = useCallback(\n <T extends SecurityPermission = SecurityPermission>(name: string): Array<T> => {\n if (!identity) {\n return [];\n }\n\n const permissions = identity.permissions || [];\n\n return permissions.filter(current => {\n const exactMatch = current.name === name;\n if (exactMatch) {\n return true;\n }\n\n // Try matching using patterns.\n return minimatch(name, current.name);\n }) as T[];\n },\n [identity]\n );\n\n const getIdentityId = useCallback(() => {\n if (!identity) {\n return null;\n }\n return identity.id || identity.login || null;\n }, [identity]);\n\n const value = useMemo(() => {\n return {\n identity: identity\n ? {\n ...identity,\n // For backwards compatibility, expose the `getPermission` method on the `identity` object.\n getPermission\n }\n : null,\n getIdentityId,\n setIdentity,\n getPermission,\n getPermissions\n };\n }, [identity]);\n\n return <SecurityContext.Provider value={value}>{props.children}</SecurityContext.Provider>;\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-security",
3
- "version": "5.39.0-beta.0",
3
+ "version": "5.39.0-beta.2",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,8 +13,8 @@
13
13
  ],
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@webiny/app": "5.39.0-beta.0",
17
- "@webiny/plugins": "5.39.0-beta.0",
16
+ "@webiny/app": "5.39.0-beta.2",
17
+ "@webiny/plugins": "5.39.0-beta.2",
18
18
  "minimatch": "5.1.6",
19
19
  "react": "17.0.2",
20
20
  "react-dom": "17.0.2"
@@ -26,8 +26,8 @@
26
26
  "@babel/preset-env": "7.22.7",
27
27
  "@babel/preset-react": "7.22.5",
28
28
  "@babel/preset-typescript": "7.22.5",
29
- "@webiny/cli": "5.39.0-beta.0",
30
- "@webiny/project-utils": "5.39.0-beta.0",
29
+ "@webiny/cli": "5.39.0-beta.2",
30
+ "@webiny/project-utils": "5.39.0-beta.2",
31
31
  "babel-plugin-emotion": "9.2.11",
32
32
  "rimraf": "3.0.2",
33
33
  "ttypescript": "1.5.15",
@@ -48,5 +48,5 @@
48
48
  ]
49
49
  }
50
50
  },
51
- "gitHead": "df94742fba6658ed3507e1e17ab53dc77bb66330"
51
+ "gitHead": "193039382160557448f23f43685f29136f58f87a"
52
52
  }