@descope/angular-sdk 0.5.9 → 0.5.11

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 (150) hide show
  1. package/.eslintrc.json +41 -0
  2. package/.prettierrc +7 -0
  3. package/CHANGELOG.md +5 -0
  4. package/LICENSE +21 -0
  5. package/README.md +647 -11
  6. package/angular.json +154 -0
  7. package/{esm2022 → dist/esm2022}/environment.mjs +2 -2
  8. package/dist/esm2022/lib/components/access-key-management/access-key-management.component.mjs +61 -0
  9. package/dist/esm2022/lib/components/audit-management/audit-management.component.mjs +61 -0
  10. package/dist/esm2022/lib/components/descope/descope.component.mjs +156 -0
  11. package/dist/esm2022/lib/components/role-management/role-management.component.mjs +61 -0
  12. package/dist/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +44 -0
  13. package/dist/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +44 -0
  14. package/dist/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +44 -0
  15. package/dist/esm2022/lib/components/user-management/user-management.component.mjs +61 -0
  16. package/dist/esm2022/lib/components/user-profile/user-profile.component.mjs +66 -0
  17. package/{esm2022 → dist/esm2022}/lib/descope-auth.module.mjs +5 -5
  18. package/{esm2022 → dist/esm2022}/lib/services/descope-auth.guard.mjs +1 -1
  19. package/dist/esm2022/lib/services/descope-auth.service.mjs +154 -0
  20. package/dist/esm2022/lib/services/descope.interceptor.mjs +51 -0
  21. package/dist/esm2022/lib/types/types.mjs +6 -0
  22. package/{esm2022 → dist/esm2022}/lib/utils/constants.mjs +1 -1
  23. package/dist/esm2022/lib/utils/helpers.mjs +27 -0
  24. package/{fesm2022 → dist/fesm2022}/descope-angular-sdk.mjs +62 -38
  25. package/dist/fesm2022/descope-angular-sdk.mjs.map +1 -0
  26. package/{lib → dist/lib}/components/access-key-management/access-key-management.component.d.ts +1 -0
  27. package/{lib → dist/lib}/components/audit-management/audit-management.component.d.ts +1 -0
  28. package/{lib → dist/lib}/components/descope/descope.component.d.ts +1 -0
  29. package/{lib → dist/lib}/components/role-management/role-management.component.d.ts +1 -0
  30. package/{lib → dist/lib}/components/user-management/user-management.component.d.ts +1 -0
  31. package/{lib → dist/lib}/components/user-profile/user-profile.component.d.ts +1 -0
  32. package/{lib → dist/lib}/services/descope-auth.service.d.ts +3 -2
  33. package/{lib → dist/lib}/types/types.d.ts +1 -0
  34. package/jest.config.js +17 -0
  35. package/package.json +62 -19
  36. package/project.json +17 -0
  37. package/projects/angular-sdk/.eslintrc.json +32 -0
  38. package/projects/angular-sdk/ng-package.json +17 -0
  39. package/projects/angular-sdk/package.json +87 -0
  40. package/projects/angular-sdk/src/environment.ts +3 -0
  41. package/projects/angular-sdk/src/lib/components/access-key-management/access-key-management.component.spec.ts +84 -0
  42. package/projects/angular-sdk/src/lib/components/access-key-management/access-key-management.component.ts +63 -0
  43. package/projects/angular-sdk/src/lib/components/audit-management/audit-management.component.spec.ts +84 -0
  44. package/projects/angular-sdk/src/lib/components/audit-management/audit-management.component.ts +63 -0
  45. package/projects/angular-sdk/src/lib/components/descope/descope.component.spec.ts +142 -0
  46. package/projects/angular-sdk/src/lib/components/descope/descope.component.ts +171 -0
  47. package/projects/angular-sdk/src/lib/components/role-management/role-management.component.spec.ts +84 -0
  48. package/projects/angular-sdk/src/lib/components/role-management/role-management.component.ts +63 -0
  49. package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.html +17 -0
  50. package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.spec.ts +53 -0
  51. package/projects/angular-sdk/src/lib/components/sign-in-flow/sign-in-flow.component.ts +35 -0
  52. package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.html +17 -0
  53. package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.spec.ts +51 -0
  54. package/projects/angular-sdk/src/lib/components/sign-up-flow/sign-up-flow.component.ts +35 -0
  55. package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.html +17 -0
  56. package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.spec.ts +53 -0
  57. package/projects/angular-sdk/src/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.ts +35 -0
  58. package/projects/angular-sdk/src/lib/components/user-management/user-management.component.spec.ts +84 -0
  59. package/projects/angular-sdk/src/lib/components/user-management/user-management.component.ts +64 -0
  60. package/projects/angular-sdk/src/lib/components/user-profile/user-profile.component.spec.ts +93 -0
  61. package/projects/angular-sdk/src/lib/components/user-profile/user-profile.component.ts +77 -0
  62. package/projects/angular-sdk/src/lib/descope-auth.module.ts +61 -0
  63. package/projects/angular-sdk/src/lib/services/descope-auth.guard.spec.ts +76 -0
  64. package/projects/angular-sdk/src/lib/services/descope-auth.guard.ts +16 -0
  65. package/projects/angular-sdk/src/lib/services/descope-auth.service.spec.ts +309 -0
  66. package/projects/angular-sdk/src/lib/services/descope-auth.service.ts +200 -0
  67. package/projects/angular-sdk/src/lib/services/descope.interceptor.spec.ts +102 -0
  68. package/projects/angular-sdk/src/lib/services/descope.interceptor.ts +76 -0
  69. package/projects/angular-sdk/src/lib/types/types.ts +15 -0
  70. package/projects/angular-sdk/src/lib/utils/constants.ts +8 -0
  71. package/projects/angular-sdk/src/lib/utils/helpers.spec.ts +103 -0
  72. package/projects/angular-sdk/src/lib/utils/helpers.ts +36 -0
  73. package/projects/angular-sdk/src/public-api.ts +18 -0
  74. package/projects/angular-sdk/tsconfig.lib.json +12 -0
  75. package/projects/angular-sdk/tsconfig.lib.prod.json +10 -0
  76. package/projects/angular-sdk/tsconfig.spec.json +11 -0
  77. package/projects/demo-app/.eslintrc.json +31 -0
  78. package/projects/demo-app/src/app/app-routing.module.ts +33 -0
  79. package/projects/demo-app/src/app/app.component.html +3 -0
  80. package/projects/demo-app/src/app/app.component.scss +18 -0
  81. package/projects/demo-app/src/app/app.component.spec.ts +37 -0
  82. package/projects/demo-app/src/app/app.component.ts +8 -0
  83. package/projects/demo-app/src/app/app.module.ts +63 -0
  84. package/projects/demo-app/src/app/home/home.component.html +32 -0
  85. package/projects/demo-app/src/app/home/home.component.scss +15 -0
  86. package/projects/demo-app/src/app/home/home.component.spec.ts +44 -0
  87. package/projects/demo-app/src/app/home/home.component.ts +85 -0
  88. package/projects/demo-app/src/app/interceptor/auth.interceptor.ts +20 -0
  89. package/projects/demo-app/src/app/login/login.component.html +20 -0
  90. package/projects/demo-app/src/app/login/login.component.spec.ts +42 -0
  91. package/projects/demo-app/src/app/login/login.component.ts +41 -0
  92. package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.html +12 -0
  93. package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.spec.ts +36 -0
  94. package/projects/demo-app/src/app/manage-access-keys/manage-access-keys.component.ts +15 -0
  95. package/projects/demo-app/src/app/manage-audit/manage-audit.component.html +6 -0
  96. package/projects/demo-app/src/app/manage-audit/manage-audit.component.spec.ts +36 -0
  97. package/projects/demo-app/src/app/manage-audit/manage-audit.component.ts +15 -0
  98. package/projects/demo-app/src/app/manage-roles/manage-roles.component.html +6 -0
  99. package/projects/demo-app/src/app/manage-roles/manage-roles.component.spec.ts +36 -0
  100. package/projects/demo-app/src/app/manage-roles/manage-roles.component.ts +15 -0
  101. package/projects/demo-app/src/app/manage-users/manage-users.component.html +6 -0
  102. package/projects/demo-app/src/app/manage-users/manage-users.component.spec.ts +36 -0
  103. package/projects/demo-app/src/app/manage-users/manage-users.component.ts +15 -0
  104. package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.html +6 -0
  105. package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.spec.ts +36 -0
  106. package/projects/demo-app/src/app/my-user-profile/my-user-profile.component.ts +20 -0
  107. package/projects/demo-app/src/app/my-user-profile/my-user-profile.scss +18 -0
  108. package/projects/demo-app/src/app/protected/protected.component.html +18 -0
  109. package/projects/demo-app/src/app/protected/protected.component.scss +8 -0
  110. package/projects/demo-app/src/app/protected/protected.component.spec.ts +42 -0
  111. package/projects/demo-app/src/app/protected/protected.component.ts +41 -0
  112. package/projects/demo-app/src/assets/.gitkeep +0 -0
  113. package/projects/demo-app/src/environments/conifg.ts +14 -0
  114. package/projects/demo-app/src/environments/environment.ts +20 -0
  115. package/projects/demo-app/src/favicon.ico +0 -0
  116. package/projects/demo-app/src/index.html +17 -0
  117. package/projects/demo-app/src/main.ts +7 -0
  118. package/projects/demo-app/src/styles.scss +21 -0
  119. package/projects/demo-app/tsconfig.app.json +11 -0
  120. package/projects/demo-app/tsconfig.spec.json +10 -0
  121. package/scripts/setversion/setversion.js +20 -0
  122. package/setup-jest.ts +1 -0
  123. package/tsconfig.json +36 -0
  124. package/esm2022/lib/components/access-key-management/access-key-management.component.mjs +0 -57
  125. package/esm2022/lib/components/audit-management/audit-management.component.mjs +0 -57
  126. package/esm2022/lib/components/descope/descope.component.mjs +0 -152
  127. package/esm2022/lib/components/role-management/role-management.component.mjs +0 -57
  128. package/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +0 -44
  129. package/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +0 -44
  130. package/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +0 -44
  131. package/esm2022/lib/components/user-management/user-management.component.mjs +0 -57
  132. package/esm2022/lib/components/user-profile/user-profile.component.mjs +0 -62
  133. package/esm2022/lib/services/descope-auth.service.mjs +0 -154
  134. package/esm2022/lib/services/descope.interceptor.mjs +0 -51
  135. package/esm2022/lib/types/types.mjs +0 -6
  136. package/esm2022/lib/utils/helpers.mjs +0 -27
  137. package/fesm2022/descope-angular-sdk.mjs.map +0 -1
  138. /package/{environment.d.ts → dist/environment.d.ts} +0 -0
  139. /package/{esm2022 → dist/esm2022}/descope-angular-sdk.mjs +0 -0
  140. /package/{esm2022 → dist/esm2022}/public-api.mjs +0 -0
  141. /package/{index.d.ts → dist/index.d.ts} +0 -0
  142. /package/{lib → dist/lib}/components/sign-in-flow/sign-in-flow.component.d.ts +0 -0
  143. /package/{lib → dist/lib}/components/sign-up-flow/sign-up-flow.component.d.ts +0 -0
  144. /package/{lib → dist/lib}/components/sign-up-or-in-flow/sign-up-or-in-flow.component.d.ts +0 -0
  145. /package/{lib → dist/lib}/descope-auth.module.d.ts +0 -0
  146. /package/{lib → dist/lib}/services/descope-auth.guard.d.ts +0 -0
  147. /package/{lib → dist/lib}/services/descope.interceptor.d.ts +0 -0
  148. /package/{lib → dist/lib}/utils/constants.d.ts +0 -0
  149. /package/{lib → dist/lib}/utils/helpers.d.ts +0 -0
  150. /package/{public-api.d.ts → dist/public-api.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/angular-sdk",
3
- "version": "0.5.9",
3
+ "version": "0.5.11",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=16.0.0",
6
6
  "@angular/core": ">=16.0.0"
@@ -10,23 +10,6 @@
10
10
  "node": "^16.14.0 || >=18.10.0",
11
11
  "npm": ">= 8.1.0"
12
12
  },
