@ibgib/node-gib 0.0.9 → 0.0.13
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/dist/assumptions.respec.mjs.map +1 -1
- package/dist/email/aws/aws-sigv4-helper.d.mts +26 -0
- package/dist/email/aws/aws-sigv4-helper.d.mts.map +1 -0
- package/dist/email/aws/aws-sigv4-helper.mjs +94 -0
- package/dist/email/aws/aws-sigv4-helper.mjs.map +1 -0
- package/dist/email/aws/email-receiver-aws.d.mts +13 -0
- package/dist/email/aws/email-receiver-aws.d.mts.map +1 -0
- package/dist/email/aws/email-receiver-aws.mjs +97 -0
- package/dist/email/aws/email-receiver-aws.mjs.map +1 -0
- package/dist/email/aws/email-sender-aws.d.mts +23 -0
- package/dist/email/aws/email-sender-aws.d.mts.map +1 -0
- package/dist/email/aws/email-sender-aws.mjs +106 -0
- package/dist/email/aws/email-sender-aws.mjs.map +1 -0
- package/dist/email/aws/index.d.mts +7 -0
- package/dist/email/aws/index.d.mts.map +1 -0
- package/dist/email/aws/index.mjs +7 -0
- package/dist/email/aws/index.mjs.map +1 -0
- package/dist/email/email-constants.d.mts +15 -0
- package/dist/email/email-constants.d.mts.map +1 -0
- package/dist/email/email-constants.mjs +15 -0
- package/dist/email/email-constants.mjs.map +1 -0
- package/dist/email/email-helpers.d.mts +35 -0
- package/dist/email/email-helpers.d.mts.map +1 -0
- package/dist/email/email-helpers.mjs +144 -0
- package/dist/email/email-helpers.mjs.map +1 -0
- package/dist/email/email-receiver.d.mts +12 -0
- package/dist/email/email-receiver.d.mts.map +1 -0
- package/dist/email/email-receiver.mjs +23 -0
- package/dist/email/email-receiver.mjs.map +1 -0
- package/dist/email/email-sender.d.mts +13 -0
- package/dist/email/email-sender.d.mts.map +1 -0
- package/dist/email/email-sender.mjs +35 -0
- package/dist/email/email-sender.mjs.map +1 -0
- package/dist/email/email-service.respec.d.mts +2 -0
- package/dist/email/email-service.respec.d.mts.map +1 -0
- package/dist/email/email-service.respec.mjs +115 -0
- package/dist/email/email-service.respec.mjs.map +1 -0
- package/dist/email/email-types.d.mts +53 -0
- package/dist/email/email-types.d.mts.map +1 -0
- package/dist/email/email-types.mjs +5 -0
- package/dist/email/email-types.mjs.map +1 -0
- package/dist/email/index.d.mts +11 -0
- package/dist/email/index.d.mts.map +1 -0
- package/dist/email/index.mjs +11 -0
- package/dist/email/index.mjs.map +1 -0
- package/dist/email/mock/email-sender-mock.d.mts +20 -0
- package/dist/email/mock/email-sender-mock.d.mts.map +1 -0
- package/dist/email/mock/email-sender-mock.mjs +47 -0
- package/dist/email/mock/email-sender-mock.mjs.map +1 -0
- package/dist/email/mock/index.d.mts +5 -0
- package/dist/email/mock/index.d.mts.map +1 -0
- package/dist/email/mock/index.mjs +5 -0
- package/dist/email/mock/index.mjs.map +1 -0
- package/dist/index.d.mts +13 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +14 -0
- package/dist/index.mjs.map +1 -0
- package/dist/respec-gib.node.mjs +3 -4
- package/dist/respec-gib.node.mjs.map +1 -1
- package/dist/serve-gib/bootstrap-helper.d.mts +27 -0
- package/dist/serve-gib/bootstrap-helper.d.mts.map +1 -0
- package/dist/serve-gib/bootstrap-helper.mjs +116 -0
- package/dist/serve-gib/bootstrap-helper.mjs.map +1 -0
- package/dist/serve-gib/bootstrap-helper.respec.d.mts +2 -0
- package/dist/serve-gib/bootstrap-helper.respec.d.mts.map +1 -0
- package/dist/serve-gib/bootstrap-helper.respec.mjs +85 -0
- package/dist/serve-gib/bootstrap-helper.respec.mjs.map +1 -0
- package/dist/serve-gib/constants.d.mts +2 -0
- package/dist/serve-gib/constants.d.mts.map +1 -0
- package/dist/serve-gib/constants.mjs +2 -0
- package/dist/serve-gib/constants.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/debug/ws-echo.handler.d.mts +39 -0
- package/dist/serve-gib/handlers/api/debug/ws-echo.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/debug/ws-echo.handler.mjs +99 -0
- package/dist/serve-gib/handlers/api/debug/ws-echo.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-inbound.handler.d.mts +25 -0
- package/dist/serve-gib/handlers/api/email/email-inbound.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-inbound.handler.mjs +54 -0
- package/dist/serve-gib/handlers/api/email/email-inbound.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.d.mts +24 -0
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs +72 -0
- package/dist/serve-gib/handlers/api/email/email-outbound.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/health.handler.d.mts +14 -0
- package/dist/serve-gib/handlers/api/health.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/health.handler.mjs +21 -0
- package/dist/serve-gib/handlers/api/health.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/health.respec.d.mts +2 -0
- package/dist/serve-gib/handlers/api/health.respec.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/health.respec.mjs +47 -0
- package/dist/serve-gib/handlers/api/health.respec.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts +41 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs +34 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib-handler-types.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts +26 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs +179 -0
- package/dist/serve-gib/handlers/api/ibgib/ibgib.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.d.mts +23 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs +52 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-check-email.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.d.mts +44 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs +127 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-evolve.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.d.mts +45 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs +159 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-genesis.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.d.mts +25 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.mjs +183 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts +2 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs +98 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-get.respec.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.d.mts +22 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.mjs +19 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-handler-types.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.d.mts +19 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs +82 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-lookup.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.d.mts +20 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs +77 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts +2 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs +131 -0
- package/dist/serve-gib/handlers/api/keystone/keystone-post.respec.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.d.mts +23 -0
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs +62 -0
- package/dist/serve-gib/handlers/api/keystone/sso-config.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.d.mts +23 -0
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs +118 -0
- package/dist/serve-gib/handlers/api/keystone/sso-link.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts +24 -0
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs +160 -0
- package/dist/serve-gib/handlers/api/keystone/sso-login.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/error-handler.d.mts +14 -0
- package/dist/serve-gib/handlers/error-handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/error-handler.mjs +35 -0
- package/dist/serve-gib/handlers/error-handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/handler-base.d.mts +129 -0
- package/dist/serve-gib/handlers/handler-base.d.mts.map +1 -0
- package/dist/serve-gib/handlers/handler-base.mjs +402 -0
- package/dist/serve-gib/handlers/handler-base.mjs.map +1 -0
- package/dist/serve-gib/handlers/static-handler.d.mts +17 -0
- package/dist/serve-gib/handlers/static-handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/static-handler.mjs +85 -0
- package/dist/serve-gib/handlers/static-handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.d.mts +35 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.d.mts.map +1 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.mjs +219 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade-handler-base.mjs.map +1 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade.handler.d.mts +21 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade.handler.d.mts.map +1 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade.handler.mjs +21 -0
- package/dist/serve-gib/handlers/ws/sync-upgrade.handler.mjs.map +1 -0
- package/dist/serve-gib/handlers/ws/ws-helper.d.mts +29 -0
- package/dist/serve-gib/handlers/ws/ws-helper.d.mts.map +1 -0
- package/dist/serve-gib/handlers/ws/ws-helper.mjs +195 -0
- package/dist/serve-gib/handlers/ws/ws-helper.mjs.map +1 -0
- package/dist/serve-gib/handlers/ws/ws-types.d.mts +32 -0
- package/dist/serve-gib/handlers/ws/ws-types.d.mts.map +1 -0
- package/dist/serve-gib/handlers/ws/ws-types.mjs +2 -0
- package/dist/serve-gib/handlers/ws/ws-types.mjs.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-constants.d.mts +4 -0
- package/dist/serve-gib/identity-index/identity-index-constants.d.mts.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-constants.mjs +4 -0
- package/dist/serve-gib/identity-index/identity-index-constants.mjs.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-helpers.d.mts +35 -0
- package/dist/serve-gib/identity-index/identity-index-helpers.d.mts.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-helpers.mjs +69 -0
- package/dist/serve-gib/identity-index/identity-index-helpers.mjs.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-service.d.mts +41 -0
- package/dist/serve-gib/identity-index/identity-index-service.d.mts.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-service.mjs +86 -0
- package/dist/serve-gib/identity-index/identity-index-service.mjs.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts +2 -0
- package/dist/serve-gib/identity-index/identity-index-service.respec.d.mts.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-service.respec.mjs +109 -0
- package/dist/serve-gib/identity-index/identity-index-service.respec.mjs.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-types.d.mts +31 -0
- package/dist/serve-gib/identity-index/identity-index-types.d.mts.map +1 -0
- package/dist/serve-gib/identity-index/identity-index-types.mjs +2 -0
- package/dist/serve-gib/identity-index/identity-index-types.mjs.map +1 -0
- package/dist/serve-gib/index.d.mts +50 -0
- package/dist/serve-gib/index.d.mts.map +1 -0
- package/dist/serve-gib/index.mjs +80 -0
- package/dist/serve-gib/index.mjs.map +1 -0
- package/dist/serve-gib/keystone-schema-helpers.d.mts +50 -0
- package/dist/serve-gib/keystone-schema-helpers.d.mts.map +1 -0
- package/dist/serve-gib/keystone-schema-helpers.mjs +99 -0
- package/dist/serve-gib/keystone-schema-helpers.mjs.map +1 -0
- package/dist/serve-gib/keystone-schema-helpers.respec.d.mts +2 -0
- package/dist/serve-gib/keystone-schema-helpers.respec.d.mts.map +1 -0
- package/dist/serve-gib/keystone-schema-helpers.respec.mjs +68 -0
- package/dist/serve-gib/keystone-schema-helpers.respec.mjs.map +1 -0
- package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.d.mts +38 -0
- package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.d.mts.map +1 -0
- package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mjs +85 -0
- package/dist/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mjs.map +1 -0
- package/dist/serve-gib/path-constants.d.mts +102 -0
- package/dist/serve-gib/path-constants.d.mts.map +1 -0
- package/dist/serve-gib/path-constants.mjs +107 -0
- package/dist/serve-gib/path-constants.mjs.map +1 -0
- package/dist/serve-gib/path-helper.d.mts +23 -0
- package/dist/serve-gib/path-helper.d.mts.map +1 -0
- package/dist/serve-gib/path-helper.mjs +107 -0
- package/dist/serve-gib/path-helper.mjs.map +1 -0
- package/dist/serve-gib/path-helper.respec.d.mts +2 -0
- package/dist/serve-gib/path-helper.respec.d.mts.map +1 -0
- package/dist/serve-gib/path-helper.respec.mjs +83 -0
- package/dist/serve-gib/path-helper.respec.mjs.map +1 -0
- package/dist/serve-gib/serve-gib-helpers.d.mts +14 -0
- package/dist/serve-gib/serve-gib-helpers.d.mts.map +1 -0
- package/dist/serve-gib/serve-gib-helpers.mjs +30 -0
- package/dist/serve-gib/serve-gib-helpers.mjs.map +1 -0
- package/dist/serve-gib/serve-gib-v1.d.mts +40 -0
- package/dist/serve-gib/serve-gib-v1.d.mts.map +1 -0
- package/dist/serve-gib/serve-gib-v1.mjs +157 -0
- package/dist/serve-gib/serve-gib-v1.mjs.map +1 -0
- package/dist/serve-gib/serve-gib.respec.d.mts +2 -0
- package/dist/serve-gib/serve-gib.respec.d.mts.map +1 -0
- package/dist/serve-gib/serve-gib.respec.mjs +85 -0
- package/dist/serve-gib/serve-gib.respec.mjs.map +1 -0
- package/dist/serve-gib/server-constants.d.mts +3 -0
- package/dist/serve-gib/server-constants.d.mts.map +1 -0
- package/dist/serve-gib/server-constants.mjs +3 -0
- package/dist/serve-gib/server-constants.mjs.map +1 -0
- package/dist/serve-gib/types.d.mts +94 -0
- package/dist/serve-gib/types.d.mts.map +1 -0
- package/dist/serve-gib/types.mjs +7 -0
- package/dist/serve-gib/types.mjs.map +1 -0
- package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mjs.map +1 -1
- package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts +5 -0
- package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts.map +1 -1
- package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs +37 -0
- package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs +1 -1
- package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.d.mts.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.d.mts.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.d.mts.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +1 -1
- package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +1 -1
- package/package.json +2 -2
- package/src/email/aws/aws-sigv4-helper.mts +139 -0
- package/src/email/aws/email-receiver-aws.mts +107 -0
- package/src/email/aws/email-sender-aws.mts +130 -0
- package/src/email/aws/index.mts +7 -0
- package/src/email/email-constants.mts +18 -0
- package/src/email/email-helpers.mts +160 -0
- package/src/email/email-receiver.mts +29 -0
- package/src/email/email-sender.mts +44 -0
- package/src/email/email-service.respec.mts +134 -0
- package/src/email/email-types.mts +59 -0
- package/src/email/index.mts +11 -0
- package/src/email/mock/email-sender-mock.mts +54 -0
- package/src/email/mock/index.mts +5 -0
- package/src/index.mts +41 -0
- package/src/respec-gib.node.mts +4 -5
- package/src/serve-gib/CHANGELOG.md +34 -0
- package/src/serve-gib/README.md +77 -0
- package/src/serve-gib/SERVE_REFACTOR_IMPLEMENTATION.md +112 -0
- package/src/serve-gib/bootstrap-helper.mts +141 -0
- package/src/serve-gib/bootstrap-helper.respec.mts +100 -0
- package/src/serve-gib/constants.mts +1 -0
- package/src/serve-gib/handlers/api/debug/ws-echo.handler.mts +105 -0
- package/src/serve-gib/handlers/api/email/email-inbound.handler.mts +67 -0
- package/src/serve-gib/handlers/api/email/email-outbound.handler.mts +82 -0
- package/src/serve-gib/handlers/api/health.handler.mts +23 -0
- package/src/serve-gib/handlers/api/health.respec.mts +51 -0
- package/src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts +49 -0
- package/src/serve-gib/handlers/api/ibgib/ibgib.handler.mts +176 -0
- package/src/serve-gib/handlers/api/keystone/keystone-check-email.handler.mts +60 -0
- package/src/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts +150 -0
- package/src/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts +171 -0
- package/src/serve-gib/handlers/api/keystone/keystone-get.handler.mts +198 -0
- package/src/serve-gib/handlers/api/keystone/keystone-get.respec.mts +106 -0
- package/src/serve-gib/handlers/api/keystone/keystone-handler-types.mts +29 -0
- package/src/serve-gib/handlers/api/keystone/keystone-lookup.handler.mts +95 -0
- package/src/serve-gib/handlers/api/keystone/keystone-post.handler.mts +75 -0
- package/src/serve-gib/handlers/api/keystone/keystone-post.respec.mts +130 -0
- package/src/serve-gib/handlers/api/keystone/sso-config.handler.mts +66 -0
- package/src/serve-gib/handlers/api/keystone/sso-link.handler.mts +140 -0
- package/src/serve-gib/handlers/api/keystone/sso-login.handler.mts +190 -0
- package/src/serve-gib/handlers/error-handler.mts +36 -0
- package/src/serve-gib/handlers/handler-base.mts +383 -0
- package/src/serve-gib/handlers/static-handler.mts +83 -0
- package/src/serve-gib/handlers/ws/sync-upgrade-handler-base.mts +233 -0
- package/src/serve-gib/handlers/ws/sync-upgrade.handler.mts +24 -0
- package/src/serve-gib/handlers/ws/ws-helper.mts +216 -0
- package/src/serve-gib/handlers/ws/ws-types.mts +53 -0
- package/src/serve-gib/identity-index/identity-index-constants.mts +3 -0
- package/src/serve-gib/identity-index/identity-index-helpers.mts +85 -0
- package/src/serve-gib/identity-index/identity-index-service.mts +109 -0
- package/src/serve-gib/identity-index/identity-index-service.respec.mts +135 -0
- package/src/serve-gib/identity-index/identity-index-types.mts +33 -0
- package/src/serve-gib/index.mts +92 -0
- package/src/serve-gib/keystone-schema-helpers.mts +120 -0
- package/src/serve-gib/keystone-schema-helpers.respec.mts +85 -0
- package/src/serve-gib/metaspace-nodeindexedspace/metaspace-nodeindexedspace.mts +109 -0
- package/src/serve-gib/path-constants.mts +119 -0
- package/src/serve-gib/path-helper.mts +101 -0
- package/src/serve-gib/path-helper.respec.mts +99 -0
- package/src/serve-gib/serve-gib-helpers.mts +32 -0
- package/src/serve-gib/serve-gib-v1.mts +172 -0
- package/src/serve-gib/serve-gib.respec.mts +90 -0
- package/src/serve-gib/server-constants.mts +2 -0
- package/src/serve-gib/types.mts +102 -0
- package/src/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mts +41 -0
- package/src/witness/space/node-filesystem-space/node-filesystem-space-helper.mts +1 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/email/email-outbound
|
|
3
|
+
*
|
|
4
|
+
* Handler for POST /api/email/send
|
|
5
|
+
*/
|
|
6
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
7
|
+
import { EmailSenderAws } from '../../../../email/aws/email-sender-aws.mjs';
|
|
8
|
+
import { EmailSenderMock } from '../../../../email/mock/email-sender-mock.mjs';
|
|
9
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
10
|
+
import { ServeGibHandlerBase } from '../../handler-base.mjs';
|
|
11
|
+
/**
|
|
12
|
+
* POST /api/email/send
|
|
13
|
+
* Validates request payload and dispatches outbound email via the active EmailSender driver.
|
|
14
|
+
*/
|
|
15
|
+
export class EmailOutboundHandler extends ServeGibHandlerBase {
|
|
16
|
+
lc = `[${EmailOutboundHandler.name}]`;
|
|
17
|
+
method = 'POST';
|
|
18
|
+
regex = API_PATH_REGEXES.EMAIL_SEND;
|
|
19
|
+
sender;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
super();
|
|
22
|
+
if (options.sender) {
|
|
23
|
+
this.sender = options.sender;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const mode = process.env.EMAIL_MODE || 'mock';
|
|
27
|
+
if (mode === 'aws') {
|
|
28
|
+
this.sender = new EmailSenderAws({
|
|
29
|
+
accessKeyId: process.env.AWS_ACCESS_KEY_ID || '',
|
|
30
|
+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || '',
|
|
31
|
+
region: process.env.AWS_REGION || 'us-east-1',
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.sender = new EmailSenderMock();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async handleRouteImpl(reqCtx) {
|
|
40
|
+
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
41
|
+
try {
|
|
42
|
+
if (reqCtx.method !== 'POST') {
|
|
43
|
+
return this.error(405, 'Method Not Allowed');
|
|
44
|
+
}
|
|
45
|
+
if (!reqCtx.body) {
|
|
46
|
+
return this.error(400, 'Request body is empty');
|
|
47
|
+
}
|
|
48
|
+
let emailData;
|
|
49
|
+
try {
|
|
50
|
+
emailData = JSON.parse(reqCtx.body);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return this.error(400, 'Request body must be valid JSON');
|
|
54
|
+
}
|
|
55
|
+
const sendResult = await this.sender.sendEmail(emailData);
|
|
56
|
+
if (sendResult.success) {
|
|
57
|
+
console.log(`${lc} Successfully dispatched outbound email msgId: ${sendResult.messageId} (I: 0123456789abcdef0a1b2c3d4e5f6a7b)`);
|
|
58
|
+
return this.ok(sendResult, sendResult.statusCode || 200);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.error(`${lc} Failed to send email: ${sendResult.error} (E: 123456789abcdef1a2b3c4d5e6f7a8b9)`);
|
|
62
|
+
return this.error(sendResult.statusCode || 500, sendResult.error || 'Failed to send email');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const emsg = extractErrorMsg(error);
|
|
67
|
+
console.error(`${lc} Outbound email error: ${emsg} (E: 23456789abcdef2a3b4c5d6e7f8a9b0c)`);
|
|
68
|
+
return this.error(500, `Outbound email error: ${emsg}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=email-outbound.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-outbound.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/email/email-outbound.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/health
|
|
3
|
+
*/
|
|
4
|
+
import { ServeGibHandlerBase } from '../handler-base.mjs';
|
|
5
|
+
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../types.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* GET /api/health
|
|
8
|
+
*/
|
|
9
|
+
export declare class HealthHandler extends ServeGibHandlerBase {
|
|
10
|
+
protected method: ServeGibHttpMethod;
|
|
11
|
+
protected regex: RegExp;
|
|
12
|
+
protected handleRouteImpl(reqCtx: RequestContext): Promise<ResponseResult | undefined>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=health.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.handler.d.mts","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/api/health.handler.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrF;;GAEG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;IAClD,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,SAA2B;IAEnD,UAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAM3F;CACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/health
|
|
3
|
+
*/
|
|
4
|
+
import { ServeGibHandlerBase } from '../handler-base.mjs';
|
|
5
|
+
import { API_PATH_REGEXES } from '../../path-constants.mjs';
|
|
6
|
+
/**
|
|
7
|
+
* GET /api/health
|
|
8
|
+
*/
|
|
9
|
+
export class HealthHandler extends ServeGibHandlerBase {
|
|
10
|
+
method = 'ALL';
|
|
11
|
+
regex = API_PATH_REGEXES.HEALTH;
|
|
12
|
+
async handleRouteImpl(reqCtx) {
|
|
13
|
+
if (reqCtx.method === 'GET') {
|
|
14
|
+
return this.ok({ status: 'ok', timestamp: new Date().toISOString() });
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error(`info.method !== 'GET' in ${HealthHandler.name} (E: bfff3c547b5827ca7845277804057f26)`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=health.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.handler.mjs","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/api/health.handler.mts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,mBAAmB;IAC/B,MAAM,GAAuB,KAAK,CAAC;IACnC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEzC,KAAK,CAAC,eAAe,CAAC,MAAsB;QAClD,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,aAAa,CAAC,IAAI,wCAAwC,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.respec.d.mts","sourceRoot":"","sources":["../../../../src/serve-gib/handlers/api/health.respec.mts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IbGibAddr } from "@ibgib/ts-gib/dist/types.mjs";
|
|
2
|
+
import { DomainInfo } from "../../../types.mjs";
|
|
3
|
+
export interface IbGibParams {
|
|
4
|
+
domainInfo: DomainInfo;
|
|
5
|
+
ibGibIb: string;
|
|
6
|
+
ibGibGib: string;
|
|
7
|
+
ibGibAddr: IbGibAddr;
|
|
8
|
+
}
|
|
9
|
+
export declare const DEFAULT_QUERY_PARAMS_GET_IBGIB: {
|
|
10
|
+
/**
|
|
11
|
+
* If true, will get the latest ibgib.
|
|
12
|
+
*/
|
|
13
|
+
getLatest: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* If true, will get the ibgib's entire dependency graph
|
|
16
|
+
*/
|
|
17
|
+
getGraph: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* If true, returns only the resolved address (addr) rather than the full
|
|
20
|
+
* ibgib or graph body. Useful for a lightweight "tip check" before initiating
|
|
21
|
+
* a full sync: client compares `latestAddr` with its locally known addr.
|
|
22
|
+
*
|
|
23
|
+
* ## notes
|
|
24
|
+
*
|
|
25
|
+
* Typically combined with `getLatest: true` to ask "what is the server's
|
|
26
|
+
* current tip for this timeline?" without paying the cost of fetching the
|
|
27
|
+
* full ibgib body or graph.
|
|
28
|
+
*
|
|
29
|
+
* When `getLatest: false` and `addrOnly: true`, returns the addr as-is
|
|
30
|
+
* (i.e., confirms the given addr exists on the server).
|
|
31
|
+
*/
|
|
32
|
+
addrOnly: boolean;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* @see {@link DEFAULT_QUERY_PARAMS_GET_IBGIB} key/values for jsdocs
|
|
36
|
+
*/
|
|
37
|
+
export type IbGibGetQueryParams = Partial<typeof DEFAULT_QUERY_PARAMS_GET_IBGIB>;
|
|
38
|
+
export type KNOWN_QUERY_PARAMS_IBGIB_GET = keyof IbGibGetQueryParams;
|
|
39
|
+
export declare const KNOWN_QUERY_PARAMS_IBGIB_GET: KNOWN_QUERY_PARAMS_IBGIB_GET[];
|
|
40
|
+
export declare function isKnownQueryParamsKey_IbGibGet(key: any): key is KNOWN_QUERY_PARAMS_IBGIB_GET;
|
|
41
|
+
//# sourceMappingURL=ibgib-handler-types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibgib-handler-types.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,WAAW,WAAW;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACxB;AAGD,eAAO,MAAM,8BAA8B;IACvC;;OAEG;IACH,SAAS;IACT;;OAEG;IACH,QAAQ;IACR;;;;;;;;;;;;;OAaG;IACH,QAAQ;CACX,CAAC;AACF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACjF,MAAM,MAAM,4BAA4B,GAAG,MAAM,mBAAmB,CAAC;AACrE,eAAO,MAAM,4BAA4B,EAAkD,4BAA4B,EAAE,CAAC;AAC1H,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,4BAA4B,CAI5F"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// #region IbGibGetQueryParams
|
|
2
|
+
export const DEFAULT_QUERY_PARAMS_GET_IBGIB = {
|
|
3
|
+
/**
|
|
4
|
+
* If true, will get the latest ibgib.
|
|
5
|
+
*/
|
|
6
|
+
getLatest: false, // Default to false for regular ibgibs
|
|
7
|
+
/**
|
|
8
|
+
* If true, will get the ibgib's entire dependency graph
|
|
9
|
+
*/
|
|
10
|
+
getGraph: false, // Default to false for regular ibgibs
|
|
11
|
+
/**
|
|
12
|
+
* If true, returns only the resolved address (addr) rather than the full
|
|
13
|
+
* ibgib or graph body. Useful for a lightweight "tip check" before initiating
|
|
14
|
+
* a full sync: client compares `latestAddr` with its locally known addr.
|
|
15
|
+
*
|
|
16
|
+
* ## notes
|
|
17
|
+
*
|
|
18
|
+
* Typically combined with `getLatest: true` to ask "what is the server's
|
|
19
|
+
* current tip for this timeline?" without paying the cost of fetching the
|
|
20
|
+
* full ibgib body or graph.
|
|
21
|
+
*
|
|
22
|
+
* When `getLatest: false` and `addrOnly: true`, returns the addr as-is
|
|
23
|
+
* (i.e., confirms the given addr exists on the server).
|
|
24
|
+
*/
|
|
25
|
+
addrOnly: false,
|
|
26
|
+
};
|
|
27
|
+
export const KNOWN_QUERY_PARAMS_IBGIB_GET = Object.keys(DEFAULT_QUERY_PARAMS_GET_IBGIB);
|
|
28
|
+
export function isKnownQueryParamsKey_IbGibGet(key) {
|
|
29
|
+
return !!key && typeof key === 'string' ?
|
|
30
|
+
KNOWN_QUERY_PARAMS_IBGIB_GET.includes(key) :
|
|
31
|
+
false;
|
|
32
|
+
}
|
|
33
|
+
// #endregion IbGibGetQueryParams
|
|
34
|
+
//# sourceMappingURL=ibgib-handler-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibgib-handler-types.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib-handler-types.mts"],"names":[],"mappings":"AAWA,8BAA8B;AAC9B,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC1C;;OAEG;IACH,SAAS,EAAE,KAAK,EAAE,sCAAsC;IACxD;;OAEG;IACH,QAAQ,EAAE,KAAK,EAAE,sCAAsC;IACvD;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,KAAK;CAClB,CAAC;AAMF,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAmC,CAAC;AAC1H,MAAM,UAAU,8BAA8B,CAAC,GAAQ;IACnD,OAAO,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;QACrC,4BAA4B,CAAC,QAAQ,CAAC,GAAU,CAAC,CAAC,CAAC;QACnD,KAAK,CAAC;AACd,CAAC;AACD,iCAAiC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/ibgib
|
|
3
|
+
*/
|
|
4
|
+
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
5
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
6
|
+
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
7
|
+
import { IbGibGetQueryParams, IbGibParams } from './ibgib-handler-types.mjs';
|
|
8
|
+
export interface IbGibGraphResponseBody {
|
|
9
|
+
addr: string;
|
|
10
|
+
count: number;
|
|
11
|
+
graph: Record<string, IbGib_V1>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* GET /api/ibgib/:domainAddr/:ibGibAddr
|
|
15
|
+
*/
|
|
16
|
+
export declare class IbGibHandler extends ServeGibHandlerWithMetaspaceBase<IbGibParams, IbGibGetQueryParams> {
|
|
17
|
+
protected lc: string;
|
|
18
|
+
protected method: ServeGibHttpMethod;
|
|
19
|
+
protected regex: RegExp;
|
|
20
|
+
protected parseParamsImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<IbGibParams | undefined>;
|
|
21
|
+
protected validateQueryParams({ queryParams }: {
|
|
22
|
+
queryParams: any;
|
|
23
|
+
}): Promise<string[]>;
|
|
24
|
+
protected handleRouteImpl(reqCtx: RequestContext<IbGibParams, IbGibGetQueryParams>): Promise<ResponseResult | undefined>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ibgib.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibgib.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib.handler.mts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxF,OAAO,EAC6B,mBAAmB,EAAE,WAAW,EAEnE,MAAM,2BAA2B,CAAC;AAGnC,MAAM,WAAW,sBAAsB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACnC;AAID;;GAEG;AACH,qBAAa,YAAa,SAAQ,gCAAgC,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAChG,UAAmB,EAAE,EAAE,MAAM,CAA4B;IACzD,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,SAA+B;IAEvD,UAAyB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAsBnI;IAED,UAAyB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmCtG;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA8E7H;CACJ"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/ibgib
|
|
3
|
+
*/
|
|
4
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
5
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
6
|
+
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
7
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
8
|
+
import { validateAddressSegment } from '../../../path-helper.mjs';
|
|
9
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
10
|
+
import { DEFAULT_QUERY_PARAMS_GET_IBGIB, isKnownQueryParamsKey_IbGibGet, KNOWN_QUERY_PARAMS_IBGIB_GET } from './ibgib-handler-types.mjs';
|
|
11
|
+
import { validateAndCoerceBooleanQueryParam } from '../../../serve-gib-helpers.mjs';
|
|
12
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
13
|
+
/**
|
|
14
|
+
* GET /api/ibgib/:domainAddr/:ibGibAddr
|
|
15
|
+
*/
|
|
16
|
+
export class IbGibHandler extends ServeGibHandlerWithMetaspaceBase {
|
|
17
|
+
lc = `[${IbGibHandler.name}]`;
|
|
18
|
+
method = 'GET';
|
|
19
|
+
regex = API_PATH_REGEXES.IBGIB_ADDR;
|
|
20
|
+
async parseParamsImpl(reqCtx) {
|
|
21
|
+
const lc = `${this.lc}[${this.parseParamsImpl.name}]`;
|
|
22
|
+
try {
|
|
23
|
+
if (logalot) {
|
|
24
|
+
console.log(`${lc} starting...`);
|
|
25
|
+
}
|
|
26
|
+
const match = reqCtx.pathname.match(this.regex);
|
|
27
|
+
if (!match) {
|
|
28
|
+
throw new Error(`(UNEXPECTED) match falsy for regex? at this point, we have passed canHandleRoute, so this should parse correctly. (E: 8ce0810a3a88f420639bf8286df1d826)`);
|
|
29
|
+
}
|
|
30
|
+
const domainIb = decodeURIComponent(match[1]);
|
|
31
|
+
const domainGib = decodeURIComponent(match[2]);
|
|
32
|
+
const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
|
|
33
|
+
const ibGibIb = decodeURIComponent(match[3]);
|
|
34
|
+
const ibGibGib = decodeURIComponent(match[4]);
|
|
35
|
+
const ibGibAddr = getIbGibAddr({ ib: ibGibIb, gib: ibGibGib });
|
|
36
|
+
return {
|
|
37
|
+
ibGibIb, ibGibGib, ibGibAddr,
|
|
38
|
+
domainInfo: this.getDomainInfo({ domainAddr }),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
if (logalot) {
|
|
47
|
+
console.log(`${lc} complete.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async validateQueryParams({ queryParams }) {
|
|
52
|
+
const lc = `${this.lc}[${this.validateQueryParams.name}]`;
|
|
53
|
+
try {
|
|
54
|
+
if (logalot) {
|
|
55
|
+
console.log(`${lc} starting...`);
|
|
56
|
+
}
|
|
57
|
+
const errors = [];
|
|
58
|
+
// strict checking
|
|
59
|
+
const queryParamsKeys = Object.keys(queryParams);
|
|
60
|
+
const invalidKeys = queryParamsKeys.filter(x => !isKnownQueryParamsKey_IbGibGet(x));
|
|
61
|
+
if (invalidKeys.length > 0) {
|
|
62
|
+
throw new Error(`invalid query params keys: ${invalidKeys.join(', ')}. valid query params keys: ${KNOWN_QUERY_PARAMS_IBGIB_GET.join(', ')} (E: b7e8a9f2c1d34e56b89a01d4f2e7c326)`);
|
|
63
|
+
}
|
|
64
|
+
const ValidationFns = {
|
|
65
|
+
getLatest: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getLatest', errors),
|
|
66
|
+
getGraph: async () => validateAndCoerceBooleanQueryParam(queryParams, 'getGraph', errors),
|
|
67
|
+
addrOnly: async () => validateAndCoerceBooleanQueryParam(queryParams, 'addrOnly', errors),
|
|
68
|
+
};
|
|
69
|
+
// execute all validation functions
|
|
70
|
+
for (const fn of Object.values(ValidationFns)) {
|
|
71
|
+
await fn();
|
|
72
|
+
}
|
|
73
|
+
return errors;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
if (logalot) {
|
|
81
|
+
console.log(`${lc} complete.`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async handleRouteImpl(reqCtx) {
|
|
86
|
+
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
87
|
+
try {
|
|
88
|
+
if (logalot) {
|
|
89
|
+
console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`);
|
|
90
|
+
}
|
|
91
|
+
if (logalot) {
|
|
92
|
+
console.log(`${lc} starting... (I: 03d6a889b1f8af879c0f7158a3b3de26)`);
|
|
93
|
+
}
|
|
94
|
+
if (!reqCtx.metaspace) {
|
|
95
|
+
throw new Error(`(UNEXPECTED) metaspace falsy? we should have initialized it by now since this is a domain-dependent handler (E: 864661c668d2aa1918b7ee677a7d9c26)`);
|
|
96
|
+
}
|
|
97
|
+
const { ibGibIb, ibGibGib } = reqCtx.params;
|
|
98
|
+
if (!ibGibIb || !ibGibGib) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
// Reconstruct addr from params
|
|
102
|
+
const rawAddr = `${ibGibIb}^${ibGibGib}`;
|
|
103
|
+
if (!validateAddressSegment(rawAddr))
|
|
104
|
+
return this.error(400, 'Invalid address format');
|
|
105
|
+
const addr = rawAddr;
|
|
106
|
+
const queryParams = {
|
|
107
|
+
...DEFAULT_QUERY_PARAMS_GET_IBGIB,
|
|
108
|
+
...(reqCtx.queryParams ?? {}),
|
|
109
|
+
};
|
|
110
|
+
const { getLatest, getGraph, addrOnly } = queryParams;
|
|
111
|
+
const space = await reqCtx.metaspace.getLocalUserSpace({ lock: false });
|
|
112
|
+
if (!space) {
|
|
113
|
+
throw new Error(`(UNEXPECTED) couldn't get default local user space? (E: ec6161ea3a08892ad8bfd1b7b0d79826)`);
|
|
114
|
+
}
|
|
115
|
+
let addr_latest = addr;
|
|
116
|
+
if (getLatest) {
|
|
117
|
+
const latestAddr = await reqCtx.metaspace.getLatestAddr({ addr, space });
|
|
118
|
+
if (latestAddr) {
|
|
119
|
+
addr_latest = latestAddr;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Lightweight tip-check: return only the resolved address.
|
|
123
|
+
// Client uses this to decide whether a full sync is necessary
|
|
124
|
+
// without incurring the cost of fetching the full ibgib or graph.
|
|
125
|
+
if (addrOnly && !getGraph) {
|
|
126
|
+
return this.ok({ addr: addr_latest, clientAddr: addr });
|
|
127
|
+
} /* <<<<< returns early */
|
|
128
|
+
if (getGraph) {
|
|
129
|
+
const resGraph = await reqCtx.metaspace.getDependencyGraph({
|
|
130
|
+
ibGibAddr: addr_latest,
|
|
131
|
+
space,
|
|
132
|
+
live: getLatest,
|
|
133
|
+
});
|
|
134
|
+
const addrs = Object.keys(resGraph);
|
|
135
|
+
if (addrs.length > 0) {
|
|
136
|
+
if (addrOnly) {
|
|
137
|
+
// Return only the address list for delta negotiation (smart diff):
|
|
138
|
+
// client compares these against what it already has to determine
|
|
139
|
+
// the minimal set it needs to fetch.
|
|
140
|
+
return this.ok({ addr: addr_latest, clientAddr: addr, addrs });
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const responseBody = {
|
|
144
|
+
addr: addr_latest,
|
|
145
|
+
count: addrs.length,
|
|
146
|
+
graph: resGraph
|
|
147
|
+
};
|
|
148
|
+
return this.ok(responseBody);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
return this.notFound(`Graph not found for ${addr_latest} (E: 89b259f13ae5e4f0d8287f6c0475a826)`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const resGet = await reqCtx.metaspace.get({ space, addr: addr_latest });
|
|
157
|
+
if (resGet.success && resGet.ibGibs?.length === 1) {
|
|
158
|
+
const ibGib = resGet.ibGibs[0];
|
|
159
|
+
return this.ok(ibGib);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
return this.notFound(`IbGib not found for ${addr_latest} (E: 017621e0a8086832ff06cfc884b8c426)`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (logalot) {
|
|
168
|
+
console.error(extractErrorMsg(error));
|
|
169
|
+
}
|
|
170
|
+
return this.error(500, extractErrorMsg(error));
|
|
171
|
+
}
|
|
172
|
+
finally {
|
|
173
|
+
if (logalot) {
|
|
174
|
+
console.log(`${lc} complete.`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=ibgib.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ibgib.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/ibgib/ibgib.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone/keystone-check-email.handler
|
|
3
|
+
*
|
|
4
|
+
* GET /api/keystone/check-email?email=foo@example.com
|
|
5
|
+
*
|
|
6
|
+
* Checks whether an email address is already registered in the server identity index.
|
|
7
|
+
*/
|
|
8
|
+
import { ServeGibHandlerBase } from '../../handler-base.mjs';
|
|
9
|
+
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
10
|
+
/**
|
|
11
|
+
* GET /api/keystone/check-email
|
|
12
|
+
*/
|
|
13
|
+
export declare class KeystoneCheckEmailHandler extends ServeGibHandlerBase<undefined, {
|
|
14
|
+
email?: string;
|
|
15
|
+
}> {
|
|
16
|
+
protected lc: string;
|
|
17
|
+
protected method: ServeGibHttpMethod;
|
|
18
|
+
protected regex: RegExp;
|
|
19
|
+
protected handleRouteImpl(reqCtx: RequestContext<undefined, {
|
|
20
|
+
email?: string;
|
|
21
|
+
}>): Promise<ResponseResult | undefined>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=keystone-check-email.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-check-email.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-check-email.handler.mts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxF;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,SAAS,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;IAC7F,UAAmB,EAAE,EAAE,MAAM,CAAyC;IACtE,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,SAAyC;IAEjE,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACtD,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAgCrC;CACJ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone/keystone-check-email.handler
|
|
3
|
+
*
|
|
4
|
+
* GET /api/keystone/check-email?email=foo@example.com
|
|
5
|
+
*
|
|
6
|
+
* Checks whether an email address is already registered in the server identity index.
|
|
7
|
+
*/
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
|
+
import { IdentityIndexService } from '../../../identity-index/identity-index-service.mjs';
|
|
11
|
+
import { ServeGibHandlerBase } from '../../handler-base.mjs';
|
|
12
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
13
|
+
/**
|
|
14
|
+
* GET /api/keystone/check-email
|
|
15
|
+
*/
|
|
16
|
+
export class KeystoneCheckEmailHandler extends ServeGibHandlerBase {
|
|
17
|
+
lc = `[${KeystoneCheckEmailHandler.name}]`;
|
|
18
|
+
method = 'GET';
|
|
19
|
+
regex = API_PATH_REGEXES.KEYSTONE_CHECK_EMAIL;
|
|
20
|
+
async handleRouteImpl(reqCtx) {
|
|
21
|
+
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
22
|
+
try {
|
|
23
|
+
// Anti-timing side-channel protection: add bounded random jitter delay (150ms-350ms)
|
|
24
|
+
const jitterMs = Math.floor(Math.random() * 200) + 150;
|
|
25
|
+
await new Promise(resolve => setTimeout(resolve, jitterMs));
|
|
26
|
+
const email = (reqCtx.queryParams?.email || '').trim();
|
|
27
|
+
if (!email) {
|
|
28
|
+
console.error(`${lc} Check-email request missing email query parameter.`);
|
|
29
|
+
return this.error(400, 'Query param email is required');
|
|
30
|
+
}
|
|
31
|
+
const indexService = new IdentityIndexService({ baseDir: path.join(reqCtx.dataDir, 'index') });
|
|
32
|
+
const record = await indexService.getEmailIndex({ email });
|
|
33
|
+
if (record) {
|
|
34
|
+
console.log(`${lc} Email '${email}' is already registered.`);
|
|
35
|
+
return this.ok({
|
|
36
|
+
available: false,
|
|
37
|
+
message: 'Email/Identity already registered'
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
console.log(`${lc} Email '${email}' is available.`);
|
|
41
|
+
return this.ok({
|
|
42
|
+
available: true
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const emsg = extractErrorMsg(error);
|
|
47
|
+
console.error(`${lc} ${emsg}`);
|
|
48
|
+
return this.error(500, emsg);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=keystone-check-email.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-check-email.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-check-email.handler.mts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,mBAAkD;IAC1E,EAAE,GAAW,IAAI,yBAAyB,CAAC,IAAI,GAAG,CAAC;IACnD,MAAM,GAAuB,KAAK,CAAC;IACnC,KAAK,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;IAEvD,KAAK,CAAC,eAAe,CAC3B,MAAqD;QAErD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC;YACD,qFAAqF;YACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACvD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,qDAAqD,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/F,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAE3D,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,0BAA0B,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC,EAAE,CAAC;oBACX,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,mCAAmC;iBAC/C,CAAC,CAAC;YACP,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,iBAAiB,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,EAAE,CAAC;gBACX,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone/keystone-evolve.handler
|
|
3
|
+
*
|
|
4
|
+
* PUT /api/keystone/evolve/:domainAddr
|
|
5
|
+
*
|
|
6
|
+
* Receives an evolved domain keystone (`I^I1.Itjp`) and any related
|
|
7
|
+
* ibgibs (e.g., the `S^Stjp` session keystone).
|
|
8
|
+
*
|
|
9
|
+
* Validates the evolution, verifies the `S` session keystone, and persists
|
|
10
|
+
* them to the domain metaspace to authorize the sync session.
|
|
11
|
+
*/
|
|
12
|
+
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
13
|
+
import { KeystoneIbGib_V1 } from '@ibgib/core-gib/dist/keystone/keystone-types.mjs';
|
|
14
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
15
|
+
import { ParamsWithDomain, RequestContext, ResponseResult } from '../../../types.mjs';
|
|
16
|
+
interface EvolveParams extends ParamsWithDomain {
|
|
17
|
+
domainAddr: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Body payload for the Keystone Evolve REST API request.
|
|
21
|
+
*/
|
|
22
|
+
interface EvolveBody {
|
|
23
|
+
/** The main evolved keystone frame. */
|
|
24
|
+
keystoneIbGib: KeystoneIbGib_V1;
|
|
25
|
+
/**
|
|
26
|
+
* Array of other keystone frames related to this evolution.
|
|
27
|
+
* Ephemeral session keystones for sync, or persistent delegate keystones for manage.
|
|
28
|
+
*/
|
|
29
|
+
relatedKeystoneIbGibs?: IbGib_V1[];
|
|
30
|
+
/** Optional map of providerId to token to revoke during unlinking. */
|
|
31
|
+
revokeTokens?: Record<string, string>;
|
|
32
|
+
}
|
|
33
|
+
export declare class KeystoneEvolveHandler extends ServeGibHandlerWithMetaspaceBase<EvolveParams, EvolveBody> {
|
|
34
|
+
protected lc: string;
|
|
35
|
+
protected method: 'PUT';
|
|
36
|
+
protected regex: RegExp;
|
|
37
|
+
protected parseParamsImpl(reqCtx: RequestContext<EvolveParams, any>): Promise<EvolveParams | undefined>;
|
|
38
|
+
protected validateQueryParams({ queryParams }: {
|
|
39
|
+
queryParams: any;
|
|
40
|
+
}): Promise<string[]>;
|
|
41
|
+
protected handleRouteImpl(reqCtx: RequestContext<EvolveParams>): Promise<ResponseResult>;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=keystone-evolve.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-evolve.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAKpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAItF,UAAU,YAAa,SAAQ,gBAAgB;IAC3C,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,UAAU,UAAU;IAChB,uCAAuC;IACvC,aAAa,EAAE,gBAAgB,CAAC;IAChC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnC,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,qBAAa,qBAAsB,SAAQ,gCAAgC,CAAC,YAAY,EAAE,UAAU,CAAC;IACjG,UAAmB,EAAE,EAAE,MAAM,CAAqC;IAClE,UAAmB,MAAM,EAAE,KAAK,CAAS;IACzC,UAAmB,KAAK,SAAoC;IAE5D,UAAyB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAarH;IAED,UAAyB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEtG;IAED,UAAyB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CA8EtG;CACJ"}
|