@edumalin/identity 3.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/LICENSE +7 -0
- package/README.md +3 -0
- package/dist/cjs/client/index.d.ts +1 -0
- package/dist/cjs/client/index.js +2 -0
- package/dist/cjs/error/invalid-identity-external-id-error-properties.d.ts +3 -0
- package/dist/cjs/error/invalid-identity-external-id-error-properties.js +2 -0
- package/dist/cjs/error/invalid-identity-id-error-properties.d.ts +3 -0
- package/dist/cjs/error/invalid-identity-id-error-properties.js +2 -0
- package/dist/cjs/error/invalid-identity-provider-id-error-properties.d.ts +3 -0
- package/dist/cjs/error/invalid-identity-provider-id-error-properties.js +2 -0
- package/dist/cjs/error/invalid-identity-provider-type-code-error-properties.d.ts +3 -0
- package/dist/cjs/error/invalid-identity-provider-type-code-error-properties.js +2 -0
- package/dist/cjs/identity/external-id/as-identity-external-id.d.ts +2 -0
- package/dist/cjs/identity/external-id/as-identity-external-id.js +8 -0
- package/dist/cjs/identity/external-id/identity-external-id.d.ts +3 -0
- package/dist/cjs/identity/external-id/identity-external-id.js +2 -0
- package/dist/cjs/identity/external-id/is-identity-external-id.d.ts +2 -0
- package/dist/cjs/identity/external-id/is-identity-external-id.js +6 -0
- package/dist/cjs/identity/external-id/validate-identity-external-id.d.ts +2 -0
- package/dist/cjs/identity/external-id/validate-identity-external-id.js +10 -0
- package/dist/cjs/identity/id/as-identity-id.d.ts +2 -0
- package/dist/cjs/identity/id/as-identity-id.js +8 -0
- package/dist/cjs/identity/id/generate-identity-id.d.ts +2 -0
- package/dist/cjs/identity/id/generate-identity-id.js +9 -0
- package/dist/cjs/identity/id/identity-id.d.ts +4 -0
- package/dist/cjs/identity/id/identity-id.js +2 -0
- package/dist/cjs/identity/id/is-identity-id.d.ts +2 -0
- package/dist/cjs/identity/id/is-identity-id.js +7 -0
- package/dist/cjs/identity/id/validate-identity-id.d.ts +2 -0
- package/dist/cjs/identity/id/validate-identity-id.js +10 -0
- package/dist/cjs/identity/identity.d.ts +11 -0
- package/dist/cjs/identity/identity.js +2 -0
- package/dist/cjs/identity-provider/base-identity-provider.d.ts +12 -0
- package/dist/cjs/identity-provider/base-identity-provider.js +2 -0
- package/dist/cjs/identity-provider/cas-identity-provider.d.ts +12 -0
- package/dist/cjs/identity-provider/cas-identity-provider.js +2 -0
- package/dist/cjs/identity-provider/id/as-identity-provider-id.d.ts +2 -0
- package/dist/cjs/identity-provider/id/as-identity-provider-id.js +8 -0
- package/dist/cjs/identity-provider/id/generate-identity-provider-id.d.ts +2 -0
- package/dist/cjs/identity-provider/id/generate-identity-provider-id.js +9 -0
- package/dist/cjs/identity-provider/id/identity-provider-id.d.ts +4 -0
- package/dist/cjs/identity-provider/id/identity-provider-id.js +2 -0
- package/dist/cjs/identity-provider/id/is-identity-provider-id.d.ts +2 -0
- package/dist/cjs/identity-provider/id/is-identity-provider-id.js +7 -0
- package/dist/cjs/identity-provider/id/validate-identity-provider-id.d.ts +2 -0
- package/dist/cjs/identity-provider/id/validate-identity-provider-id.js +10 -0
- package/dist/cjs/identity-provider/identity-provider-attribute-map-mapping.d.ts +9 -0
- package/dist/cjs/identity-provider/identity-provider-attribute-map-mapping.js +2 -0
- package/dist/cjs/identity-provider/identity-provider-attribute-map.d.ts +16 -0
- package/dist/cjs/identity-provider/identity-provider-attribute-map.js +2 -0
- package/dist/cjs/identity-provider/identity-provider.d.ts +5 -0
- package/dist/cjs/identity-provider/identity-provider.js +2 -0
- package/dist/cjs/identity-provider/oidc-identity-provider.d.ts +11 -0
- package/dist/cjs/identity-provider/oidc-identity-provider.js +2 -0
- package/dist/cjs/identity-provider/platform-identity-provider.d.ts +7 -0
- package/dist/cjs/identity-provider/platform-identity-provider.js +2 -0
- package/dist/cjs/identity-provider/saml-identity-provider.d.ts +7 -0
- package/dist/cjs/identity-provider/saml-identity-provider.js +2 -0
- package/dist/cjs/identity-provider-type/code/as-identity-provider-type-code.d.ts +2 -0
- package/dist/cjs/identity-provider-type/code/as-identity-provider-type-code.js +8 -0
- package/dist/cjs/identity-provider-type/code/identity-provider-type-code.d.ts +2 -0
- package/dist/cjs/identity-provider-type/code/identity-provider-type-code.js +2 -0
- package/dist/cjs/identity-provider-type/code/identity-provider-type-codes.d.ts +1 -0
- package/dist/cjs/identity-provider-type/code/identity-provider-type-codes.js +4 -0
- package/dist/cjs/identity-provider-type/code/is-identity-provider-type-code.d.ts +2 -0
- package/dist/cjs/identity-provider-type/code/is-identity-provider-type-code.js +8 -0
- package/dist/cjs/identity-provider-type/code/validate-identity-provider-type-code.d.ts +2 -0
- package/dist/cjs/identity-provider-type/code/validate-identity-provider-type-code.js +10 -0
- package/dist/cjs/identity-provider-type/identity-provider-type.d.ts +6 -0
- package/dist/cjs/identity-provider-type/identity-provider-type.js +2 -0
- package/dist/cjs/identity.domain.d.ts +1 -0
- package/dist/cjs/identity.domain.js +5 -0
- package/dist/cjs/identity.error.d.ts +1 -0
- package/dist/cjs/identity.error.js +6 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/testing/create-test-base-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-base-identity-provider.js +21 -0
- package/dist/cjs/testing/create-test-cas-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-cas-identity-provider.js +22 -0
- package/dist/cjs/testing/create-test-identity-provider-attribute-map-mapping.d.ts +3 -0
- package/dist/cjs/testing/create-test-identity-provider-attribute-map-mapping.js +8 -0
- package/dist/cjs/testing/create-test-identity-provider-attribute-map.d.ts +3 -0
- package/dist/cjs/testing/create-test-identity-provider-attribute-map.js +30 -0
- package/dist/cjs/testing/create-test-identity-provider-type.d.ts +3 -0
- package/dist/cjs/testing/create-test-identity-provider-type.js +16 -0
- package/dist/cjs/testing/create-test-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-identity-provider.js +24 -0
- package/dist/cjs/testing/create-test-identity.d.ts +3 -0
- package/dist/cjs/testing/create-test-identity.js +20 -0
- package/dist/cjs/testing/create-test-oidc-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-oidc-identity-provider.js +23 -0
- package/dist/cjs/testing/create-test-platform-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-platform-identity-provider.js +15 -0
- package/dist/cjs/testing/create-test-saml-identity-provider.d.ts +3 -0
- package/dist/cjs/testing/create-test-saml-identity-provider.js +15 -0
- package/dist/cjs/testing/index.d.ts +10 -0
- package/dist/cjs/testing/index.js +23 -0
- package/dist/esm/client/index.d.ts +1 -0
- package/dist/esm/client/index.js +1 -0
- package/dist/esm/error/invalid-identity-external-id-error-properties.d.ts +3 -0
- package/dist/esm/error/invalid-identity-external-id-error-properties.js +1 -0
- package/dist/esm/error/invalid-identity-id-error-properties.d.ts +3 -0
- package/dist/esm/error/invalid-identity-id-error-properties.js +1 -0
- package/dist/esm/error/invalid-identity-provider-id-error-properties.d.ts +3 -0
- package/dist/esm/error/invalid-identity-provider-id-error-properties.js +1 -0
- package/dist/esm/error/invalid-identity-provider-type-code-error-properties.d.ts +3 -0
- package/dist/esm/error/invalid-identity-provider-type-code-error-properties.js +1 -0
- package/dist/esm/identity/external-id/as-identity-external-id.d.ts +2 -0
- package/dist/esm/identity/external-id/as-identity-external-id.js +5 -0
- package/dist/esm/identity/external-id/identity-external-id.d.ts +3 -0
- package/dist/esm/identity/external-id/identity-external-id.js +1 -0
- package/dist/esm/identity/external-id/is-identity-external-id.d.ts +2 -0
- package/dist/esm/identity/external-id/is-identity-external-id.js +3 -0
- package/dist/esm/identity/external-id/validate-identity-external-id.d.ts +2 -0
- package/dist/esm/identity/external-id/validate-identity-external-id.js +7 -0
- package/dist/esm/identity/id/as-identity-id.d.ts +2 -0
- package/dist/esm/identity/id/as-identity-id.js +5 -0
- package/dist/esm/identity/id/generate-identity-id.d.ts +2 -0
- package/dist/esm/identity/id/generate-identity-id.js +6 -0
- package/dist/esm/identity/id/identity-id.d.ts +4 -0
- package/dist/esm/identity/id/identity-id.js +1 -0
- package/dist/esm/identity/id/is-identity-id.d.ts +2 -0
- package/dist/esm/identity/id/is-identity-id.js +4 -0
- package/dist/esm/identity/id/validate-identity-id.d.ts +2 -0
- package/dist/esm/identity/id/validate-identity-id.js +7 -0
- package/dist/esm/identity/identity.d.ts +11 -0
- package/dist/esm/identity/identity.js +1 -0
- package/dist/esm/identity-provider/base-identity-provider.d.ts +12 -0
- package/dist/esm/identity-provider/base-identity-provider.js +1 -0
- package/dist/esm/identity-provider/cas-identity-provider.d.ts +12 -0
- package/dist/esm/identity-provider/cas-identity-provider.js +1 -0
- package/dist/esm/identity-provider/id/as-identity-provider-id.d.ts +2 -0
- package/dist/esm/identity-provider/id/as-identity-provider-id.js +5 -0
- package/dist/esm/identity-provider/id/generate-identity-provider-id.d.ts +2 -0
- package/dist/esm/identity-provider/id/generate-identity-provider-id.js +6 -0
- package/dist/esm/identity-provider/id/identity-provider-id.d.ts +4 -0
- package/dist/esm/identity-provider/id/identity-provider-id.js +1 -0
- package/dist/esm/identity-provider/id/is-identity-provider-id.d.ts +2 -0
- package/dist/esm/identity-provider/id/is-identity-provider-id.js +4 -0
- package/dist/esm/identity-provider/id/validate-identity-provider-id.d.ts +2 -0
- package/dist/esm/identity-provider/id/validate-identity-provider-id.js +7 -0
- package/dist/esm/identity-provider/identity-provider-attribute-map-mapping.d.ts +9 -0
- package/dist/esm/identity-provider/identity-provider-attribute-map-mapping.js +1 -0
- package/dist/esm/identity-provider/identity-provider-attribute-map.d.ts +16 -0
- package/dist/esm/identity-provider/identity-provider-attribute-map.js +1 -0
- package/dist/esm/identity-provider/identity-provider.d.ts +5 -0
- package/dist/esm/identity-provider/identity-provider.js +1 -0
- package/dist/esm/identity-provider/oidc-identity-provider.d.ts +11 -0
- package/dist/esm/identity-provider/oidc-identity-provider.js +1 -0
- package/dist/esm/identity-provider/platform-identity-provider.d.ts +7 -0
- package/dist/esm/identity-provider/platform-identity-provider.js +1 -0
- package/dist/esm/identity-provider/saml-identity-provider.d.ts +7 -0
- package/dist/esm/identity-provider/saml-identity-provider.js +1 -0
- package/dist/esm/identity-provider-type/code/as-identity-provider-type-code.d.ts +2 -0
- package/dist/esm/identity-provider-type/code/as-identity-provider-type-code.js +5 -0
- package/dist/esm/identity-provider-type/code/identity-provider-type-code.d.ts +2 -0
- package/dist/esm/identity-provider-type/code/identity-provider-type-code.js +1 -0
- package/dist/esm/identity-provider-type/code/identity-provider-type-codes.d.ts +1 -0
- package/dist/esm/identity-provider-type/code/identity-provider-type-codes.js +1 -0
- package/dist/esm/identity-provider-type/code/is-identity-provider-type-code.d.ts +2 -0
- package/dist/esm/identity-provider-type/code/is-identity-provider-type-code.js +5 -0
- package/dist/esm/identity-provider-type/code/validate-identity-provider-type-code.d.ts +2 -0
- package/dist/esm/identity-provider-type/code/validate-identity-provider-type-code.js +7 -0
- package/dist/esm/identity-provider-type/identity-provider-type.d.ts +6 -0
- package/dist/esm/identity-provider-type/identity-provider-type.js +1 -0
- package/dist/esm/identity.domain.d.ts +1 -0
- package/dist/esm/identity.domain.js +2 -0
- package/dist/esm/identity.error.d.ts +1 -0
- package/dist/esm/identity.error.js +3 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/testing/create-test-base-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-base-identity-provider.js +18 -0
- package/dist/esm/testing/create-test-cas-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-cas-identity-provider.js +19 -0
- package/dist/esm/testing/create-test-identity-provider-attribute-map-mapping.d.ts +3 -0
- package/dist/esm/testing/create-test-identity-provider-attribute-map-mapping.js +5 -0
- package/dist/esm/testing/create-test-identity-provider-attribute-map.d.ts +3 -0
- package/dist/esm/testing/create-test-identity-provider-attribute-map.js +27 -0
- package/dist/esm/testing/create-test-identity-provider-type.d.ts +3 -0
- package/dist/esm/testing/create-test-identity-provider-type.js +13 -0
- package/dist/esm/testing/create-test-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-identity-provider.js +21 -0
- package/dist/esm/testing/create-test-identity.d.ts +3 -0
- package/dist/esm/testing/create-test-identity.js +17 -0
- package/dist/esm/testing/create-test-oidc-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-oidc-identity-provider.js +20 -0
- package/dist/esm/testing/create-test-platform-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-platform-identity-provider.js +12 -0
- package/dist/esm/testing/create-test-saml-identity-provider.d.ts +3 -0
- package/dist/esm/testing/create-test-saml-identity-provider.js +12 -0
- package/dist/esm/testing/index.d.ts +10 -0
- package/dist/esm/testing/index.js +10 -0
- package/dist/types/client/index.d.ts +2 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/error/invalid-identity-external-id-error-properties.d.ts +7 -0
- package/dist/types/error/invalid-identity-external-id-error-properties.d.ts.map +1 -0
- package/dist/types/error/invalid-identity-id-error-properties.d.ts +10 -0
- package/dist/types/error/invalid-identity-id-error-properties.d.ts.map +1 -0
- package/dist/types/error/invalid-identity-provider-id-error-properties.d.ts +10 -0
- package/dist/types/error/invalid-identity-provider-id-error-properties.d.ts.map +1 -0
- package/dist/types/error/invalid-identity-provider-type-code-error-properties.d.ts +10 -0
- package/dist/types/error/invalid-identity-provider-type-code-error-properties.d.ts.map +1 -0
- package/dist/types/identity/external-id/as-identity-external-id.d.ts +9 -0
- package/dist/types/identity/external-id/as-identity-external-id.d.ts.map +1 -0
- package/dist/types/identity/external-id/identity-external-id.d.ts +7 -0
- package/dist/types/identity/external-id/identity-external-id.d.ts.map +1 -0
- package/dist/types/identity/external-id/is-identity-external-id.d.ts +9 -0
- package/dist/types/identity/external-id/is-identity-external-id.d.ts.map +1 -0
- package/dist/types/identity/external-id/validate-identity-external-id.d.ts +8 -0
- package/dist/types/identity/external-id/validate-identity-external-id.d.ts.map +1 -0
- package/dist/types/identity/id/as-identity-id.d.ts +9 -0
- package/dist/types/identity/id/as-identity-id.d.ts.map +1 -0
- package/dist/types/identity/id/generate-identity-id.d.ts +8 -0
- package/dist/types/identity/id/generate-identity-id.d.ts.map +1 -0
- package/dist/types/identity/id/identity-id.d.ts +8 -0
- package/dist/types/identity/id/identity-id.d.ts.map +1 -0
- package/dist/types/identity/id/is-identity-id.d.ts +9 -0
- package/dist/types/identity/id/is-identity-id.d.ts.map +1 -0
- package/dist/types/identity/id/validate-identity-id.d.ts +8 -0
- package/dist/types/identity/id/validate-identity-id.d.ts.map +1 -0
- package/dist/types/identity/identity.d.ts +36 -0
- package/dist/types/identity/identity.d.ts.map +1 -0
- package/dist/types/identity-provider/base-identity-provider.d.ts +31 -0
- package/dist/types/identity-provider/base-identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider/cas-identity-provider.d.ts +31 -0
- package/dist/types/identity-provider/cas-identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider/id/as-identity-provider-id.d.ts +9 -0
- package/dist/types/identity-provider/id/as-identity-provider-id.d.ts.map +1 -0
- package/dist/types/identity-provider/id/generate-identity-provider-id.d.ts +8 -0
- package/dist/types/identity-provider/id/generate-identity-provider-id.d.ts.map +1 -0
- package/dist/types/identity-provider/id/identity-provider-id.d.ts +8 -0
- package/dist/types/identity-provider/id/identity-provider-id.d.ts.map +1 -0
- package/dist/types/identity-provider/id/is-identity-provider-id.d.ts +9 -0
- package/dist/types/identity-provider/id/is-identity-provider-id.d.ts.map +1 -0
- package/dist/types/identity-provider/id/validate-identity-provider-id.d.ts +8 -0
- package/dist/types/identity-provider/id/validate-identity-provider-id.d.ts.map +1 -0
- package/dist/types/identity-provider/identity-provider-attribute-map-mapping.d.ts +28 -0
- package/dist/types/identity-provider/identity-provider-attribute-map-mapping.d.ts.map +1 -0
- package/dist/types/identity-provider/identity-provider-attribute-map.d.ts +61 -0
- package/dist/types/identity-provider/identity-provider-attribute-map.d.ts.map +1 -0
- package/dist/types/identity-provider/identity-provider.d.ts +9 -0
- package/dist/types/identity-provider/identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider/oidc-identity-provider.d.ts +30 -0
- package/dist/types/identity-provider/oidc-identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider/platform-identity-provider.d.ts +14 -0
- package/dist/types/identity-provider/platform-identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider/saml-identity-provider.d.ts +14 -0
- package/dist/types/identity-provider/saml-identity-provider.d.ts.map +1 -0
- package/dist/types/identity-provider-type/code/as-identity-provider-type-code.d.ts +9 -0
- package/dist/types/identity-provider-type/code/as-identity-provider-type-code.d.ts.map +1 -0
- package/dist/types/identity-provider-type/code/identity-provider-type-code.d.ts +6 -0
- package/dist/types/identity-provider-type/code/identity-provider-type-code.d.ts.map +1 -0
- package/dist/types/identity-provider-type/code/identity-provider-type-codes.d.ts +5 -0
- package/dist/types/identity-provider-type/code/identity-provider-type-codes.d.ts.map +1 -0
- package/dist/types/identity-provider-type/code/is-identity-provider-type-code.d.ts +9 -0
- package/dist/types/identity-provider-type/code/is-identity-provider-type-code.d.ts.map +1 -0
- package/dist/types/identity-provider-type/code/validate-identity-provider-type-code.d.ts +8 -0
- package/dist/types/identity-provider-type/code/validate-identity-provider-type-code.d.ts.map +1 -0
- package/dist/types/identity-provider-type/identity-provider-type.d.ts +16 -0
- package/dist/types/identity-provider-type/identity-provider-type.d.ts.map +1 -0
- package/dist/types/identity.domain.d.ts +5 -0
- package/dist/types/identity.domain.d.ts.map +1 -0
- package/dist/types/identity.error.d.ts +5 -0
- package/dist/types/identity.error.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/testing/create-test-base-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-base-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/create-test-cas-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-cas-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/create-test-identity-provider-attribute-map-mapping.d.ts +10 -0
- package/dist/types/testing/create-test-identity-provider-attribute-map-mapping.d.ts.map +1 -0
- package/dist/types/testing/create-test-identity-provider-attribute-map.d.ts +10 -0
- package/dist/types/testing/create-test-identity-provider-attribute-map.d.ts.map +1 -0
- package/dist/types/testing/create-test-identity-provider-type.d.ts +10 -0
- package/dist/types/testing/create-test-identity-provider-type.d.ts.map +1 -0
- package/dist/types/testing/create-test-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/create-test-identity.d.ts +10 -0
- package/dist/types/testing/create-test-identity.d.ts.map +1 -0
- package/dist/types/testing/create-test-oidc-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-oidc-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/create-test-platform-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-platform-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/create-test-saml-identity-provider.d.ts +10 -0
- package/dist/types/testing/create-test-saml-identity-provider.d.ts.map +1 -0
- package/dist/types/testing/index.d.ts +11 -0
- package/dist/types/testing/index.d.ts.map +1 -0
- package/package.json +82 -0
- package/src/client/index.ts +1 -0
- package/src/identity/identity.ts +36 -0
- package/src/identity-provider/base-identity-provider.ts +32 -0
- package/src/identity-provider/cas-identity-provider.ts +30 -0
- package/src/identity-provider/identity-provider-attribute-map-mapping.ts +30 -0
- package/src/identity-provider/identity-provider-attribute-map.ts +61 -0
- package/src/identity-provider/identity-provider.ts +13 -0
- package/src/identity-provider/oidc-identity-provider.ts +28 -0
- package/src/identity-provider/platform-identity-provider.ts +12 -0
- package/src/identity-provider/saml-identity-provider.ts +12 -0
- package/src/identity-provider-type/identity-provider-type.ts +16 -0
- package/src/identity.domain.ts +6 -0
- package/src/identity.error.ts +8 -0
- package/src/index.ts +12 -0
- package/src/testing/create-test-base-identity-provider.ts +32 -0
- package/src/testing/create-test-cas-identity-provider.ts +33 -0
- package/src/testing/create-test-identity-provider-attribute-map-mapping.ts +18 -0
- package/src/testing/create-test-identity-provider-attribute-map.ts +40 -0
- package/src/testing/create-test-identity-provider-type.ts +25 -0
- package/src/testing/create-test-identity-provider.ts +38 -0
- package/src/testing/create-test-identity.ts +30 -0
- package/src/testing/create-test-oidc-identity-provider.ts +33 -0
- package/src/testing/create-test-platform-identity-provider.ts +25 -0
- package/src/testing/create-test-saml-identity-provider.ts +25 -0
- package/src/testing/index.ts +10 -0
- package/src/tsconfig.base.json +15 -0
- package/src/tsconfig.cjs.json +8 -0
- package/src/tsconfig.esm.json +8 -0
- package/src/tsconfig.spec.json +9 -0
- package/src/tsconfig.types.json +13 -0
- package/tsconfig.json +37 -0
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@edumalin/identity",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Types and client for the Edumalin identity API",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"Edumalin",
|
|
7
|
+
"api",
|
|
8
|
+
"identity"
|
|
9
|
+
],
|
|
10
|
+
"author": "Edumalin <dev@edumalin.com>",
|
|
11
|
+
"contributors": [],
|
|
12
|
+
"homepage": "https://developer.edumalin.com",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/edumalin/edumalin.git",
|
|
16
|
+
"directory": "node/modules/identity"
|
|
17
|
+
},
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/edumalin/edumalin/issues"
|
|
20
|
+
},
|
|
21
|
+
"main": "./dist/cjs/index.js",
|
|
22
|
+
"module": "./dist/esm/index.js",
|
|
23
|
+
"types": "./dist/types/index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/types/index.d.ts",
|
|
27
|
+
"node": "./dist/cjs/index.js",
|
|
28
|
+
"require": "./dist/cjs/index.js",
|
|
29
|
+
"default": "./dist/esm/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./client": {
|
|
32
|
+
"types": "./dist/types/client/index.d.ts",
|
|
33
|
+
"node": "./dist/cjs/client/index.js",
|
|
34
|
+
"require": "./dist/cjs/client/index.js",
|
|
35
|
+
"default": "./dist/esm/client/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./testing": {
|
|
38
|
+
"types": "./dist/types/testing/index.d.ts",
|
|
39
|
+
"node": "./dist/cjs/testing/index.js",
|
|
40
|
+
"require": "./dist/cjs/testing/index.js",
|
|
41
|
+
"default": "./dist/esm/testing/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./package.json": "./package.json"
|
|
44
|
+
},
|
|
45
|
+
"typesVersions": {
|
|
46
|
+
"*": {
|
|
47
|
+
"client": [
|
|
48
|
+
"dist/types/client/index.d.ts"
|
|
49
|
+
],
|
|
50
|
+
"testing": [
|
|
51
|
+
"dist/types/testing/index.d.ts"
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"files": [
|
|
56
|
+
"dist/cjs/**/!(*.tsbuildinfo)",
|
|
57
|
+
"dist/esm/**/!(*.tsbuildinfo)",
|
|
58
|
+
"dist/types/**/!(*.tsbuildinfo)",
|
|
59
|
+
"src",
|
|
60
|
+
"LICENSE.md",
|
|
61
|
+
"package.json",
|
|
62
|
+
"README.md",
|
|
63
|
+
"tsconfig.json"
|
|
64
|
+
],
|
|
65
|
+
"sideEffects": false,
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"@edumalin/id": "3.0.0",
|
|
68
|
+
"@edumalin/platform": "3.0.0"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {},
|
|
71
|
+
"peerDependencies": {
|
|
72
|
+
"rxjs": "^7.8.2",
|
|
73
|
+
"temporal-polyfill": "^0.3.0"
|
|
74
|
+
},
|
|
75
|
+
"optionalDependencies": {},
|
|
76
|
+
"scripts": {
|
|
77
|
+
"compile": "tsc -b ./src/tsconfig.cjs.json ./src/tsconfig.esm.json ./src/tsconfig.types.json",
|
|
78
|
+
"lint": "oxlint .",
|
|
79
|
+
"test": "vitest run",
|
|
80
|
+
"test:serve": "vitest"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type IdentityId } from '@edumalin/id';
|
|
2
|
+
import { type UrlString } from '@edumalin/platform/url';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Identity
|
|
6
|
+
*/
|
|
7
|
+
export interface Identity {
|
|
8
|
+
/**
|
|
9
|
+
* Email address
|
|
10
|
+
*/
|
|
11
|
+
readonly email?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Gender
|
|
14
|
+
*/
|
|
15
|
+
readonly gender?: 'M' | 'F';
|
|
16
|
+
/**
|
|
17
|
+
* Given name
|
|
18
|
+
*/
|
|
19
|
+
readonly givenName: string;
|
|
20
|
+
/**
|
|
21
|
+
* Identity identifier
|
|
22
|
+
*/
|
|
23
|
+
readonly identityId: IdentityId;
|
|
24
|
+
/**
|
|
25
|
+
* Profile picture URL
|
|
26
|
+
*/
|
|
27
|
+
readonly profilePictureUrl?: UrlString;
|
|
28
|
+
/**
|
|
29
|
+
* true when the identity information is redacted
|
|
30
|
+
*/
|
|
31
|
+
readonly redacted?: true;
|
|
32
|
+
/**
|
|
33
|
+
* Surname
|
|
34
|
+
*/
|
|
35
|
+
readonly surname: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type IdentityProviderId } from '@edumalin/id';
|
|
2
|
+
import { type I18nString } from '@edumalin/platform/i18n';
|
|
3
|
+
import { type UrlString } from '@edumalin/platform/url';
|
|
4
|
+
|
|
5
|
+
import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
|
|
6
|
+
import { type IdentityProviderAttributeMap } from './identity-provider-attribute-map.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Base identity provider
|
|
10
|
+
*/
|
|
11
|
+
export interface BaseIdentityProvider {
|
|
12
|
+
/**
|
|
13
|
+
* Attribute map
|
|
14
|
+
*/
|
|
15
|
+
readonly attributeMap?: IdentityProviderAttributeMap;
|
|
16
|
+
/**
|
|
17
|
+
* Identity provider identifier
|
|
18
|
+
*/
|
|
19
|
+
readonly identityProviderId: IdentityProviderId;
|
|
20
|
+
/**
|
|
21
|
+
* Identity provider name
|
|
22
|
+
*/
|
|
23
|
+
readonly identityProviderName?: I18nString;
|
|
24
|
+
/**
|
|
25
|
+
* Identity provider type
|
|
26
|
+
*/
|
|
27
|
+
readonly identityProviderType?: IdentityProviderType;
|
|
28
|
+
/**
|
|
29
|
+
* Service URL
|
|
30
|
+
*/
|
|
31
|
+
readonly serviceUrl?: UrlString;
|
|
32
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type UrlString } from '@edumalin/platform/url';
|
|
2
|
+
|
|
3
|
+
import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
|
|
4
|
+
import { type BaseIdentityProvider } from './base-identity-provider.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* CAS identity provider
|
|
8
|
+
*/
|
|
9
|
+
export interface CasIdentityProvider extends BaseIdentityProvider {
|
|
10
|
+
/**
|
|
11
|
+
* Attribute map expression prefix
|
|
12
|
+
*/
|
|
13
|
+
readonly attributeMapExpressionPrefix?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Authorization URL
|
|
16
|
+
*/
|
|
17
|
+
readonly authorizationUrl?: UrlString;
|
|
18
|
+
/**
|
|
19
|
+
* Identity provider type
|
|
20
|
+
*/
|
|
21
|
+
readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'cas' };
|
|
22
|
+
/**
|
|
23
|
+
* Protocol version
|
|
24
|
+
*/
|
|
25
|
+
readonly protocolVersion: '2.0' | '3.0';
|
|
26
|
+
/**
|
|
27
|
+
* Validation service URL
|
|
28
|
+
*/
|
|
29
|
+
readonly validationServiceUrl?: UrlString;
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity provider attribute map mapping
|
|
3
|
+
*/
|
|
4
|
+
export type IdentityProviderAttributeMapMapping =
|
|
5
|
+
| {
|
|
6
|
+
/**
|
|
7
|
+
* Constant
|
|
8
|
+
*/
|
|
9
|
+
readonly constant: string;
|
|
10
|
+
/**
|
|
11
|
+
* Mapping type
|
|
12
|
+
*/
|
|
13
|
+
readonly mappingType: 'constant';
|
|
14
|
+
}
|
|
15
|
+
| {
|
|
16
|
+
/**
|
|
17
|
+
* mapping type
|
|
18
|
+
*/
|
|
19
|
+
readonly mappingType: 'disabled';
|
|
20
|
+
}
|
|
21
|
+
| {
|
|
22
|
+
/**
|
|
23
|
+
* Mapping type
|
|
24
|
+
*/
|
|
25
|
+
readonly mappingType: 'path';
|
|
26
|
+
/**
|
|
27
|
+
* Path
|
|
28
|
+
*/
|
|
29
|
+
readonly path: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type IdentityProviderAttributeMapMapping } from './identity-provider-attribute-map-mapping.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Identity provider attribute map
|
|
5
|
+
*
|
|
6
|
+
* Provides a mapping mechanism for each identity attribute
|
|
7
|
+
*/
|
|
8
|
+
export interface IdentityProviderAttributeMap {
|
|
9
|
+
/**
|
|
10
|
+
* Class names
|
|
11
|
+
*/
|
|
12
|
+
readonly classNames?: IdentityProviderAttributeMapMapping;
|
|
13
|
+
/**
|
|
14
|
+
* Email address
|
|
15
|
+
*/
|
|
16
|
+
readonly email?: IdentityProviderAttributeMapMapping;
|
|
17
|
+
/**
|
|
18
|
+
* Establishment code
|
|
19
|
+
*/
|
|
20
|
+
readonly establishmentCode?: IdentityProviderAttributeMapMapping;
|
|
21
|
+
/**
|
|
22
|
+
* Establishment identifier
|
|
23
|
+
*/
|
|
24
|
+
readonly establishmentId?: IdentityProviderAttributeMapMapping;
|
|
25
|
+
/**
|
|
26
|
+
* External user identifier
|
|
27
|
+
*/
|
|
28
|
+
readonly externalUserId?: IdentityProviderAttributeMapMapping;
|
|
29
|
+
/**
|
|
30
|
+
* Given name
|
|
31
|
+
*/
|
|
32
|
+
readonly givenName?: IdentityProviderAttributeMapMapping;
|
|
33
|
+
/**
|
|
34
|
+
* Group names
|
|
35
|
+
*/
|
|
36
|
+
readonly groupNames?: IdentityProviderAttributeMapMapping;
|
|
37
|
+
/**
|
|
38
|
+
* Identity name (given name and surname as a single value)
|
|
39
|
+
*/
|
|
40
|
+
readonly identityName?: IdentityProviderAttributeMapMapping;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the user is a headmaster
|
|
43
|
+
*/
|
|
44
|
+
readonly isHeadmaster?: IdentityProviderAttributeMapMapping;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the user is a parent
|
|
47
|
+
*/
|
|
48
|
+
readonly isParent?: IdentityProviderAttributeMapMapping;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the user is a student
|
|
51
|
+
*/
|
|
52
|
+
readonly isStudent?: IdentityProviderAttributeMapMapping;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the user is a teacher
|
|
55
|
+
*/
|
|
56
|
+
readonly isTeacher?: IdentityProviderAttributeMapMapping;
|
|
57
|
+
/**
|
|
58
|
+
* Surname
|
|
59
|
+
*/
|
|
60
|
+
readonly surname?: IdentityProviderAttributeMapMapping;
|
|
61
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type CasIdentityProvider } from './cas-identity-provider.js';
|
|
2
|
+
import { type OidcIdentityProvider } from './oidc-identity-provider.js';
|
|
3
|
+
import { type PlatformIdentityProvider } from './platform-identity-provider.js';
|
|
4
|
+
import { type SamlIdentityProvider } from './saml-identity-provider.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Identity provider
|
|
8
|
+
*/
|
|
9
|
+
export type IdentityProvider =
|
|
10
|
+
| CasIdentityProvider
|
|
11
|
+
| OidcIdentityProvider
|
|
12
|
+
| PlatformIdentityProvider
|
|
13
|
+
| SamlIdentityProvider;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
|
|
2
|
+
import { type BaseIdentityProvider } from './base-identity-provider.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* OpenID Connect identity provider
|
|
6
|
+
*/
|
|
7
|
+
export interface OidcIdentityProvider extends BaseIdentityProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Challenge algorithm
|
|
10
|
+
*/
|
|
11
|
+
readonly challengeAlgorithm: 'SHA-256';
|
|
12
|
+
/**
|
|
13
|
+
* Challenge method
|
|
14
|
+
*/
|
|
15
|
+
readonly challengeMethod: 'S256';
|
|
16
|
+
/**
|
|
17
|
+
* Client identifier
|
|
18
|
+
*/
|
|
19
|
+
readonly clientId: string;
|
|
20
|
+
/**
|
|
21
|
+
* Client secret
|
|
22
|
+
*/
|
|
23
|
+
readonly clientSecret: string;
|
|
24
|
+
/**
|
|
25
|
+
* Identity provider type
|
|
26
|
+
*/
|
|
27
|
+
readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'oidc' };
|
|
28
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
|
|
2
|
+
import { type BaseIdentityProvider } from './base-identity-provider.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Platform identity provider
|
|
6
|
+
*/
|
|
7
|
+
export interface PlatformIdentityProvider extends BaseIdentityProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Identity provider type
|
|
10
|
+
*/
|
|
11
|
+
readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'platform' };
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IdentityProviderType } from '../identity-provider-type/identity-provider-type.js';
|
|
2
|
+
import { type BaseIdentityProvider } from './base-identity-provider.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* SAML identity provider
|
|
6
|
+
*/
|
|
7
|
+
export interface SamlIdentityProvider extends BaseIdentityProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Identity provider type
|
|
10
|
+
*/
|
|
11
|
+
readonly identityProviderType: IdentityProviderType & { readonly identityProviderTypeCode: 'saml' };
|
|
12
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IdentityProviderTypeCode } from '@edumalin/id';
|
|
2
|
+
import { type I18nString } from '@edumalin/platform/i18n';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Identity provider type
|
|
6
|
+
*/
|
|
7
|
+
export interface IdentityProviderType {
|
|
8
|
+
/**
|
|
9
|
+
* Identity provider type code
|
|
10
|
+
*/
|
|
11
|
+
readonly identityProviderTypeCode: IdentityProviderTypeCode;
|
|
12
|
+
/**
|
|
13
|
+
* Identity provider type name
|
|
14
|
+
*/
|
|
15
|
+
readonly identityProviderTypeName?: I18nString;
|
|
16
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { type BaseIdentityProvider } from './identity-provider/base-identity-provider.js';
|
|
2
|
+
export { type CasIdentityProvider } from './identity-provider/cas-identity-provider.js';
|
|
3
|
+
export { type Identity } from './identity/identity.js';
|
|
4
|
+
export { identityDomain } from './identity.domain.js';
|
|
5
|
+
export { identityError } from './identity.error.js';
|
|
6
|
+
export { type IdentityProvider } from './identity-provider/identity-provider.js';
|
|
7
|
+
export { type IdentityProviderAttributeMap } from './identity-provider/identity-provider-attribute-map.js';
|
|
8
|
+
export { type IdentityProviderAttributeMapMapping } from './identity-provider/identity-provider-attribute-map-mapping.js';
|
|
9
|
+
export { type IdentityProviderType } from './identity-provider-type/identity-provider-type.js';
|
|
10
|
+
export { type OidcIdentityProvider } from './identity-provider/oidc-identity-provider.js';
|
|
11
|
+
export { type PlatformIdentityProvider } from './identity-provider/platform-identity-provider.js';
|
|
12
|
+
export { type SamlIdentityProvider } from './identity-provider/saml-identity-provider.js';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { generateIdentityProviderId } from '@edumalin/id';
|
|
2
|
+
import { type BaseIdentityProvider } from '@edumalin/identity';
|
|
3
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
4
|
+
import { asUrlString } from '@edumalin/platform/url';
|
|
5
|
+
|
|
6
|
+
import { createTestIdentityProviderAttributeMap } from './create-test-identity-provider-attribute-map.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates a test base identity provider
|
|
10
|
+
*
|
|
11
|
+
* @param identityProvider Base base identity provider properties
|
|
12
|
+
* @returns Test base identity provider
|
|
13
|
+
*/
|
|
14
|
+
export function createTestBaseIdentityProvider(
|
|
15
|
+
identityProvider?: DeepPartial<BaseIdentityProvider>
|
|
16
|
+
): BaseIdentityProvider {
|
|
17
|
+
const attributeMap = createTestIdentityProviderAttributeMap(identityProvider?.attributeMap);
|
|
18
|
+
const identityProviderId = identityProvider?.identityProviderId ?? generateIdentityProviderId();
|
|
19
|
+
const identityProviderName = identityProvider?.identityProviderName ?? {
|
|
20
|
+
'en-US': 'Test identity provider',
|
|
21
|
+
'fr-FR': "Fournisseur d'identité de test",
|
|
22
|
+
};
|
|
23
|
+
const serviceUrl =
|
|
24
|
+
identityProvider?.serviceUrl ?? asUrlString('https://developer.edumalin.com/test/identity/provider');
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
attributeMap,
|
|
28
|
+
identityProviderId,
|
|
29
|
+
identityProviderName,
|
|
30
|
+
serviceUrl,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type CasIdentityProvider } from '@edumalin/identity';
|
|
2
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
3
|
+
import { asUrlString } from '@edumalin/platform/url';
|
|
4
|
+
|
|
5
|
+
import { createTestBaseIdentityProvider } from './create-test-base-identity-provider.js';
|
|
6
|
+
import { createTestIdentityProviderType } from './create-test-identity-provider-type.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Creates a test CAS identity provider
|
|
10
|
+
*
|
|
11
|
+
* @param identityProvider Base CAS identity provider properties
|
|
12
|
+
* @returns Test CAS identity provider
|
|
13
|
+
*/
|
|
14
|
+
export function createTestCasIdentityProvider(
|
|
15
|
+
identityProvider?: DeepPartial<CasIdentityProvider>
|
|
16
|
+
): CasIdentityProvider {
|
|
17
|
+
const attributeMapExpressionPrefix = '/cas:serviceResponse/cas:authenticationSuccess/';
|
|
18
|
+
const identityProviderType = {
|
|
19
|
+
...createTestIdentityProviderType(identityProvider?.identityProviderType),
|
|
20
|
+
identityProviderTypeCode: 'cas' as const,
|
|
21
|
+
};
|
|
22
|
+
const protocolVersion = identityProvider?.protocolVersion ?? '3.0';
|
|
23
|
+
const validationServiceUrl =
|
|
24
|
+
identityProvider?.validationServiceUrl ?? asUrlString('https://developer.edumalin.com/cas/validationService');
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
...createTestBaseIdentityProvider(identityProvider as never),
|
|
28
|
+
attributeMapExpressionPrefix,
|
|
29
|
+
identityProviderType,
|
|
30
|
+
protocolVersion,
|
|
31
|
+
validationServiceUrl,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type IdentityProviderAttributeMapMapping } from '@edumalin/identity';
|
|
2
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a test identity provider attribute map mapping
|
|
6
|
+
*
|
|
7
|
+
* @param attributeMapMapping Base identity provider attribute map mapping properties
|
|
8
|
+
* @returns Test identity provider attribute map mapping
|
|
9
|
+
*/
|
|
10
|
+
export function createTestIdentityProviderAttributeMapMapping(
|
|
11
|
+
_attributeMapMapping?: DeepPartial<IdentityProviderAttributeMapMapping>
|
|
12
|
+
): IdentityProviderAttributeMapMapping {
|
|
13
|
+
// TODO
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
mappingType: 'disabled',
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type IdentityProviderAttributeMap } from '@edumalin/identity';
|
|
2
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
3
|
+
|
|
4
|
+
import { createTestIdentityProviderAttributeMapMapping } from './create-test-identity-provider-attribute-map-mapping';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates a test identity provider attribute map
|
|
8
|
+
*
|
|
9
|
+
* @param attributeMap Base identity provider attribute map properties
|
|
10
|
+
* @returns Test identity provider attribute map
|
|
11
|
+
*/
|
|
12
|
+
export function createTestIdentityProviderAttributeMap(
|
|
13
|
+
attributeMap?: DeepPartial<IdentityProviderAttributeMap>
|
|
14
|
+
): IdentityProviderAttributeMap {
|
|
15
|
+
const classNames = createTestIdentityProviderAttributeMapMapping(attributeMap?.classNames);
|
|
16
|
+
const establishmentCode = createTestIdentityProviderAttributeMapMapping(attributeMap?.establishmentCode);
|
|
17
|
+
const externalUserId = createTestIdentityProviderAttributeMapMapping(attributeMap?.externalUserId);
|
|
18
|
+
const givenName = createTestIdentityProviderAttributeMapMapping(attributeMap?.givenName);
|
|
19
|
+
const groupNames = createTestIdentityProviderAttributeMapMapping(attributeMap?.groupNames);
|
|
20
|
+
const identityName = createTestIdentityProviderAttributeMapMapping(attributeMap?.identityName);
|
|
21
|
+
const isHeadmaster = createTestIdentityProviderAttributeMapMapping(attributeMap?.isHeadmaster);
|
|
22
|
+
const isParent = createTestIdentityProviderAttributeMapMapping(attributeMap?.isParent);
|
|
23
|
+
const isStudent = createTestIdentityProviderAttributeMapMapping(attributeMap?.isStudent);
|
|
24
|
+
const isTeacher = createTestIdentityProviderAttributeMapMapping(attributeMap?.isTeacher);
|
|
25
|
+
const surname = createTestIdentityProviderAttributeMapMapping(attributeMap?.surname);
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
classNames,
|
|
29
|
+
establishmentCode,
|
|
30
|
+
externalUserId,
|
|
31
|
+
givenName,
|
|
32
|
+
groupNames,
|
|
33
|
+
identityName,
|
|
34
|
+
isHeadmaster,
|
|
35
|
+
isParent,
|
|
36
|
+
isStudent,
|
|
37
|
+
isTeacher,
|
|
38
|
+
surname,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { identityProviderTypeCodes } from '@edumalin/id';
|
|
2
|
+
import { type IdentityProviderType } from '@edumalin/identity';
|
|
3
|
+
import { getRandomArrayValue } from '@edumalin/platform/random';
|
|
4
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates a test identity provider type
|
|
8
|
+
*
|
|
9
|
+
* @param identityProviderType Base identity provider type properties
|
|
10
|
+
* @returns Test identity provider type
|
|
11
|
+
*/
|
|
12
|
+
export function createTestIdentityProviderType(
|
|
13
|
+
identityProviderType?: DeepPartial<IdentityProviderType>
|
|
14
|
+
): IdentityProviderType {
|
|
15
|
+
const identityProviderTypeCode = getRandomArrayValue(identityProviderTypeCodes);
|
|
16
|
+
const identityProviderTypeName = identityProviderType?.identityProviderTypeName ?? {
|
|
17
|
+
'en-US': `${identityProviderTypeCode} test identity provider type`,
|
|
18
|
+
'fr-FR': `Type de fournisseur d'identité de test ${identityProviderTypeCode}`,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
identityProviderTypeCode,
|
|
23
|
+
identityProviderTypeName,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type CasIdentityProvider,
|
|
3
|
+
type IdentityProvider,
|
|
4
|
+
type OidcIdentityProvider,
|
|
5
|
+
type PlatformIdentityProvider,
|
|
6
|
+
type SamlIdentityProvider,
|
|
7
|
+
} from '@edumalin/identity';
|
|
8
|
+
import { getRandomArrayValue } from '@edumalin/platform/random';
|
|
9
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
10
|
+
|
|
11
|
+
import { createTestCasIdentityProvider } from './create-test-cas-identity-provider.js';
|
|
12
|
+
import { createTestPlatformIdentityProvider } from './create-test-platform-identity-provider.js';
|
|
13
|
+
import { createTestOidcIdentityProvider } from './create-test-oidc-identity-provider.js';
|
|
14
|
+
import { createTestSamlIdentityProvider } from './create-test-saml-identity-provider.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Creates a test identity provider
|
|
18
|
+
*
|
|
19
|
+
* @param identityProvider Base identity provider properties
|
|
20
|
+
* @returns Identity provider
|
|
21
|
+
*/
|
|
22
|
+
export function createTestIdentityProvider(identityProvider?: DeepPartial<IdentityProvider>): IdentityProvider {
|
|
23
|
+
const identityProviderType =
|
|
24
|
+
identityProvider?.identityProviderType?.identityProviderTypeCode ??
|
|
25
|
+
getRandomArrayValue(['cas', 'platform', 'oidc', 'saml']);
|
|
26
|
+
switch (identityProviderType) {
|
|
27
|
+
case 'cas':
|
|
28
|
+
return createTestCasIdentityProvider(identityProvider as DeepPartial<CasIdentityProvider> | undefined);
|
|
29
|
+
case 'oidc':
|
|
30
|
+
return createTestOidcIdentityProvider(identityProvider as DeepPartial<OidcIdentityProvider> | undefined);
|
|
31
|
+
case 'platform':
|
|
32
|
+
return createTestPlatformIdentityProvider(identityProvider as DeepPartial<PlatformIdentityProvider> | undefined);
|
|
33
|
+
case 'saml':
|
|
34
|
+
return createTestSamlIdentityProvider(identityProvider as DeepPartial<SamlIdentityProvider> | undefined);
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`unknown identity provider type`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { generateIdentityId } from '@edumalin/id';
|
|
2
|
+
import { type Identity } from '@edumalin/identity';
|
|
3
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
4
|
+
import { asUrlString } from '@edumalin/platform/url';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Creates a test identity
|
|
8
|
+
*
|
|
9
|
+
* @param identity Base identity properties
|
|
10
|
+
* @returns Test identity
|
|
11
|
+
*/
|
|
12
|
+
export function createTestIdentity(identity?: DeepPartial<Identity>): Identity {
|
|
13
|
+
const email = identity?.email;
|
|
14
|
+
const givenName = identity?.givenName ?? 'Camille';
|
|
15
|
+
const identityId = identity?.identityId ?? generateIdentityId();
|
|
16
|
+
const profilePictureUrl =
|
|
17
|
+
identity?.profilePictureUrl ??
|
|
18
|
+
asUrlString(
|
|
19
|
+
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAA2UlEQVR4nOzRoWpCcRiG8W38+2CXsA22Wxi7iKWlExcHYzcxBoZj0AsQu9Gs6Vi8AY1iMwgaDKJ4DW96PPD88vuFh6/MX0Y3ifv3KtpPZ9/RfrN9jvZ30foKGUAzgGYAzQCaATQDaAbQyno3jg7OvSbad1/70X5w+oz2rf+AATQDaAbQDKAZQDOAZgCt/D0uo4PbziLaV/Ux2v/8PkT71n/AAJoBNANoBtAMoBlAM4BWnj6G0cGq+Y/29ds+2n9NDtG+9R8wgGYAzQCaATQDaAbQDKBdAgAA//+JQhusQ+q2ywAAAABJRU5ErkJggg'
|
|
20
|
+
);
|
|
21
|
+
const surname = identity?.surname ?? 'Dupont';
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
...(email ? { email } : {}),
|
|
25
|
+
givenName,
|
|
26
|
+
identityId,
|
|
27
|
+
...(profilePictureUrl ? { profilePictureUrl } : {}),
|
|
28
|
+
surname,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type OidcIdentityProvider } from '@edumalin/identity';
|
|
2
|
+
import { type DeepPartial } from '@edumalin/platform/typescript';
|
|
3
|
+
|
|
4
|
+
import { createTestBaseIdentityProvider } from './create-test-base-identity-provider.js';
|
|
5
|
+
import { createTestIdentityProviderType } from './create-test-identity-provider-type.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a test OpenID Connect identity provider
|
|
9
|
+
*
|
|
10
|
+
* @param identityProvider Base OpenID Connect identity provider properties
|
|
11
|
+
* @returns Test OpenID Connect identity provider
|
|
12
|
+
*/
|
|
13
|
+
export function createTestOidcIdentityProvider(
|
|
14
|
+
identityProvider?: DeepPartial<OidcIdentityProvider>
|
|
15
|
+
): OidcIdentityProvider {
|
|
16
|
+
const challengeAlgorithm = identityProvider?.challengeAlgorithm ?? 'SHA-256';
|
|
17
|
+
const challengeMethod = identityProvider?.challengeMethod ?? 'S256';
|
|
18
|
+
const clientId = identityProvider?.clientId ?? 'test-client-id';
|
|
19
|
+
const clientSecret = identityProvider?.clientSecret ?? 'test-client-secret';
|
|
20
|
+
const identityProviderType = {
|
|
21
|
+
...createTestIdentityProviderType(identityProvider?.identityProviderType),
|
|
22
|
+
identityProviderTypeCode: 'oidc' as const,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return {
|
|
26
|
+
...createTestBaseIdentityProvider(identityProvider as never),
|
|
27
|
+
challengeAlgorithm,
|
|
28
|
+
challengeMethod,
|
|
29
|
+
clientId,
|
|
30
|
+
clientSecret,
|
|
31
|
+
identityProviderType,
|
|
32
|
+
};
|
|
33
|
+
}
|