13
- "lint-staged": {
14
- "+(src|test|examples)/**/*.{js,ts,html}": [
15
- "npm run lint"
16
- ]
17
- },
18
- "dependencies": {
19
- "@descope/access-key-management-widget": "0.1.68",
20
- "@descope/audit-management-widget": "0.1.31",
21
- "@descope/role-management-widget": "0.1.66",
22
- "@descope/user-management-widget": "0.4.68",
23
- "@descope/user-profile-widget": "0.0.34",
24
- "@descope/web-component": "3.12.0",
25
- "tslib": "^2.3.0"
26
- },
27
- "optionalDependencies": {
28
- "@descope/web-js-sdk": ">=1"
29
- },
30
13
  "module": "fesm2022/descope-angular-sdk.mjs",
31
14
  "typings": "index.d.ts",
32
15
  "exports": {
@@ -40,5 +23,65 @@
40
23
  "default": "./fesm2022/descope-angular-sdk.mjs"
41
24
  }
42
25
  },
43
- "sideEffects": false
26
+ "sideEffects": false,
27
+ "dependencies": {
28
+ "tslib": "^2.3.0",
29
+ "@descope/access-key-management-widget": "0.1.115",
30
+ "@descope/audit-management-widget": "0.1.78",
31
+ "@descope/user-management-widget": "0.4.116",
32
+ "@descope/user-profile-widget": "0.0.94",
33
+ "@descope/role-management-widget": "0.1.113",
34
+ "@descope/web-js-sdk": "1.16.0",
35
+ "@descope/web-component": "3.21.1",
36
+ "@descope/core-js-sdk": "2.24.0"
37
+ },
38
+ "devDependencies": {
39
+ "@angular-devkit/build-angular": "^16.2.6",
40
+ "@angular-eslint/builder": "16.3.1",
41
+ "@angular-eslint/eslint-plugin": "16.3.1",
42
+ "@angular-eslint/eslint-plugin-template": "16.3.1",
43
+ "@angular-eslint/schematics": "16.3.1",
44
+ "@angular-eslint/template-parser": "16.3.1",
45
+ "@angular/animations": "^16.2.9",
46
+ "@angular/cli": "^16.2.6",
47
+ "@angular/common": "^16.2.9",
48
+ "@angular/compiler": "^16.2.9",
49
+ "@angular/compiler-cli": "^16.2.9",
50
+ "@angular/core": "^16.2.9",
51
+ "@angular/forms": "^16.2.9",
52
+ "@angular/platform-browser": "^16.2.9",
53
+ "@angular/platform-browser-dynamic": "^16.2.9",
54
+ "@angular/router": "^16.2.9",
55
+ "@types/jest": "^29.5.5",
56
+ "@typescript-eslint/eslint-plugin": "6.12.0",
57
+ "@typescript-eslint/parser": "6.12.0",
58
+ "eslint": "^8.51.0",
59
+ "eslint-plugin-prettier": "^4.2.1",
60
+ "jest": "^29.7.0",
61
+ "jest-preset-angular": "^13.1.2",
62
+ "lint-staged": "^15.2.0",
63
+ "ng-mocks": "^14.11.0",
64
+ "ng-packagr": "^16.2.3",
65
+ "prettier": "2.8.8",
66
+ "pretty-quick": "^3.1.3",
67
+ "rxjs": "~7.8.1",
68
+ "tslib": "^2.6.2",
69
+ "typescript": "4.9.3",
70
+ "zone.js": "~0.13.0"
71
+ },
72
+ "scripts": {
73
+ "ng": "ng",
74
+ "start": "ng serve",
75
+ "format-lint": "pretty-quick --staged --ignore-path .gitignore && lint-staged",
76
+ "prebuild": "node scripts/setversion/setversion.js",
77
+ "build": "npm run build:lib && rm -rf ./dist/package.json",
78
+ "build:lib": "cp package.json ./projects/angular-sdk && ng build angular-sdk",
79
+ "build:app": "ng build demo-app",
80
+ "pretest": "cp package.json ./projects/angular-sdk",
81
+ "watch": "ng build --watch --configuration development",
82
+ "test": "jest --config jest.config.js",
83
+ "lint": "ng lint",
84
+ "format": "prettier . -w --ignore-path .gitignore",
85
+ "format-check": "prettier . --check --ignore-path .gitignore"
86
+ }
44
87
  }
