@ibgib/node-gib 0.0.14 → 0.0.17
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/data/identity_index/email/hashes/32/13/49/e64f32730f01a61ada211f29eaf0a210fc2386b668ad04d7e8a9b16766.json +4 -0
- package/dist/email/email-helpers.d.mts.map +1 -1
- package/dist/email/email-helpers.mjs.map +1 -1
- package/dist/email/index.d.mts +3 -0
- package/dist/email/index.d.mts.map +1 -1
- package/dist/email/index.mjs +3 -0
- package/dist/email/index.mjs.map +1 -1
- package/dist/email/verify/email-verify-constants.d.mts +3 -0
- package/dist/email/verify/email-verify-constants.d.mts.map +1 -0
- package/dist/email/verify/email-verify-constants.mjs +3 -0
- package/dist/email/verify/email-verify-constants.mjs.map +1 -0
- package/dist/email/verify/email-verify-helpers.d.mts +107 -0
- package/dist/email/verify/email-verify-helpers.d.mts.map +1 -0
- package/dist/email/verify/email-verify-helpers.mjs +357 -0
- package/dist/email/verify/email-verify-helpers.mjs.map +1 -0
- package/dist/email/verify/email-verify-types.d.mts +41 -0
- package/dist/email/verify/email-verify-types.d.mts.map +1 -0
- package/dist/email/verify/email-verify-types.mjs +2 -0
- package/dist/email/verify/email-verify-types.mjs.map +1 -0
- package/dist/identity/sso/custodian-auth-helpers.d.mts +45 -0
- package/dist/identity/sso/custodian-auth-helpers.d.mts.map +1 -0
- package/dist/identity/sso/custodian-auth-helpers.mjs +108 -0
- package/dist/identity/sso/custodian-auth-helpers.mjs.map +1 -0
- package/dist/identity/sso/sso-config-helper.d.mts +7 -0
- package/dist/identity/sso/sso-config-helper.d.mts.map +1 -0
- package/dist/identity/sso/sso-config-helper.mjs +42 -0
- package/dist/identity/sso/sso-config-helper.mjs.map +1 -0
- package/dist/identity/sso/sso-custodian-service.d.mts +139 -0
- package/dist/identity/sso/sso-custodian-service.d.mts.map +1 -0
- package/dist/identity/sso/sso-custodian-service.mjs +471 -0
- package/dist/identity/sso/sso-custodian-service.mjs.map +1 -0
- package/dist/identity/sso/sso-types.d.mts +71 -0
- package/dist/identity/sso/sso-types.d.mts.map +1 -0
- package/dist/identity/sso/sso-types.mjs +7 -0
- package/dist/identity/sso/sso-types.mjs.map +1 -0
- package/dist/index.d.mts +5 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +5 -1
- package/dist/index.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs +9 -2
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/email/email-verification-code.handler.d.mts +29 -0
- package/dist/serve-gib/handlers/api/email/email-verification-code.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-verification-code.handler.mjs +149 -0
- package/dist/serve-gib/handlers/api/email/email-verification-code.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-verify-code-onetime.handler.d.mts +24 -0
- package/dist/serve-gib/handlers/api/email/email-verify-code-onetime.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-verify-code-onetime.handler.mjs +212 -0
- package/dist/serve-gib/handlers/api/email/email-verify-code-onetime.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.d.mts +37 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mjs +192 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.d.mts +33 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs +173 -0
- package/dist/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs +2 -3
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs +38 -3
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs +54 -24
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs +13 -13
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs +1 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs +3 -3
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs +28 -15
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts +29 -15
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts.map +1 -1
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs +105 -108
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-constants.d.mts +3 -2
- package/dist/serve-gib/identity-index/identity-index-constants.d.mts.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-constants.mjs +4 -2
- package/dist/serve-gib/identity-index/identity-index-constants.mjs.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-helpers.d.mts.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-helpers.mjs +28 -11
- package/dist/serve-gib/identity-index/identity-index-helpers.mjs.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-service.d.mts +20 -3
- package/dist/serve-gib/identity-index/identity-index-service.d.mts.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-service.mjs +134 -18
- package/dist/serve-gib/identity-index/identity-index-service.mjs.map +1 -1
- package/dist/serve-gib/identity-index/identity-index-types.d.mts +4 -2
- package/dist/serve-gib/identity-index/identity-index-types.d.mts.map +1 -1
- package/dist/serve-gib/index.d.mts +4 -0
- package/dist/serve-gib/index.d.mts.map +1 -1
- package/dist/serve-gib/index.mjs +12 -0
- package/dist/serve-gib/index.mjs.map +1 -1
- package/dist/serve-gib/path-constants.d.mts +17 -0
- package/dist/serve-gib/path-constants.d.mts.map +1 -1
- package/dist/serve-gib/path-constants.mjs +17 -0
- package/dist/serve-gib/path-constants.mjs.map +1 -1
- package/e2e/identity-custodian-lifecycle.e2e.md +93 -0
- package/e2e/identity-sso-lifecycle.e2e.md +132 -0
- package/package.json +5 -5
- package/src/email/email-helpers.mts +0 -1
- package/src/email/index.mts +3 -0
- package/src/email/verify/email-verify-constants.mts +3 -0
- package/src/email/verify/email-verify-helpers.mts +466 -0
- package/src/email/verify/email-verify-types.mts +47 -0
- package/src/identity/sso/custodian-auth-helpers.mts +146 -0
- package/src/identity/sso/custodian-auth-helpers.respec.mts +97 -0
- package/src/identity/sso/sso-config-helper.mts +52 -0
- package/src/identity/sso/sso-custodian-service.mts +566 -0
- package/src/identity/sso/sso-custodian-service.respec.mts +297 -0
- package/src/identity/sso/sso-types.mts +80 -0
- package/src/index.mts +14 -0
- package/src/serve-gib/handlers/api/email/email-outbound.handler.mts +8 -2
- package/src/serve-gib/handlers/api/email/email-verification-code.handler.mts +163 -0
- package/src/serve-gib/handlers/api/email/email-verify-code-onetime.handler.mts +231 -0
- package/src/serve-gib/handlers/api/email/email-verify.respec.mts +183 -0
- package/src/serve-gib/handlers/api/identity/keystone-custodian-genesis.handler.mts +233 -0
- package/src/serve-gib/handlers/api/identity/keystone-custodian-genesis.respec.mts +93 -0
- package/src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.handler.mts +210 -0
- package/src/serve-gib/handlers/api/identity/keystone-custodian-register-delegate.respec.mts +112 -0
- package/src/serve-gib/handlers/api/keystone/keystone-check-email.handler.mts +2 -4
- package/src/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts +42 -3
- package/src/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts +46 -23
- package/src/serve-gib/handlers/api/keystone/keystone-lookup.handler.mts +11 -15
- package/src/serve-gib/handlers/api/keystone/keystone-post.handler.mts +1 -1
- package/src/serve-gib/handlers/api/keystone/sso-config.handler.mts +3 -3
- package/src/serve-gib/handlers/api/keystone/sso-link.handler.mts +29 -17
- package/src/serve-gib/handlers/api/keystone/sso-login.handler.mts +132 -125
- package/src/serve-gib/identity-index/identity-index-constants.mts +5 -2
- package/src/serve-gib/identity-index/identity-index-helpers.mts +26 -12
- package/src/serve-gib/identity-index/identity-index-service.mts +133 -16
- package/src/serve-gib/identity-index/identity-index-service.respec.mts +1 -1
- package/src/serve-gib/identity-index/identity-index-types.mts +4 -2
- package/src/serve-gib/index.mts +12 -0
- package/src/serve-gib/path-constants.mts +20 -0
- package/tsconfig.json +2 -2
- package/tsconfig.test.json +1 -1
- package/dist/assumptions.respec.d.mts +0 -2
- package/dist/assumptions.respec.d.mts.map +0 -1
- package/dist/assumptions.respec.mjs +0 -41
- package/dist/assumptions.respec.mjs.map +0 -1
- package/dist/email/email-service.respec.d.mts +0 -2
- package/dist/email/email-service.respec.d.mts.map +0 -1
- package/dist/email/email-service.respec.mjs +0 -115
- package/dist/email/email-service.respec.mjs.map +0 -1
- package/dist/serve-gib/bootstrap-helper.respec.d.mts +0 -2
- package/dist/serve-gib/bootstrap-helper.respec.d.mts.map +0 -1
- package/dist/serve-gib/bootstrap-helper.respec.mjs +0 -85
- package/dist/serve-gib/bootstrap-helper.respec.mjs.map +0 -1
- package/dist/serve-gib/handlers/api/health.respec.d.mts +0 -2
- package/dist/serve-gib/handlers/api/health.respec.d.mts.map +0 -1
- package/dist/serve-gib/handlers/api/health.respec.mjs +0 -47
- package/dist/serve-gib/handlers/api/health.respec.mjs.map +0 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts +0 -2
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts.map +0 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs +0 -98
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs.map +0 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts +0 -2
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts.map +0 -1
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs +0 -131
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs.map +0 -1
- package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts +0 -2
- package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts.map +0 -1
- package/dist/serve-gib/identity-index/identity-index-service.respec.mjs +0 -109
- package/dist/serve-gib/identity-index/identity-index-service.respec.mjs.map +0 -1
- package/dist/serve-gib/keystone-schema-helpers.respec.d.mts +0 -2
- package/dist/serve-gib/keystone-schema-helpers.respec.d.mts.map +0 -1
- package/dist/serve-gib/keystone-schema-helpers.respec.mjs +0 -68
- package/dist/serve-gib/keystone-schema-helpers.respec.mjs.map +0 -1
- package/dist/serve-gib/path-helper.respec.d.mts +0 -2
- package/dist/serve-gib/path-helper.respec.d.mts.map +0 -1
- package/dist/serve-gib/path-helper.respec.mjs +0 -83
- package/dist/serve-gib/path-helper.respec.mjs.map +0 -1
- package/dist/serve-gib/serve-gib.respec.d.mts +0 -2
- package/dist/serve-gib/serve-gib.respec.d.mts.map +0 -1
- package/dist/serve-gib/serve-gib.respec.mjs +0 -85
- package/dist/serve-gib/serve-gib.respec.mjs.map +0 -1
- package/dist/spec-helper.node.respec.d.mts +0 -13
- package/dist/spec-helper.node.respec.d.mts.map +0 -1
- package/dist/spec-helper.node.respec.mjs +0 -50
- package/dist/spec-helper.node.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs +0 -52
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs +0 -53
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs +0 -59
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs +0 -55
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs +0 -67
- package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs +0 -67
- package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs +0 -68
- package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts +0 -2
- package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts.map +0 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs +0 -69
- package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +0 -1
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
2
|
-
import { ServeGib_V1 } from '../../serve-gib-v1.mjs';
|
|
3
|
-
import { HealthHandler } from './health.handler.mjs';
|
|
4
|
-
import { ErrorHandler } from '../error-handler.mjs';
|
|
5
|
-
const sir = `[${import.meta.url}]`;
|
|
6
|
-
await respecfully(sir, 'Health Handler Integration', async () => {
|
|
7
|
-
const testDataDir = './test-data-health';
|
|
8
|
-
const port = 3002;
|
|
9
|
-
await ifWe(sir, 'get a 200 OK from /api/health', async () => {
|
|
10
|
-
// 1. Setup ServeGib_V1
|
|
11
|
-
const serveGib = new ServeGib_V1({
|
|
12
|
-
port,
|
|
13
|
-
dataDir: testDataDir,
|
|
14
|
-
handlers: [new HealthHandler()],
|
|
15
|
-
errorHandler: new ErrorHandler()
|
|
16
|
-
});
|
|
17
|
-
// 2. Mock GET Request
|
|
18
|
-
const req = {
|
|
19
|
-
url: '/api/health',
|
|
20
|
-
method: 'GET',
|
|
21
|
-
headers: {},
|
|
22
|
-
on: (event, cb) => {
|
|
23
|
-
if (event === 'end') {
|
|
24
|
-
cb();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
let capturedStatus = 0;
|
|
29
|
-
let capturedBody = null;
|
|
30
|
-
const res = {
|
|
31
|
-
writeHead: (status) => {
|
|
32
|
-
capturedStatus = status;
|
|
33
|
-
},
|
|
34
|
-
end: (body) => {
|
|
35
|
-
capturedBody = JSON.parse(body);
|
|
36
|
-
},
|
|
37
|
-
statusCode: 0
|
|
38
|
-
};
|
|
39
|
-
// 3. Handle
|
|
40
|
-
await serveGib.handleRequest(req, res);
|
|
41
|
-
// 4. Verify
|
|
42
|
-
iReckon(sir, capturedStatus).asTo('captured status code').isGonnaBe(200);
|
|
43
|
-
iReckon(sir, capturedBody.status).asTo('captured body status').isGonnaBe('ok');
|
|
44
|
-
iReckon(sir, capturedBody.timestamp).asTo('captured body timestamp').isGonnaBe(capturedBody.timestamp);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
//# sourceMappingURL=health.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.respec.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/api/health.respec.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAa,MAAM,kDAAkD,CAAC;AACzG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC;AAEnC,MAAM,WAAW,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,WAAW,GAAG,oBAAoB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,MAAM,IAAI,CAAC,GAAG,EAAE,+BAA+B,EAAE,KAAK,IAAI,EAAE;QACxD,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC7B,IAAI;YACJ,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,CAAC,IAAI,aAAa,EAAE,CAAC;YAC/B,YAAY,EAAE,IAAI,YAAY,EAAE;SACnC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,GAAG,GAAQ;YACb,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE;YACX,EAAE,EAAE,CAAC,KAAa,EAAE,EAAO,EAAE,EAAE;gBAC3B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBAAC,EAAE,EAAE,CAAC;gBAAC,CAAC;YAClC,CAAC;SACJ,CAAC;QAEF,IAAI,cAAc,GAAW,CAAC,CAAC;QAC/B,IAAI,YAAY,GAAQ,IAAI,CAAC;QAC7B,MAAM,GAAG,GAAQ;YACb,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE;gBAC1B,cAAc,GAAG,MAAM,CAAC;YAC5B,CAAC;YACD,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE;gBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,UAAU,EAAE,CAAC;SAChB,CAAC;QAEF,YAAY;QACZ,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEvC,YAAY;QACZ,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-get.respec.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-get.respec.mts"],"names":[],"mappings":""}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { existsSync, rmSync, mkdirSync } from 'node:fs';
|
|
2
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
3
|
-
const sir = `[${import.meta.url}]`;
|
|
4
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
5
|
-
import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
|
|
6
|
-
import { createStandardPoolConfig } from '@ibgib/core-gib/dist/keystone/keystone-config-builder.mjs';
|
|
7
|
-
import { POOL_ID_DEFAULT } from '@ibgib/core-gib/dist/keystone/keystone-constants.mjs';
|
|
8
|
-
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
9
|
-
import { ServeGib_V1 } from '../../../serve-gib-v1.mjs';
|
|
10
|
-
import { KeystonePostHandler } from './keystone-post.handler.mjs';
|
|
11
|
-
import { KeystoneGetHandler } from './keystone-get.handler.mjs';
|
|
12
|
-
import { ErrorHandler } from '../../error-handler.mjs';
|
|
13
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
14
|
-
class MockMetaspace {
|
|
15
|
-
async getLocalUserSpace() { return new MockSpace(); }
|
|
16
|
-
async put() { }
|
|
17
|
-
async registerNewIbGib() { }
|
|
18
|
-
}
|
|
19
|
-
class MockSpace {
|
|
20
|
-
async witness() { return { data: { success: true } }; }
|
|
21
|
-
}
|
|
22
|
-
await respecfully(sir, 'Keystone GET Integration', async () => {
|
|
23
|
-
const testDataDir = './test-data-get';
|
|
24
|
-
const port = 3003;
|
|
25
|
-
// Clean test data
|
|
26
|
-
if (existsSync(testDataDir)) {
|
|
27
|
-
try {
|
|
28
|
-
rmSync(testDataDir, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 });
|
|
29
|
-
}
|
|
30
|
-
catch { /* ignore */ }
|
|
31
|
-
}
|
|
32
|
-
mkdirSync(testDataDir, { recursive: true });
|
|
33
|
-
await ifWe(sir, 'retrieve a keystone chain via GET /api/keystone/:addr', async () => {
|
|
34
|
-
const keystoneService = new KeystoneService_V1();
|
|
35
|
-
const config = createStandardPoolConfig({ id: POOL_ID_DEFAULT, salt: POOL_ID_DEFAULT });
|
|
36
|
-
// 1. Setup ServeGib_V1 with both POST and GET handlers
|
|
37
|
-
const serveGib = new ServeGib_V1({
|
|
38
|
-
port,
|
|
39
|
-
dataDir: testDataDir,
|
|
40
|
-
handlers: [
|
|
41
|
-
new KeystonePostHandler(),
|
|
42
|
-
new KeystoneGetHandler(),
|
|
43
|
-
],
|
|
44
|
-
errorHandler: new ErrorHandler()
|
|
45
|
-
});
|
|
46
|
-
// 2. Generate and POST genesis
|
|
47
|
-
const genesis = await keystoneService.genesis({
|
|
48
|
-
masterSecret: 'AliceSecret',
|
|
49
|
-
configs: [config],
|
|
50
|
-
metaspace: new MockMetaspace(),
|
|
51
|
-
space: new MockSpace(),
|
|
52
|
-
});
|
|
53
|
-
const addr = getIbGibAddr({ ibGib: genesis });
|
|
54
|
-
const postReq = {
|
|
55
|
-
url: '/api/keystone',
|
|
56
|
-
method: 'POST',
|
|
57
|
-
headers: { 'ibgib-domain': addr, 'content-type': 'application/json' },
|
|
58
|
-
on: (event, cb) => {
|
|
59
|
-
if (event === 'data') {
|
|
60
|
-
cb(Buffer.from(JSON.stringify({ ibGibs: [genesis] })));
|
|
61
|
-
}
|
|
62
|
-
if (event === 'end') {
|
|
63
|
-
cb();
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const postRes = {
|
|
68
|
-
writeHead: () => { },
|
|
69
|
-
end: () => { },
|
|
70
|
-
};
|
|
71
|
-
await serveGib.handleRequest(postReq, postRes);
|
|
72
|
-
// 3. Mock GET Request
|
|
73
|
-
const getReq = {
|
|
74
|
-
url: `/api/keystone/${encodeURIComponent(addr)}`,
|
|
75
|
-
method: 'GET',
|
|
76
|
-
headers: { 'ibgib-domain': addr },
|
|
77
|
-
on: (event, cb) => {
|
|
78
|
-
if (event === 'end') {
|
|
79
|
-
cb();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
let capturedStatus = 0;
|
|
84
|
-
let capturedBody = null;
|
|
85
|
-
const getRes = {
|
|
86
|
-
writeHead: (status) => { capturedStatus = status; },
|
|
87
|
-
end: (body) => { capturedBody = JSON.parse(body); },
|
|
88
|
-
};
|
|
89
|
-
// 4. Handle GET
|
|
90
|
-
await serveGib.handleRequest(getReq, getRes);
|
|
91
|
-
// 5. Verify
|
|
92
|
-
iReckon(sir, capturedStatus).asTo('captured status code').isGonnaBe(200);
|
|
93
|
-
iReckon(sir, capturedBody.domainGraph).asTo('captured body domainGraph').isGonnaBeTruthy();
|
|
94
|
-
const graphKeys = Object.keys(capturedBody.domainGraph || {});
|
|
95
|
-
iReckon(sir, graphKeys.length > 0).asTo('domainGraph has keys').isGonnaBe(true);
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
//# sourceMappingURL=keystone-get.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-get.respec.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-get.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-post.respec.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-post.respec.mts"],"names":[],"mappings":""}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { existsSync, rmSync, mkdirSync, readdirSync } from 'node:fs';
|
|
3
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
4
|
-
const sir = `[${import.meta.url}]`;
|
|
5
|
-
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
6
|
-
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
7
|
-
import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
|
|
8
|
-
import { createStandardPoolConfig } from '@ibgib/core-gib/dist/keystone/keystone-config-builder.mjs';
|
|
9
|
-
import { POOL_ID_DEFAULT } from '@ibgib/core-gib/dist/keystone/keystone-constants.mjs';
|
|
10
|
-
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
11
|
-
import { ServeGib_V1 } from '../../../serve-gib-v1.mjs';
|
|
12
|
-
import { KeystonePostHandler } from './keystone-post.handler.mjs';
|
|
13
|
-
import { ErrorHandler } from '../../error-handler.mjs';
|
|
14
|
-
import { getDomainRootPath } from '../../../bootstrap-helper.mjs';
|
|
15
|
-
const logalot = GLOBAL_LOG_A_LOT;
|
|
16
|
-
if (logalot) {
|
|
17
|
-
console.log(`[test] keystone-post.respec.mts top-level entry`);
|
|
18
|
-
}
|
|
19
|
-
class MockMetaspace {
|
|
20
|
-
async getLocalUserSpace() { return new MockSpace(); }
|
|
21
|
-
async put() { }
|
|
22
|
-
async registerNewIbGib() { }
|
|
23
|
-
}
|
|
24
|
-
class MockSpace {
|
|
25
|
-
async witness() { return { data: { success: true } }; }
|
|
26
|
-
}
|
|
27
|
-
await respecfully(sir, 'Keystone POST Integration', async () => {
|
|
28
|
-
const testDataDir = './test-data-post';
|
|
29
|
-
const port = 3001;
|
|
30
|
-
// Clean test data
|
|
31
|
-
if (existsSync(testDataDir)) {
|
|
32
|
-
try {
|
|
33
|
-
rmSync(testDataDir, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 });
|
|
34
|
-
}
|
|
35
|
-
catch { /* ignore */ }
|
|
36
|
-
}
|
|
37
|
-
mkdirSync(testDataDir, { recursive: true });
|
|
38
|
-
await ifWe(sir, 'bootstrap a new domain via POST /api/keystone', async () => {
|
|
39
|
-
const keystoneService = new KeystoneService_V1();
|
|
40
|
-
const config = createStandardPoolConfig({ id: POOL_ID_DEFAULT, salt: POOL_ID_DEFAULT });
|
|
41
|
-
// 1. Generate real genesis
|
|
42
|
-
const genesis = await keystoneService.genesis({
|
|
43
|
-
masterSecret: 'AliceSecret',
|
|
44
|
-
configs: [config],
|
|
45
|
-
metaspace: new MockMetaspace(),
|
|
46
|
-
space: new MockSpace(),
|
|
47
|
-
});
|
|
48
|
-
const addr = getIbGibAddr({ ibGib: genesis });
|
|
49
|
-
if (logalot) {
|
|
50
|
-
console.log(`[test] Generated genesis: ${addr}`);
|
|
51
|
-
}
|
|
52
|
-
// 2. Setup ServeGib_V1
|
|
53
|
-
const serveGib = new ServeGib_V1({
|
|
54
|
-
port,
|
|
55
|
-
dataDir: testDataDir,
|
|
56
|
-
handlers: [new KeystonePostHandler()],
|
|
57
|
-
errorHandler: new ErrorHandler()
|
|
58
|
-
});
|
|
59
|
-
if (logalot) {
|
|
60
|
-
console.log(`[test] ServeGib_V1 setup. Posting to /api/keystone...`);
|
|
61
|
-
}
|
|
62
|
-
// 3. Mock POST Request
|
|
63
|
-
const req = {
|
|
64
|
-
url: '/api/keystone',
|
|
65
|
-
method: 'POST',
|
|
66
|
-
headers: {
|
|
67
|
-
'ibgib-domain': addr,
|
|
68
|
-
'content-type': 'application/json'
|
|
69
|
-
},
|
|
70
|
-
on: (event, cb) => {
|
|
71
|
-
if (event === 'data') {
|
|
72
|
-
if (logalot) {
|
|
73
|
-
console.log(`[test] sending data chunk...`);
|
|
74
|
-
}
|
|
75
|
-
cb(Buffer.from(JSON.stringify({ ibGibs: [genesis] })));
|
|
76
|
-
}
|
|
77
|
-
if (event === 'end') {
|
|
78
|
-
if (logalot) {
|
|
79
|
-
console.log(`[test] end of request.`);
|
|
80
|
-
}
|
|
81
|
-
cb();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
let capturedStatus = 0;
|
|
86
|
-
let capturedBody = null;
|
|
87
|
-
const res = {
|
|
88
|
-
writeHead: (status) => {
|
|
89
|
-
if (logalot) {
|
|
90
|
-
console.log(`[test] writeHead: ${status}`);
|
|
91
|
-
}
|
|
92
|
-
capturedStatus = status;
|
|
93
|
-
},
|
|
94
|
-
end: (body) => {
|
|
95
|
-
if (logalot) {
|
|
96
|
-
console.log(`[test] res.end called with body length: ${body?.length}`);
|
|
97
|
-
}
|
|
98
|
-
capturedBody = JSON.parse(body);
|
|
99
|
-
},
|
|
100
|
-
statusCode: 0
|
|
101
|
-
};
|
|
102
|
-
// 4. Handle
|
|
103
|
-
if (logalot) {
|
|
104
|
-
console.log(`[test] Calling handleRequest...`);
|
|
105
|
-
}
|
|
106
|
-
await serveGib.handleRequest(req, res);
|
|
107
|
-
if (logalot) {
|
|
108
|
-
console.log(`[test] handleRequest completed.`);
|
|
109
|
-
}
|
|
110
|
-
// 5. Verify
|
|
111
|
-
iReckon(sir, capturedStatus).asTo('captured status code').isGonnaBe(201);
|
|
112
|
-
iReckon(sir, capturedBody.success).asTo(`Handler failed: ${capturedBody.message || 'no message'}`).isGonnaBe(true);
|
|
113
|
-
const domainPath = getDomainRootPath(genesis.gib, testDataDir);
|
|
114
|
-
iReckon(sir, existsSync(domainPath)).asTo('domain path exists').isGonnaBe(true);
|
|
115
|
-
// Verify the ibgib actually exists in the new domain's storage
|
|
116
|
-
// With indexed storage, it's in a bucketed subpath: ibgib/default/ibgibs/B1/B2/
|
|
117
|
-
const bucket1 = genesis.gib.substring(0, 3).toUpperCase();
|
|
118
|
-
const bucket2 = genesis.gib.substring(3, 6).toUpperCase();
|
|
119
|
-
const bucketPath = join(domainPath, 'ibgib', 'default', 'ibgibs', bucket1, bucket2);
|
|
120
|
-
iReckon(sir, existsSync(bucketPath)).asTo(`Bucket path does not exist: ${bucketPath}`).isGonnaBe(true);
|
|
121
|
-
// We don't know the random filename, but we know it's a .json file in that bucket
|
|
122
|
-
try {
|
|
123
|
-
const files = readdirSync(bucketPath).filter(f => f.endsWith('.json'));
|
|
124
|
-
iReckon(sir, files.length > 0).asTo(`No .json files found in bucket: ${bucketPath}`).isGonnaBe(true);
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
iReckon(sir, true).asTo(`error trying to readdir ${bucketPath}: ${extractErrorMsg(error)}`).isGonnaBe(true);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=keystone-post.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-post.respec.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-post.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-index-service.respec.d.mts","sourceRoot":"","sources":["../../../src/serve-gib/identity-index/identity-index-service.respec.mts"],"names":[],"mappings":""}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import * as fs from 'fs/promises';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
4
|
-
import { IdentityIndexService } from './identity-index-service.mjs';
|
|
5
|
-
import { normalizeEmail, getIdentityEmailHash, getShardedIndexPath, validateEmail } from './identity-index-helpers.mjs';
|
|
6
|
-
const sir = `[${import.meta.url}]`;
|
|
7
|
-
const TEST_SALT = 'test_salt_12345';
|
|
8
|
-
const TEST_BASE_DIR = path.join(process.cwd(), 'test-data-identity-index');
|
|
9
|
-
await respecfully(sir, 'IdentityIndexService & Helpers', async () => {
|
|
10
|
-
// Cleanup test data directory before & after tests
|
|
11
|
-
const cleanupDir = async () => {
|
|
12
|
-
try {
|
|
13
|
-
await fs.rm(TEST_BASE_DIR, { recursive: true, force: true });
|
|
14
|
-
}
|
|
15
|
-
catch { /* ignore */ }
|
|
16
|
-
};
|
|
17
|
-
await cleanupDir();
|
|
18
|
-
await ifWe(sir, 'normalize email strings correctly', async () => {
|
|
19
|
-
iReckon(sir, normalizeEmail(' Alice@Example.com ')).willEqual('alice@example.com');
|
|
20
|
-
iReckon(sir, normalizeEmail('BOB@DOMAIN.ORG')).willEqual('bob@domain.org');
|
|
21
|
-
iReckon(sir, normalizeEmail('')).willEqual('');
|
|
22
|
-
});
|
|
23
|
-
await ifWe(sir, 'validate email addresses accurately using validateEmail', async () => {
|
|
24
|
-
// Valid emails
|
|
25
|
-
iReckon(sir, validateEmail({ email: 'user@example.com' }).length).willEqual(0);
|
|
26
|
-
iReckon(sir, validateEmail({ email: 'user+tag@sub.domain.co.uk' }).length).willEqual(0);
|
|
27
|
-
iReckon(sir, validateEmail({ email: ' alice@company.org ' }).length).willEqual(0);
|
|
28
|
-
// Invalid emails
|
|
29
|
-
iReckon(sir, validateEmail({ email: '' }).length > 0).isGonnaBeTrue();
|
|
30
|
-
iReckon(sir, validateEmail({ email: ' ' }).length > 0).isGonnaBeTrue();
|
|
31
|
-
iReckon(sir, validateEmail({ email: null }).length > 0).isGonnaBeTrue();
|
|
32
|
-
iReckon(sir, validateEmail({ email: undefined }).length > 0).isGonnaBeTrue();
|
|
33
|
-
iReckon(sir, validateEmail({ email: 'no-at-sign.com' }).length > 0).isGonnaBeTrue();
|
|
34
|
-
iReckon(sir, validateEmail({ email: 'user@no-dot' }).length > 0).isGonnaBeTrue();
|
|
35
|
-
iReckon(sir, validateEmail({ email: 'user @space.com' }).length > 0).isGonnaBeTrue();
|
|
36
|
-
iReckon(sir, validateEmail({ email: '@domain.com' }).length > 0).isGonnaBeTrue();
|
|
37
|
-
});
|
|
38
|
-
await ifWe(sir, 'calculate consistent SHA256 email hashes with salt', async () => {
|
|
39
|
-
const hash1 = await getIdentityEmailHash({ email: 'Alice@Example.com', salt: TEST_SALT });
|
|
40
|
-
const hash2 = await getIdentityEmailHash({ email: 'alice@example.com', salt: TEST_SALT });
|
|
41
|
-
iReckon(sir, hash1).willEqual(hash2);
|
|
42
|
-
iReckon(sir, hash1.length > 30).isGonnaBeTrue();
|
|
43
|
-
const diffSaltHash = await getIdentityEmailHash({ email: 'alice@example.com', salt: 'different_salt' });
|
|
44
|
-
iReckon(sir, hash1).not.willEqual(diffSaltHash);
|
|
45
|
-
});
|
|
46
|
-
await ifWe(sir, 'calculate sharded folder paths and truncated filenames', async () => {
|
|
47
|
-
const fullHash = 'abcdef1234567890abcdef1234567890';
|
|
48
|
-
const { folderPath, filePath, filename } = getShardedIndexPath({ baseDir: TEST_BASE_DIR, emailHash: fullHash });
|
|
49
|
-
const expectedSubfolder = path.join(TEST_BASE_DIR, 'email_hashes', 'ab', 'cd', 'ef');
|
|
50
|
-
iReckon(sir, folderPath).willEqual(expectedSubfolder);
|
|
51
|
-
// Filename strips the leading 6 chars ('abcdef')
|
|
52
|
-
iReckon(sir, filename).willEqual('1234567890abcdef1234567890.json');
|
|
53
|
-
iReckon(sir, filePath).willEqual(path.join(expectedSubfolder, '1234567890abcdef1234567890.json'));
|
|
54
|
-
});
|
|
55
|
-
await ifWe(sir, 'register an email index and read it back', async () => {
|
|
56
|
-
const service = new IdentityIndexService({ baseDir: TEST_BASE_DIR, salt: TEST_SALT });
|
|
57
|
-
const email = 'user1@example.com';
|
|
58
|
-
const tjpAddr = 'keystone^AF5BB54AE1254FB499C434A2915C6BA08BC1D53936E57D19D415EA17FA3CE475';
|
|
59
|
-
const result = await service.registerEmailIndex({ email, tjpAddr });
|
|
60
|
-
iReckon(sir, result.emailHash).isGonnaBeTruthy();
|
|
61
|
-
iReckon(sir, result.record.tjpAddr).willEqual(tjpAddr);
|
|
62
|
-
iReckon(sir, result.record.createdAt > 0).isGonnaBeTrue();
|
|
63
|
-
const retrieved = await service.getEmailIndex({ email });
|
|
64
|
-
iReckon(sir, retrieved).isGonnaBeTruthy();
|
|
65
|
-
iReckon(sir, retrieved.tjpAddr).willEqual(tjpAddr);
|
|
66
|
-
});
|
|
67
|
-
await ifWe(sir, 'atomically reject duplicate email registration with duplicate_identity_409', async () => {
|
|
68
|
-
const service = new IdentityIndexService({ baseDir: TEST_BASE_DIR, salt: TEST_SALT });
|
|
69
|
-
const email = 'duplicate@example.com';
|
|
70
|
-
const tjpAddr1 = 'keystone^1111111111111111111111111111111111111111111111111111111111111111';
|
|
71
|
-
const tjpAddr2 = 'keystone^2222222222222222222222222222222222222222222222222222222222222222';
|
|
72
|
-
await service.registerEmailIndex({ email, tjpAddr: tjpAddr1 });
|
|
73
|
-
let duplicateCaught = false;
|
|
74
|
-
try {
|
|
75
|
-
await service.registerEmailIndex({ email, tjpAddr: tjpAddr2 });
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
if (error.message.includes('duplicate_identity_409')) {
|
|
79
|
-
duplicateCaught = true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
iReckon(sir, duplicateCaught).asTo('duplicate registration rejected via flag wx EEXIST').isGonnaBeTrue();
|
|
83
|
-
});
|
|
84
|
-
await ifWe(sir, 'support multiple email hashes pointing to the same identity tjpAddr', async () => {
|
|
85
|
-
const service = new IdentityIndexService({ baseDir: TEST_BASE_DIR, salt: TEST_SALT });
|
|
86
|
-
const primaryTjp = 'keystone^3333333333333333333333333333333333333333333333333333333333333333';
|
|
87
|
-
const email1 = 'personal@example.com';
|
|
88
|
-
const email2 = 'work@company.com';
|
|
89
|
-
await service.registerEmailIndex({ email: email1, tjpAddr: primaryTjp });
|
|
90
|
-
await service.registerEmailIndex({ email: email2, tjpAddr: primaryTjp });
|
|
91
|
-
const record1 = await service.getEmailIndex({ email: email1 });
|
|
92
|
-
const record2 = await service.getEmailIndex({ email: email2 });
|
|
93
|
-
iReckon(sir, record1.tjpAddr).willEqual(primaryTjp);
|
|
94
|
-
iReckon(sir, record2.tjpAddr).willEqual(primaryTjp);
|
|
95
|
-
});
|
|
96
|
-
await ifWe(sir, 'unregister an email index cleanly', async () => {
|
|
97
|
-
const service = new IdentityIndexService({ baseDir: TEST_BASE_DIR, salt: TEST_SALT });
|
|
98
|
-
const email = 'delete-me@example.com';
|
|
99
|
-
const tjpAddr = 'keystone^4444444444444444444444444444444444444444444444444444444444444444';
|
|
100
|
-
await service.registerEmailIndex({ email, tjpAddr });
|
|
101
|
-
iReckon(sir, await service.getEmailIndex({ email })).isGonnaBeTruthy();
|
|
102
|
-
const unindexed = await service.unregisterEmailIndex({ email });
|
|
103
|
-
iReckon(sir, unindexed).isGonnaBeTrue();
|
|
104
|
-
const retrievedAfter = await service.getEmailIndex({ email });
|
|
105
|
-
iReckon(sir, retrievedAfter).isGonnaBeUndefined();
|
|
106
|
-
});
|
|
107
|
-
await cleanupDir();
|
|
108
|
-
});
|
|
109
|
-
//# sourceMappingURL=identity-index-service.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-index-service.respec.mjs","sourceRoot":"","sources":["../../../src/serve-gib/identity-index/identity-index-service.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-schema-helpers.respec.d.mts","sourceRoot":"","sources":["../../src/serve-gib/keystone-schema-helpers.respec.mts"],"names":[],"mappings":""}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { respecfully, iReckon, ifWe } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
2
|
-
import { validateFlatcaseToken, sanitizeToken, validateKeystoneNameSchema, validateChallengePoolIdSchema, } from './keystone-schema-helpers.mjs';
|
|
3
|
-
const sir = `[${import.meta.url}]`;
|
|
4
|
-
await respecfully(sir, 'Keystone Schema Helpers', async () => {
|
|
5
|
-
await ifWe(sir, 'validate flatcase tokens accurately', async () => {
|
|
6
|
-
iReckon(sir, validateFlatcaseToken('alice')).isGonnaBeTrue();
|
|
7
|
-
iReckon(sir, validateFlatcaseToken('bobbobbins')).isGonnaBeTrue();
|
|
8
|
-
iReckon(sir, validateFlatcaseToken('dev123')).isGonnaBeTrue();
|
|
9
|
-
iReckon(sir, validateFlatcaseToken('google')).isGonnaBeTrue();
|
|
10
|
-
// Invalid: hyphens, uppercase, spaces, special chars
|
|
11
|
-
iReckon(sir, validateFlatcaseToken('alice-bob')).isGonnaBeFalse();
|
|
12
|
-
iReckon(sir, validateFlatcaseToken('Alice')).isGonnaBeFalse();
|
|
13
|
-
iReckon(sir, validateFlatcaseToken('user_name')).isGonnaBeFalse();
|
|
14
|
-
iReckon(sir, validateFlatcaseToken('user@domain')).isGonnaBeFalse();
|
|
15
|
-
iReckon(sir, validateFlatcaseToken('')).isGonnaBeFalse();
|
|
16
|
-
});
|
|
17
|
-
await ifWe(sir, 'sanitize tokens to clean flatcase', async () => {
|
|
18
|
-
iReckon(sir, sanitizeToken('Alice_Bob-123!')).willEqual('alicebob123');
|
|
19
|
-
iReckon(sir, sanitizeToken('user.name@example.com')).willEqual('usernameexamplecom');
|
|
20
|
-
iReckon(sir, sanitizeToken('GOOGLE-auth')).willEqual('googleauth');
|
|
21
|
-
});
|
|
22
|
-
await ifWe(sir, 'validate primary and delegate keystone names', async () => {
|
|
23
|
-
// Happy path primary identity
|
|
24
|
-
const resPrimary = validateKeystoneNameSchema('alice');
|
|
25
|
-
iReckon(sir, resPrimary.valid).isGonnaBeTrue();
|
|
26
|
-
iReckon(sir, resPrimary.type).willEqual('primary');
|
|
27
|
-
iReckon(sir, resPrimary.username).willEqual('alice');
|
|
28
|
-
// Happy path local device delegate
|
|
29
|
-
const resDelegateDev = validateKeystoneNameSchema('alice-sync-dev123');
|
|
30
|
-
iReckon(sir, resDelegateDev.valid).isGonnaBeTrue();
|
|
31
|
-
iReckon(sir, resDelegateDev.type).willEqual('delegate');
|
|
32
|
-
iReckon(sir, resDelegateDev.username).willEqual('alice');
|
|
33
|
-
iReckon(sir, resDelegateDev.role).willEqual('sync');
|
|
34
|
-
iReckon(sir, resDelegateDev.deviceIdOrProviderId).willEqual('dev123');
|
|
35
|
-
// Happy path SSO custodial delegate
|
|
36
|
-
const resDelegateSSO = validateKeystoneNameSchema('alice-sync-google');
|
|
37
|
-
iReckon(sir, resDelegateSSO.valid).isGonnaBeTrue();
|
|
38
|
-
iReckon(sir, resDelegateSSO.type).willEqual('delegate');
|
|
39
|
-
iReckon(sir, resDelegateSSO.username).willEqual('alice');
|
|
40
|
-
iReckon(sir, resDelegateSSO.role).willEqual('sync');
|
|
41
|
-
iReckon(sir, resDelegateSSO.deviceIdOrProviderId).willEqual('google');
|
|
42
|
-
// Sad paths: invalid token casing or hyphen counts
|
|
43
|
-
iReckon(sir, validateKeystoneNameSchema('alice-sync-dev-123').valid).isGonnaBeFalse(); // 4 parts
|
|
44
|
-
iReckon(sir, validateKeystoneNameSchema('Alice-sync-dev123').valid).isGonnaBeFalse(); // Uppercase
|
|
45
|
-
iReckon(sir, validateKeystoneNameSchema('alice_bob').valid).isGonnaBeFalse(); // Underscore not allowed in flatcase token
|
|
46
|
-
});
|
|
47
|
-
await ifWe(sir, 'validate native and foreign challenge pool IDs', async () => {
|
|
48
|
-
// Happy path native pools
|
|
49
|
-
const resManage = validateChallengePoolIdSchema('manage');
|
|
50
|
-
iReckon(sir, resManage.valid).isGonnaBeTrue();
|
|
51
|
-
iReckon(sir, resManage.isForeign).isGonnaBeFalse();
|
|
52
|
-
const resDefault = validateChallengePoolIdSchema('default');
|
|
53
|
-
iReckon(sir, resDefault.valid).isGonnaBeTrue();
|
|
54
|
-
iReckon(sir, resDefault.isForeign).isGonnaBeFalse();
|
|
55
|
-
// Happy path custodial foreign pool
|
|
56
|
-
const resForeign = validateChallengePoolIdSchema('custodian-manage-google');
|
|
57
|
-
iReckon(sir, resForeign.valid).isGonnaBeTrue();
|
|
58
|
-
iReckon(sir, resForeign.isForeign).isGonnaBeTrue();
|
|
59
|
-
iReckon(sir, resForeign.who).willEqual('custodian');
|
|
60
|
-
iReckon(sir, resForeign.what).willEqual('manage');
|
|
61
|
-
iReckon(sir, resForeign.providerId).willEqual('google');
|
|
62
|
-
// Sad paths: invalid who/what/providerId
|
|
63
|
-
iReckon(sir, validateChallengePoolIdSchema('user-manage-google').valid).isGonnaBeFalse(); // who must be 'custodian'
|
|
64
|
-
iReckon(sir, validateChallengePoolIdSchema('custodian-invalidverb-google').valid).isGonnaBeFalse(); // invalid verb
|
|
65
|
-
iReckon(sir, validateChallengePoolIdSchema('custodian-manage-Google').valid).isGonnaBeFalse(); // non-flatcase providerId
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
//# sourceMappingURL=keystone-schema-helpers.respec.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keystone-schema-helpers.respec.mjs","sourceRoot":"","sources":["../../src/serve-gib/keystone-schema-helpers.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-helper.respec.d.mts","sourceRoot":"","sources":["../../src/serve-gib/path-helper.respec.mts"],"names":[],"mappings":""}
|