package/project.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "angular-sdk",
3
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
+ "sourceRoot": "packages/sdks/angular-sdk/projects",
5
+ "projectType": "library",
6
+ "targets": {
7
+ "version": {
8
+ "executor": "@jscutlery/semver:version",
9
+ "options": {
10
+ "trackDeps": true,
11
+ "push": false,
12
+ "preset": "conventional"
13
+ }
14
+ }
15
+ },
16
+ "tags": []
17
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "extends": "../../.eslintrc.json",
3
+ "ignorePatterns": ["node_modules", "dist"],
4
+ "overrides": [
5
+ {
6
+ "files": ["*.ts"],
7
+ "rules": {
8
+ "@angular-eslint/directive-selector": [
9
+ "error",
10
+ {
11
+ "type": "attribute",
12
+ "prefix": "lib",
13
+ "style": "camelCase"
14
+ }
15
+ ],
16
+ "@angular-eslint/component-selector": [
17
+ "error",
18
+ {
19
+ "type": "element",
20
+ "prefix": "",
21
+ "style": "kebab-case"
22
+ }
23
+ ],
24
+ "@angular-eslint/no-output-native": "off"
25
+ }
26
+ },
27
+ {
28
+ "files": ["*.html"],
29
+ "rules": {}
30
+ }
31
+ ]
32
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts"
6
+ },
7
+ "allowedNonPeerDependencies": [
8
+ "@descope/core-js-sdk",
9
+ "@descope/web-js-sdk",
10
+ "@descope/web-component",
11
+ "@descope/user-management-widget",
12
+ "@descope/role-management-widget",
13
+ "@descope/access-key-management-widget",
14
+ "@descope/audit-management-widget",
15
+ "@descope/user-profile-widget"
16
+ ]
17
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@descope/angular-sdk",
3
+ "version": "0.5.11",
4
+ "peerDependencies": {
5
+ "@angular/common": ">=16.0.0",
6
+ "@angular/core": ">=16.0.0"
7
+ },
8
+ "license": "MIT",
9
+ "engines": {
10
+ "node": "^16.14.0 || >=18.10.0",
11
+ "npm": ">= 8.1.0"
12
+ },
13
+ "module": "fesm2022/descope-angular-sdk.mjs",
14
+ "typings": "index.d.ts",
15
+ "exports": {
16
+ "./package.json": {
17
+ "default": "./package.json"
18
+ },
19
+ ".": {
20
+ "types": "./index.d.ts",
21
+ "esm2022": "./esm2022/descope-angular-sdk.mjs",
22
+ "esm": "./esm2022/descope-angular-sdk.mjs",
23
+ "default": "./fesm2022/descope-angular-sdk.mjs"
24
+ }
25
+ },
26
+ "sideEffects": false,
27
+ "scripts": {
28
+ "ng": "ng",
29
+ "start": "ng serve",
30
+ "format-lint": "pretty-quick --staged --ignore-path .gitignore && lint-staged",
31
+ "prebuild": "node scripts/setversion/setversion.js",
32
+ "build": "npm run build:lib && rm -rf ./dist/package.json",
33
+ "build:lib": "cp package.json ./projects/angular-sdk && ng build angular-sdk",
34
+ "build:app": "ng build demo-app",
35
+ "pretest": "cp package.json ./projects/angular-sdk",
36
+ "watch": "ng build --watch --configuration development",
37
+ "test": "jest --config jest.config.js",
38
+ "lint": "ng lint",
39
+ "format": "prettier . -w --ignore-path .gitignore",
40
+ "format-check": "prettier . --check --ignore-path .gitignore"
41
+ },
42
+ "dependencies": {
43
+ "@descope/access-key-management-widget": "workspace:*",
44
+ "@descope/audit-management-widget": "workspace:*",
45
+ "@descope/role-management-widget": "workspace:*",
46
+ "@descope/user-management-widget": "workspace:*",
47
+ "@descope/user-profile-widget": "workspace:*",
48
+ "@descope/web-component": "workspace:*",
49
+ "@descope/web-js-sdk": "workspace:*",
50
+ "@descope/core-js-sdk": "workspace:*",
51
+ "tslib": "^2.3.0"
52
+ },
53
+ "devDependencies": {
54
+ "@angular-devkit/build-angular": "^16.2.6",
55
+ "@angular-eslint/builder": "16.3.1",
56
+ "@angular-eslint/eslint-plugin": "16.3.1",
57
+ "@angular-eslint/eslint-plugin-template": "16.3.1",
58
+ "@angular-eslint/schematics": "16.3.1",
59
+ "@angular-eslint/template-parser": "16.3.1",
60
+ "@angular/animations": "^16.2.9",
61
+ "@angular/cli": "^16.2.6",
62
+ "@angular/common": "^16.2.9",
63
+ "@angular/compiler": "^16.2.9",
64
+ "@angular/compiler-cli": "^16.2.9",
65
+ "@angular/core": "^16.2.9",
66
+ "@angular/forms": "^16.2.9",
67
+ "@angular/platform-browser": "^16.2.9",
68
+ "@angular/platform-browser-dynamic": "^16.2.9",
69
+ "@angular/router": "^16.2.9",
70
+ "@types/jest": "^29.5.5",
71
+ "@typescript-eslint/eslint-plugin": "6.12.0",
72
+ "@typescript-eslint/parser": "6.12.0",
73
+ "eslint": "^8.51.0",
74
+ "eslint-plugin-prettier": "^4.2.1",
75
+ "jest": "^29.7.0",
76
+ "jest-preset-angular": "^13.1.2",
77
+ "lint-staged": "^15.2.0",
78
+ "ng-mocks": "^14.11.0",
79
+ "ng-packagr": "^16.2.3",
80
+ "prettier": "2.8.8",
81
+ "pretty-quick": "^3.1.3",
82
+ "rxjs": "~7.8.1",
83
+ "tslib": "^2.6.2",
84
+ "typescript": "4.9.3",
85
+ "zone.js": "~0.13.0"
86
+ }
87
+ }
@@ -0,0 +1,3 @@
1
+ export const environment = {
2
+ buildVersion: '0.5.10'
3
+ };
@@ -0,0 +1,84 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { AccessKeyManagementComponent } from './access-key-management.component';
3
+ import createSdk from '@descope/web-js-sdk';
4
+ import { DescopeAuthConfig } from '../../types/types';
5
+ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
6
+ import mocked = jest.mocked;
7
+
8
+ jest.mock('@descope/web-js-sdk');
9
+ //Mock DescopeAccessKeyManagementWidget
10
+ jest.mock('@descope/access-key-management-widget', () => {
11
+ return jest.fn(() => {
12
+ // Create a mock DOM element
13
+ return document.createElement('descope-access-key-management-widget');
14
+ });
15
+ });
16
+
17
+ describe('DescopeAccessKeyManagementComponent', () => {
18
+ let component: AccessKeyManagementComponent;
19
+ let fixture: ComponentFixture<AccessKeyManagementComponent>;
20
+ let mockedCreateSdk: jest.Mock;
21
+ const onSessionTokenChangeSpy = jest.fn();
22
+ const onAccessKeyChangeSpy = jest.fn();
23
+ const afterRequestHooksSpy = jest.fn();
24
+ const mockConfig: DescopeAuthConfig = {
25
+ projectId: 'someProject'
26
+ };
27
+
28
+ beforeEach(() => {
29
+ mockedCreateSdk = mocked(createSdk);
30
+
31
+ mockedCreateSdk.mockReturnValue({
32
+ onSessionTokenChange: onSessionTokenChangeSpy,
33
+ onAccessKeyChange: onAccessKeyChangeSpy,
34
+ httpClient: {
35
+ hooks: {
36
+ afterRequest: afterRequestHooksSpy
37
+ }
38
+ }
39
+ });
40
+
41
+ TestBed.configureTestingModule({
42
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
43
+ providers: [
44
+ DescopeAuthConfig,
45
+ { provide: DescopeAuthConfig, useValue: mockConfig }
46
+ ]
47
+ });
48
+
49
+ fixture = TestBed.createComponent(AccessKeyManagementComponent);
50
+ component = fixture.componentInstance;
51
+ component.projectId = '123';
52
+ component.tenant = 'tenant-1';
53
+ component.widgetId = 'widget-1';
54
+ component.logger = {
55
+ info: jest.fn(),
56
+ error: jest.fn(),
57
+ warn: jest.fn(),
58
+ debug: jest.fn()
59
+ };
60
+ fixture.detectChanges();
61
+ });
62
+
63
+ it('should create', () => {
64
+ expect(component).toBeTruthy();
65
+ const html: HTMLElement = fixture.nativeElement;
66
+ const webComponentHtml = html.querySelector(
67
+ 'descope-access-key-management-widget'
68
+ );
69
+ expect(webComponentHtml).toBeDefined();
70
+ });
71
+
72
+ it('should correctly setup attributes based on inputs', () => {
73
+ const html: HTMLElement = fixture.nativeElement;
74
+ const webComponentHtml = html.querySelector(
75
+ 'descope-access-key-management-widget'
76
+ )!;
77
+ expect(webComponentHtml.getAttribute('project-id')).toStrictEqual('123');
78
+ expect(webComponentHtml.getAttribute('tenant')).toStrictEqual('tenant-1');
79
+ expect(webComponentHtml.getAttribute('widget-id')).toStrictEqual(
80
+ 'widget-1'
81
+ );
82
+ expect(webComponentHtml.getAttribute('logger')).toBeDefined();
83
+ });
84
+ });
@@ -0,0 +1,63 @@
1
+ import { Component, ElementRef, Input, OnChanges, OnInit } from '@angular/core';
2
+ import DescopeAccessKeyManagementWidget from '@descope/access-key-management-widget';
3
+ import { ILogger } from '@descope/web-component';
4
+ import { DescopeAuthConfig } from '../../types/types';
5
+
6
+ @Component({
7
+ selector: 'access-key-management[tenant]',
8
+ standalone: true,
9
+ template: ''
10
+ })
11
+ export class AccessKeyManagementComponent implements OnInit, OnChanges {
12
+ projectId: string;
13
+ baseUrl?: string;
14
+ baseStaticUrl?: string;
15
+ @Input() tenant: string;
16
+ @Input() widgetId: string;
17
+
18
+ @Input() theme: 'light' | 'dark' | 'os';
19
+ @Input() debug: boolean;
20
+ @Input() logger: ILogger;
21
+
22
+ private readonly webComponent = new DescopeAccessKeyManagementWidget();
23
+
24
+ constructor(
25
+ private elementRef: ElementRef,
26
+ descopeConfig: DescopeAuthConfig
27
+ ) {
28
+ this.projectId = descopeConfig.projectId;
29
+ this.baseUrl = descopeConfig.baseUrl;
30
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
31
+ }
32
+
33
+ ngOnInit() {
34
+ this.setupWebComponent();
35
+ this.elementRef.nativeElement.appendChild(this.webComponent);
36
+ }
37
+
38
+ ngOnChanges(): void {
39
+ this.setupWebComponent();
40
+ }
41
+
42
+ private setupWebComponent() {
43
+ this.webComponent.setAttribute('project-id', this.projectId);
44
+ this.webComponent.setAttribute('tenant', this.tenant);
45
+ this.webComponent.setAttribute('widget-id', this.widgetId);
46
+ if (this.baseUrl) {
47
+ this.webComponent.setAttribute('base-url', this.baseUrl);
48
+ }
49
+ if (this.baseStaticUrl) {
50
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
51
+ }
52
+ if (this.theme) {
53
+ this.webComponent.setAttribute('theme', this.theme);
54
+ }
55
+ if (this.debug) {
56
+ this.webComponent.setAttribute('debug', this.debug.toString());
57
+ }
58
+
59
+ if (this.logger) {
60
+ (this.webComponent as any).logger = this.logger;
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,84 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { AuditManagementComponent } from './audit-management.component';
3
+ import createSdk from '@descope/web-js-sdk';
4
+ import { DescopeAuthConfig } from '../../types/types';
5
+ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
6
+ import mocked = jest.mocked;
7
+
8
+ jest.mock('@descope/web-js-sdk');
9
+ //Mock DescopeAuditManagementWidget
10
+ jest.mock('@descope/audit-management-widget', () => {
11
+ return jest.fn(() => {
12
+ // Create a mock DOM element
13
+ return document.createElement('descope-audit-management-widget');
14
+ });
15
+ });
16
+
17
+ describe('DescopeAuditManagementComponent', () => {
18
+ let component: AuditManagementComponent;
19
+ let fixture: ComponentFixture<AuditManagementComponent>;
20
+ let mockedCreateSdk: jest.Mock;
21
+ const onSessionTokenChangeSpy = jest.fn();
22
+ const onAuditChangeSpy = jest.fn();
23
+ const afterRequestHooksSpy = jest.fn();
24
+ const mockConfig: DescopeAuthConfig = {
25
+ projectId: 'someProject'
26
+ };
27
+
28
+ beforeEach(() => {
29
+ mockedCreateSdk = mocked(createSdk);
30
+
31
+ mockedCreateSdk.mockReturnValue({
32
+ onSessionTokenChange: onSessionTokenChangeSpy,
33
+ onAuditChange: onAuditChangeSpy,
34
+ httpClient: {
35
+ hooks: {
36
+ afterRequest: afterRequestHooksSpy
37
+ }
38
+ }
39
+ });
40
+
41
+ TestBed.configureTestingModule({
42
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
43
+ providers: [
44
+ DescopeAuthConfig,
45
+ { provide: DescopeAuthConfig, useValue: mockConfig }
46
+ ]
47
+ });
48
+
49
+ fixture = TestBed.createComponent(AuditManagementComponent);
50
+ component = fixture.componentInstance;
51
+ component.projectId = '123';
52
+ component.tenant = 'tenant-1';
53
+ component.widgetId = 'widget-1';
54
+ component.logger = {
55
+ info: jest.fn(),
56
+ error: jest.fn(),
57
+ warn: jest.fn(),
58
+ debug: jest.fn()
59
+ };
60
+ fixture.detectChanges();
61
+ });
62
+
63
+ it('should create', () => {
64
+ expect(component).toBeTruthy();
65
+ const html: HTMLElement = fixture.nativeElement;
66
+ const webComponentHtml = html.querySelector(
67
+ 'descope-audit-management-widget'
68
+ );
69
+ expect(webComponentHtml).toBeDefined();
70
+ });
71
+
72
+ it('should correctly setup attributes based on inputs', () => {
73
+ const html: HTMLElement = fixture.nativeElement;
74
+ const webComponentHtml = html.querySelector(
75
+ 'descope-audit-management-widget'
76
+ )!;
77
+ expect(webComponentHtml.getAttribute('project-id')).toStrictEqual('123');
78
+ expect(webComponentHtml.getAttribute('tenant')).toStrictEqual('tenant-1');
79
+ expect(webComponentHtml.getAttribute('widget-id')).toStrictEqual(
80
+ 'widget-1'
81
+ );
82
+ expect(webComponentHtml.getAttribute('logger')).toBeDefined();
83
+ });
84
+ });
@@ -0,0 +1,63 @@
1
+ import { Component, ElementRef, Input, OnChanges, OnInit } from '@angular/core';
2
+ import DescopeAuditManagementWidget from '@descope/audit-management-widget';
3
+ import { ILogger } from '@descope/web-component';
4
+ import { DescopeAuthConfig } from '../../types/types';
5
+
6
+ @Component({
7
+ selector: 'audit-management[tenant]',
8
+ standalone: true,
9
+ template: ''
10
+ })
11
+ export class AuditManagementComponent implements OnInit, OnChanges {
12
+ projectId: string;
13
+ baseUrl?: string;
14
+ baseStaticUrl?: string;
15
+ @Input() tenant: string;
16
+ @Input() widgetId: string;
17
+
18
+ @Input() theme: 'light' | 'dark' | 'os';
19
+ @Input() debug: boolean;
20
+ @Input() logger: ILogger;
21
+
22
+ private readonly webComponent = new DescopeAuditManagementWidget();
23
+
24
+ constructor(
25
+ private elementRef: ElementRef,
26
+ descopeConfig: DescopeAuthConfig
27
+ ) {
28
+ this.projectId = descopeConfig.projectId;
29
+ this.baseUrl = descopeConfig.baseUrl;
30
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
31
+ }
32
+
33
+ ngOnInit() {
34
+ this.setupWebComponent();
35
+ this.elementRef.nativeElement.appendChild(this.webComponent);
36
+ }
37
+
38
+ ngOnChanges(): void {
39
+ this.setupWebComponent();
40
+ }
41
+
42
+ private setupWebComponent() {
43
+ this.webComponent.setAttribute('project-id', this.projectId);
44
+ this.webComponent.setAttribute('tenant', this.tenant);
45
+ this.webComponent.setAttribute('widget-id', this.widgetId);
46
+ if (this.baseUrl) {
47
+ this.webComponent.setAttribute('base-url', this.baseUrl);
48
+ }
49
+ if (this.baseStaticUrl) {
50
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
51
+ }
52
+ if (this.theme) {
53
+ this.webComponent.setAttribute('theme', this.theme);
54
+ }
55
+ if (this.debug) {
56
+ this.webComponent.setAttribute('debug', this.debug.toString());
57
+ }
58
+
59
+ if (this.logger) {
60
+ (this.webComponent as any).logger = this.logger;
61
+ }
62
+ }
63
+ }