@ibgib/node-gib 0.0.10 → 0.0.14
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,127 @@
|
|
|
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 { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
13
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
14
|
+
import { validateAndRegisterEvolveKeystone } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-websocket/sync-peer-websocket-receiver/sync-websocket-peer-helpers.mjs';
|
|
15
|
+
import { loadSsoServerConfig } from '@ibgib/web-gib/dist/identity/sso/sso-config-helper.mjs';
|
|
16
|
+
import { SsoCustodianService } from '@ibgib/web-gib/dist/identity/sso/sso-custodian-service.mjs';
|
|
17
|
+
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
18
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
19
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
20
|
+
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
21
|
+
export class KeystoneEvolveHandler extends ServeGibHandlerWithMetaspaceBase {
|
|
22
|
+
lc = `[${KeystoneEvolveHandler.name}]`;
|
|
23
|
+
method = 'PUT';
|
|
24
|
+
regex = API_PATH_REGEXES.KEYSTONE_EVOLVE;
|
|
25
|
+
async parseParamsImpl(reqCtx) {
|
|
26
|
+
const match = reqCtx.pathname.match(this.regex);
|
|
27
|
+
if (match && match.length >= 3) {
|
|
28
|
+
const domainIb = decodeURIComponent(match[1]);
|
|
29
|
+
const domainGib = decodeURIComponent(match[2]);
|
|
30
|
+
const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
|
|
31
|
+
return {
|
|
32
|
+
domainAddr,
|
|
33
|
+
domainInfo: this.getDomainInfo({ domainAddr })
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async validateQueryParams({ queryParams }) {
|
|
41
|
+
return []; // We don't expect any query parameters for evolution
|
|
42
|
+
}
|
|
43
|
+
async handleRouteImpl(reqCtx) {
|
|
44
|
+
const lc = `${this.lc}[handleRouteImpl]`;
|
|
45
|
+
try {
|
|
46
|
+
if (logalot) {
|
|
47
|
+
console.log(`${lc} starting...`);
|
|
48
|
+
}
|
|
49
|
+
if (!reqCtx.params) {
|
|
50
|
+
return this.error(400, 'Invalid parameters');
|
|
51
|
+
}
|
|
52
|
+
if (!reqCtx.metaspace) {
|
|
53
|
+
return this.error(500, 'Metaspace not initialized');
|
|
54
|
+
}
|
|
55
|
+
const { domainAddr } = reqCtx.params;
|
|
56
|
+
const bodyStr = reqCtx.body;
|
|
57
|
+
if (!bodyStr) {
|
|
58
|
+
return this.error(400, 'Empty body');
|
|
59
|
+
}
|
|
60
|
+
let parsed;
|
|
61
|
+
try {
|
|
62
|
+
parsed = JSON.parse(bodyStr);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return this.error(400, 'Invalid request JSON body: bodyStr does NOT parse. (E: 2f81c8c80a6884ff32b877671e92f326)');
|
|
66
|
+
}
|
|
67
|
+
const { keystoneIbGib, relatedKeystoneIbGibs = [] } = parsed;
|
|
68
|
+
if (!keystoneIbGib) {
|
|
69
|
+
return this.error(400, 'Invalid request. Body must contain keystoneIbGib (E: e234647f79282982c8012fe8015f5826)');
|
|
70
|
+
}
|
|
71
|
+
const space = await reqCtx.metaspace.getLocalUserSpace({ lock: false });
|
|
72
|
+
if (!space) {
|
|
73
|
+
return this.error(500, 'No local user space found (E: a1144e5d6cd9641fb82d6b359f131126)');
|
|
74
|
+
}
|
|
75
|
+
// Delegate all intrinsic checks, transition rules, pool restrictions, and registration/persistence to core-gib helper
|
|
76
|
+
await validateAndRegisterEvolveKeystone({
|
|
77
|
+
domainAddr,
|
|
78
|
+
keystoneIbGib,
|
|
79
|
+
relatedKeystoneIbGibs,
|
|
80
|
+
metaspace: reqCtx.metaspace,
|
|
81
|
+
space
|
|
82
|
+
});
|
|
83
|
+
// Post-Evolution Hook: Handle SSO provider unlinking
|
|
84
|
+
const claim = keystoneIbGib.data?.proofs?.[0]?.claim;
|
|
85
|
+
if (claim?.details?.type === 'remove-pool') {
|
|
86
|
+
const removeInfo = claim.details.info;
|
|
87
|
+
if (removeInfo && Array.isArray(removeInfo.remove)) {
|
|
88
|
+
// Lazy-load custodian service config
|
|
89
|
+
const config = loadSsoServerConfig();
|
|
90
|
+
const custodian = new SsoCustodianService(config);
|
|
91
|
+
for (const poolId of removeInfo.remove) {
|
|
92
|
+
if (poolId.startsWith('custodian-manage-')) {
|
|
93
|
+
const providerId = poolId.replace('custodian-manage-', '');
|
|
94
|
+
console.log(`${lc} Evolved keystone removed custodian pool: ${poolId}. Performing unlink cleanup for provider: ${providerId}`);
|
|
95
|
+
// Revoke token if supplied by the client
|
|
96
|
+
const token = parsed.revokeTokens?.[providerId];
|
|
97
|
+
if (token) {
|
|
98
|
+
try {
|
|
99
|
+
await custodian.revokeToken(providerId, token);
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
console.warn(`${lc} Failed to revoke token for provider ${providerId}: ${extractErrorMsg(e)}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.log(`${lc} No OAuth token supplied by client for revocation of provider: ${providerId}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return this.ok({
|
|
113
|
+
message: `Successfully evolved domain keystone with session keystone`,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
118
|
+
return this.error(422, `Evolve validation/persistence failed: ${extractErrorMsg(error)}`);
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
if (logalot) {
|
|
122
|
+
console.log(`${lc} complete.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=keystone-evolve.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-evolve.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-evolve.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone/keystone-genesis.handler
|
|
3
|
+
*
|
|
4
|
+
* POST /api/keystone/genesis
|
|
5
|
+
*
|
|
6
|
+
* Accepts a single genesis-frame keystone ibgib from the client and
|
|
7
|
+
* bootstraps a new domain-isolated metaspace for it.
|
|
8
|
+
*
|
|
9
|
+
* ## request body
|
|
10
|
+
*
|
|
11
|
+
* ```json
|
|
12
|
+
* { "keystoneIbGib": <KeystoneIbGib_V1> }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* ## validation steps
|
|
16
|
+
*
|
|
17
|
+
* 1. Body contains `keystoneIbGib` (single ibgib, not an array).
|
|
18
|
+
* 2. Intrinsic hash validation passes (`validateIbGibIntrinsically`).
|
|
19
|
+
* 3. Structural keystone check: `ib` starts with `"keystone"`, no `past` in
|
|
20
|
+
* `rel8ns` (genesis = TJP frame, no prior timeline).
|
|
21
|
+
* 4. Domain uniqueness: the path derived from the keystone's tjpGib must not
|
|
22
|
+
* already exist on disk — if it does, return 409 Conflict.
|
|
23
|
+
* 5. Bootstrap: call `bootstrapDomainMetaspace` to create folders + metaspace.
|
|
24
|
+
* 6. Persist the keystone ibgib into the newly created domain space.
|
|
25
|
+
*
|
|
26
|
+
* ## notes
|
|
27
|
+
*
|
|
28
|
+
* Unlike domain-scoped handlers, this handler does NOT rely on
|
|
29
|
+
* `reqCtx.metaspace` (which is undefined when no domain exists yet). It
|
|
30
|
+
* creates the metaspace itself using `bootstrapDomainMetaspace`.
|
|
31
|
+
*/
|
|
32
|
+
import { ServeGibHandlerBase } from '../../handler-base.mjs';
|
|
33
|
+
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
34
|
+
/**
|
|
35
|
+
* POST /api/keystone/genesis
|
|
36
|
+
*
|
|
37
|
+
* No path params — the domain is derived from the incoming keystone ibgib.
|
|
38
|
+
*/
|
|
39
|
+
export declare class KeystoneGenesisHandler extends ServeGibHandlerBase<undefined, undefined> {
|
|
40
|
+
protected lc: string;
|
|
41
|
+
protected method: ServeGibHttpMethod;
|
|
42
|
+
protected regex: RegExp;
|
|
43
|
+
protected handleRouteImpl(reqCtx: RequestContext<undefined, undefined>): Promise<ResponseResult | undefined>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=keystone-genesis.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-genesis.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAaH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAUxF;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IACjF,UAAmB,EAAE,EAAE,MAAM,CAAsC;IACnE,UAAmB,MAAM,EAAE,kBAAkB,CAAU;IACvD,UAAmB,KAAK,SAAqC;IAE7D,UAAgB,eAAe,CAC3B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAC7C,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAuGrC;CACJ"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone/keystone-genesis.handler
|
|
3
|
+
*
|
|
4
|
+
* POST /api/keystone/genesis
|
|
5
|
+
*
|
|
6
|
+
* Accepts a single genesis-frame keystone ibgib from the client and
|
|
7
|
+
* bootstraps a new domain-isolated metaspace for it.
|
|
8
|
+
*
|
|
9
|
+
* ## request body
|
|
10
|
+
*
|
|
11
|
+
* ```json
|
|
12
|
+
* { "keystoneIbGib": <KeystoneIbGib_V1> }
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* ## validation steps
|
|
16
|
+
*
|
|
17
|
+
* 1. Body contains `keystoneIbGib` (single ibgib, not an array).
|
|
18
|
+
* 2. Intrinsic hash validation passes (`validateIbGibIntrinsically`).
|
|
19
|
+
* 3. Structural keystone check: `ib` starts with `"keystone"`, no `past` in
|
|
20
|
+
* `rel8ns` (genesis = TJP frame, no prior timeline).
|
|
21
|
+
* 4. Domain uniqueness: the path derived from the keystone's tjpGib must not
|
|
22
|
+
* already exist on disk — if it does, return 409 Conflict.
|
|
23
|
+
* 5. Bootstrap: call `bootstrapDomainMetaspace` to create folders + metaspace.
|
|
24
|
+
* 6. Persist the keystone ibgib into the newly created domain space.
|
|
25
|
+
*
|
|
26
|
+
* ## notes
|
|
27
|
+
*
|
|
28
|
+
* Unlike domain-scoped handlers, this handler does NOT rely on
|
|
29
|
+
* `reqCtx.metaspace` (which is undefined when no domain exists yet). It
|
|
30
|
+
* creates the metaspace itself using `bootstrapDomainMetaspace`.
|
|
31
|
+
*/
|
|
32
|
+
import { existsSync } from 'node:fs';
|
|
33
|
+
import * as path from 'node:path';
|
|
34
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
35
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
36
|
+
import { validateIbGibIntrinsically } from '@ibgib/ts-gib/dist/V1/validate-helper.mjs';
|
|
37
|
+
import { getGibInfo } from '@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs';
|
|
38
|
+
import { KeystoneService_V1 } from '@ibgib/core-gib/dist/keystone/keystone-service-v1.mjs';
|
|
39
|
+
import { IdentityIndexService } from '../../../identity-index/identity-index-service.mjs';
|
|
40
|
+
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
41
|
+
import { ServeGibHandlerBase } from '../../handler-base.mjs';
|
|
42
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
43
|
+
import { getDomainRootPath } from '../../../bootstrap-helper.mjs';
|
|
44
|
+
import { bootstrapDomainMetaspace } from '../../../bootstrap-helper.mjs';
|
|
45
|
+
const logalot = GLOBAL_LOG_A_LOT || true;
|
|
46
|
+
/**
|
|
47
|
+
* POST /api/keystone/genesis
|
|
48
|
+
*
|
|
49
|
+
* No path params — the domain is derived from the incoming keystone ibgib.
|
|
50
|
+
*/
|
|
51
|
+
export class KeystoneGenesisHandler extends ServeGibHandlerBase {
|
|
52
|
+
lc = `[${KeystoneGenesisHandler.name}]`;
|
|
53
|
+
method = 'POST';
|
|
54
|
+
regex = API_PATH_REGEXES.KEYSTONE_GENESIS;
|
|
55
|
+
async handleRouteImpl(reqCtx) {
|
|
56
|
+
const lc = `${this.lc}[${this.handleRouteImpl.name}]`;
|
|
57
|
+
try {
|
|
58
|
+
if (logalot) {
|
|
59
|
+
console.log(`${lc} starting... (I: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c526)`);
|
|
60
|
+
}
|
|
61
|
+
// ----------------------------------------------------------------
|
|
62
|
+
// 1. Parse body — expect { keystoneIbGib }
|
|
63
|
+
// ----------------------------------------------------------------
|
|
64
|
+
let parsed;
|
|
65
|
+
try {
|
|
66
|
+
parsed = JSON.parse(reqCtx.body);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return this.error(400, 'Request body must be valid JSON (E: dd8618857568f8fc5e9c62b8ed135826)');
|
|
70
|
+
}
|
|
71
|
+
const { keystoneIbGib } = parsed;
|
|
72
|
+
if (!keystoneIbGib) {
|
|
73
|
+
return this.error(400, 'Body must contain keystoneIbGib (E: 9c8c5d979d7842cd716ba64f69349c26)');
|
|
74
|
+
}
|
|
75
|
+
// ----------------------------------------------------------------
|
|
76
|
+
// 2. Intrinsic hash validation
|
|
77
|
+
// ----------------------------------------------------------------
|
|
78
|
+
const intrinsicErrors = await validateIbGibIntrinsically({ ibGib: keystoneIbGib });
|
|
79
|
+
if (intrinsicErrors) {
|
|
80
|
+
return this.error(422, 'Intrinsic keystone validation failed (E: 76d388e198f23a87dd6596f59c36e826)', { errors: intrinsicErrors });
|
|
81
|
+
}
|
|
82
|
+
// ----------------------------------------------------------------
|
|
83
|
+
// 3. Structural keystone + genesis-frame checks
|
|
84
|
+
// ----------------------------------------------------------------
|
|
85
|
+
const keystoneService = new KeystoneService_V1();
|
|
86
|
+
const keystoneErrors = await keystoneService.validateGenesisKeystone({
|
|
87
|
+
keystoneIbGib
|
|
88
|
+
});
|
|
89
|
+
if (keystoneErrors && keystoneErrors.length > 0) {
|
|
90
|
+
return this.error(422, `Keystone genesis validation failed. Errors: ${keystoneErrors} (E: 8384285be7a8ab0d41cfd1df2e2aa826)`, { errors: keystoneErrors });
|
|
91
|
+
}
|
|
92
|
+
// ----------------------------------------------------------------
|
|
93
|
+
// 4. Domain uniqueness & Email Index Registration
|
|
94
|
+
// ----------------------------------------------------------------
|
|
95
|
+
const addr = getIbGibAddr({ ibGib: keystoneIbGib });
|
|
96
|
+
const { tjpGib, punctiliarHash } = getGibInfo({ ibGibAddr: addr });
|
|
97
|
+
const domainGib = tjpGib || punctiliarHash;
|
|
98
|
+
if (!domainGib) {
|
|
99
|
+
return this.error(422, `Could not extract domain identifier from keystone address: ${addr} (E: 2758588a6d7cc77f078e97989feed326)`);
|
|
100
|
+
}
|
|
101
|
+
const domainRootPath = getDomainRootPath(domainGib, reqCtx.dataDir);
|
|
102
|
+
if (existsSync(domainRootPath)) {
|
|
103
|
+
return this.error(409, `Domain already exists for this keystone (tjpGib: ${domainGib}). Use PUT /api/keystone/evolve/:domainAddr to evolve. (E: 1c56c8885781c86df89cbdfc1b310626)`);
|
|
104
|
+
}
|
|
105
|
+
// Extract email addresses attached to primary identity keystone (if present)
|
|
106
|
+
const emails = keystoneIbGib.data?.emails ?? keystoneIbGib.data?.frameDetails?.emails ?? [];
|
|
107
|
+
const indexService = new IdentityIndexService({ baseDir: path.join(reqCtx.dataDir, 'index') });
|
|
108
|
+
const registeredHashes = [];
|
|
109
|
+
if (emails.length > 0) {
|
|
110
|
+
try {
|
|
111
|
+
for (const email of emails) {
|
|
112
|
+
const { emailHash } = await indexService.registerEmailIndex({ email, tjpAddr: addr });
|
|
113
|
+
registeredHashes.push(emailHash);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
if (err.message.includes('duplicate_identity_409')) {
|
|
118
|
+
// Roll back any hashes registered in this transaction before throwing
|
|
119
|
+
for (const emailHash of registeredHashes) {
|
|
120
|
+
try {
|
|
121
|
+
await indexService.getEmailIndexByHash({ emailHash });
|
|
122
|
+
}
|
|
123
|
+
catch { /* ignore */ }
|
|
124
|
+
}
|
|
125
|
+
return this.error(409, `Email/Identity already registered (E: duplicate_identity_409)`);
|
|
126
|
+
}
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// ----------------------------------------------------------------
|
|
131
|
+
// 5. Bootstrap the new domain metaspace (creates folders)
|
|
132
|
+
// ----------------------------------------------------------------
|
|
133
|
+
const metaspace = await bootstrapDomainMetaspace(addr, reqCtx.dataDir);
|
|
134
|
+
// ----------------------------------------------------------------
|
|
135
|
+
// 6. Persist the genesis keystone into the new domain space
|
|
136
|
+
// ----------------------------------------------------------------
|
|
137
|
+
const space = await metaspace.getLocalUserSpace({ lock: false });
|
|
138
|
+
if (!space) {
|
|
139
|
+
throw new Error(`(UNEXPECTED) Could not get local user space after bootstrapping domain for ${addr} (E: b1c2d3e4f5a6b7c8d9e0f1a2b3c4d526)`);
|
|
140
|
+
}
|
|
141
|
+
await metaspace.put({ ibGibs: [keystoneIbGib], space });
|
|
142
|
+
await metaspace.registerNewIbGib({ ibGib: keystoneIbGib, space });
|
|
143
|
+
console.log(`${lc} domain created and keystone persisted: ${addr}`);
|
|
144
|
+
// if (logalot) { console.log(`${lc} keystoneIbGib: ${pretty(keystoneIbGib)} (I: d598c6ff7a48997d585b84c19c464826)`); }
|
|
145
|
+
return this.ok({ success: true, addr }, 201);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
const emsg = extractErrorMsg(error);
|
|
149
|
+
console.error(`${lc} ${emsg}`);
|
|
150
|
+
return this.error(500, emsg);
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
if (logalot) {
|
|
154
|
+
console.log(`${lc} complete.`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=keystone-genesis.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-genesis.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-genesis.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone
|
|
3
|
+
*/
|
|
4
|
+
import { KeystoneIbGib_V1 } from '@ibgib/core-gib/dist/keystone/keystone-types.mjs';
|
|
5
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
6
|
+
import { RequestContext, ResponseResult, ServeGibHttpMethod } from '../../../types.mjs';
|
|
7
|
+
import { KeystoneGetQueryParams, KeystoneParams } from './keystone-handler-types.mjs';
|
|
8
|
+
export interface KeystoneGetResponseBody {
|
|
9
|
+
domainGraph: Record<string, KeystoneIbGib_V1>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* GET /api/keystone/:domainAddr
|
|
13
|
+
* GET /api/keystone/:domainAddr&getLatest=true
|
|
14
|
+
*/
|
|
15
|
+
export declare class KeystoneGetHandler extends ServeGibHandlerWithMetaspaceBase<KeystoneParams, KeystoneGetQueryParams> {
|
|
16
|
+
protected lc: string;
|
|
17
|
+
protected method: ServeGibHttpMethod;
|
|
18
|
+
protected regex: RegExp;
|
|
19
|
+
protected parseParamsImpl(reqCtx: RequestContext<KeystoneParams, KeystoneGetQueryParams>): Promise<KeystoneParams | undefined>;
|
|
20
|
+
protected validateQueryParams({ queryParams }: {
|
|
21
|
+
queryParams: any;
|
|
22
|
+
}): Promise<string[]>;
|
|
23
|
+
protected handleRouteImpl(reqCtx: RequestContext<KeystoneParams, KeystoneGetQueryParams>): Promise<ResponseResult | undefined>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=keystone-get.handler.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-get.handler.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-get.handler.mts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAIpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAEH,sBAAsB,EAAE,cAAc,EACzC,MAAM,8BAA8B,CAAC;AAGtC,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD;AAID;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,gCAAgC,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAC5G,UAAmB,EAAE,EAAE,MAAM,CAAkC;IAC/D,UAAmB,MAAM,EAAE,kBAAkB,CAAS;IACtD,UAAmB,KAAK,SAAkC;IAE1D,UAAyB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAmB5I;IAED,UAAyB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,CAAC;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCtG;IAED,UAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAgGnI;CACJ"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module serve-gib/handlers/api/keystone
|
|
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 { validateKeystoneGraph } from '@ibgib/core-gib/dist/keystone/keystone-helpers.mjs';
|
|
7
|
+
import { GLOBAL_LOG_A_LOT } from '../../../constants.mjs';
|
|
8
|
+
import { ServeGibHandlerWithMetaspaceBase } from '../../handler-base.mjs';
|
|
9
|
+
import { API_PATH_REGEXES } from '../../../path-constants.mjs';
|
|
10
|
+
import { DEFAULT_QUERY_PARAMS_GET_KEYSTONE, isKnownQueryParamsKey_KeystoneGet, KNOWN_QUERY_PARAMS_KEYSTONE_GET } from './keystone-handler-types.mjs';
|
|
11
|
+
import { validateAndCoerceBooleanQueryParam } from '../../../serve-gib-helpers.mjs';
|
|
12
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
13
|
+
/**
|
|
14
|
+
* GET /api/keystone/:domainAddr
|
|
15
|
+
* GET /api/keystone/:domainAddr&getLatest=true
|
|
16
|
+
*/
|
|
17
|
+
export class KeystoneGetHandler extends ServeGibHandlerWithMetaspaceBase {
|
|
18
|
+
lc = `[${KeystoneGetHandler.name}]`;
|
|
19
|
+
method = 'GET';
|
|
20
|
+
regex = API_PATH_REGEXES.KEYSTONE_ADDR;
|
|
21
|
+
async parseParamsImpl(reqCtx) {
|
|
22
|
+
const lc = `${this.lc}[${this.parseParamsImpl.name}]`;
|
|
23
|
+
try {
|
|
24
|
+
if (logalot) {
|
|
25
|
+
console.log(`${lc} starting...`);
|
|
26
|
+
}
|
|
27
|
+
const match = reqCtx.pathname.match(this.regex);
|
|
28
|
+
if (!match) {
|
|
29
|
+
throw new Error(`(UNEXPECTED) match falsy for regex? at this point, we have passed canHandleRoute, so this should parse correctly. (E: 02c868316604c7c26823380885b79c26)`);
|
|
30
|
+
}
|
|
31
|
+
const domainIb = decodeURIComponent(match[1]);
|
|
32
|
+
const domainGib = decodeURIComponent(match[2]);
|
|
33
|
+
const domainAddr = getIbGibAddr({ ib: domainIb, gib: domainGib });
|
|
34
|
+
return {
|
|
35
|
+
domainInfo: this.getDomainInfo({ domainAddr }),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
if (logalot) {
|
|
44
|
+
console.log(`${lc} complete.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async validateQueryParams({ queryParams }) {
|
|
49
|
+
const lc = `${this.lc}[${this.validateQueryParams.name}]`;
|
|
50
|
+
try {
|
|
51
|
+
if (logalot) {
|
|
52
|
+
console.log(`${lc} starting... (I: f619e8121988498cd8e8928986663826)`);
|
|
53
|
+
}
|
|
54
|
+
const errors = [];
|
|
55
|
+
// strict checking
|
|
56
|
+
const queryParamsKeys = Object.keys(queryParams);
|
|
57
|
+
const invalidKeys = queryParamsKeys.filter(x => !isKnownQueryParamsKey_KeystoneGet(x));
|
|
58
|
+
if (invalidKeys.length > 0) {
|
|
59
|
+
throw new Error(`invalid query params keys: ${invalidKeys.join(', ')}. valid query params keys: ${KNOWN_QUERY_PARAMS_KEYSTONE_GET.join(', ')} (E: f9642823b568a1cfe89e0401567ac826)`);
|
|
60
|
+
}
|
|
61
|
+
const ValidationFns = {
|
|
62
|
+
getLatest: async () => {
|
|
63
|
+
validateAndCoerceBooleanQueryParam(queryParams, 'getLatest', errors);
|
|
64
|
+
},
|
|
65
|
+
getGraph: async () => {
|
|
66
|
+
validateAndCoerceBooleanQueryParam(queryParams, 'getGraph', errors);
|
|
67
|
+
},
|
|
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.handleRouteImpl.name}]`;
|
|
87
|
+
try {
|
|
88
|
+
if (logalot) {
|
|
89
|
+
console.log(`${lc} starting...`);
|
|
90
|
+
}
|
|
91
|
+
const { metaspace } = reqCtx;
|
|
92
|
+
if (!metaspace) {
|
|
93
|
+
throw new Error(`(UNEXPECTED) reqCtx.metaspace falsy? (E: 871a396f7e824989981a1508d0d17826)`);
|
|
94
|
+
}
|
|
95
|
+
const { domainInfo } = reqCtx.params;
|
|
96
|
+
if (!domainInfo) {
|
|
97
|
+
throw new Error(`(UNEXPECTED) reqCtx.params.domainInfo falsy? at this point, we've passed canHandleRoute so this should be truthy (E: 5d3e96d9f8d8f65258d530af0e223826)`);
|
|
98
|
+
}
|
|
99
|
+
const { addr: domainAddr } = domainInfo;
|
|
100
|
+
// if (!domainIb || !domainGib) { return this.error(400, 'Keystone address required'); }
|
|
101
|
+
// const addr = `${domainIb}^${domainGib}`;
|
|
102
|
+
if (logalot) {
|
|
103
|
+
console.log(`${lc} domainAddr: ${domainAddr} (I: ea08786359e85481a89c77d84e8f0826)`);
|
|
104
|
+
}
|
|
105
|
+
// there are two paths for this: getLatest or not (get exact given addr)
|
|
106
|
+
// this should be driven by queryParams
|
|
107
|
+
const queryParams = {
|
|
108
|
+
...DEFAULT_QUERY_PARAMS_GET_KEYSTONE,
|
|
109
|
+
...(reqCtx.queryParams ?? {}),
|
|
110
|
+
};
|
|
111
|
+
const { getLatest, getGraph } = queryParams;
|
|
112
|
+
if (!getLatest) {
|
|
113
|
+
throw new Error(`"getLatest: false" not implemented yet. currently this always returns the graph. (E: befd28156438a0b538cf107872e89b26)`);
|
|
114
|
+
}
|
|
115
|
+
if (!getGraph) {
|
|
116
|
+
throw new Error(`"getGraph: false" not implemented yet. currently this always returns the graph. (E: 84c8a88fdb28e72d884addb8f43fc826)`);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* get the default local user space that corresponds to the current
|
|
120
|
+
* keystone domain (which is what the metaspace was initialized
|
|
121
|
+
* with).
|
|
122
|
+
*/
|
|
123
|
+
const space = await metaspace.getLocalUserSpace({ lock: false });
|
|
124
|
+
if (!space) {
|
|
125
|
+
throw new Error(`(UNEXPECTED) space falsy? we couldn't get the default local userspace from the metaspace for the addr (${domainAddr}) (E: 934551f1845f94c8320a8a980025c526)`);
|
|
126
|
+
}
|
|
127
|
+
// use this code later if we de
|
|
128
|
+
let domainAddr_latest = domainAddr;
|
|
129
|
+
if (getLatest) {
|
|
130
|
+
const latestAddr = await metaspace.getLatestAddr({ addr: domainAddr, space });
|
|
131
|
+
if (latestAddr) {
|
|
132
|
+
domainAddr_latest = latestAddr;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const domainGraph = await metaspace.getDependencyGraph({
|
|
136
|
+
ibGibAddr: domainAddr_latest,
|
|
137
|
+
/**
|
|
138
|
+
* since domain is a keystone, "live" is not needed because the
|
|
139
|
+
* entire graph is composed of stones with no timelines.
|
|
140
|
+
*/
|
|
141
|
+
live: false,
|
|
142
|
+
space,
|
|
143
|
+
});
|
|
144
|
+
let keystoneIbGib = domainGraph[domainAddr_latest];
|
|
145
|
+
if (!keystoneIbGib) {
|
|
146
|
+
const errorMsg_addrInfo = domainAddr_latest === domainAddr ?
|
|
147
|
+
`domainAddr: ${domainAddr}` :
|
|
148
|
+
`domainAddr: ${domainAddr}, domainAddr_latest: `;
|
|
149
|
+
return this.error(404, `Keystone not found. ${errorMsg_addrInfo} (E: 0238c85f94889607088220a324db1826)`); /* <<<< returns early */
|
|
150
|
+
}
|
|
151
|
+
// go ahead and validate even though we just pulled this (should be
|
|
152
|
+
// valid or it shouldn't have been persisted)
|
|
153
|
+
const keystoneValidationErrors = await validateKeystoneGraph({
|
|
154
|
+
keystoneIbGib,
|
|
155
|
+
getLatest,
|
|
156
|
+
invalidIfMoreRecentKeystoneFoundInSpace: getLatest,
|
|
157
|
+
space,
|
|
158
|
+
});
|
|
159
|
+
if (keystoneValidationErrors.length > 0) {
|
|
160
|
+
const errorMsg_addrInfo = domainAddr_latest === domainAddr ?
|
|
161
|
+
`domainAddr: ${domainAddr}` :
|
|
162
|
+
`domainAddr: ${domainAddr}, domainAddr_latest: `;
|
|
163
|
+
return this.error(404, `Keystone invalid for ${errorMsg_addrInfo}. validationErrors: ${keystoneValidationErrors.join('|')}`); /* <<<< returns early */
|
|
164
|
+
}
|
|
165
|
+
// valid keystone graph
|
|
166
|
+
const responseBody = {
|
|
167
|
+
domainGraph: domainGraph,
|
|
168
|
+
};
|
|
169
|
+
return this.ok(responseBody);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
const emsg = `${lc} ${extractErrorMsg(error)}`;
|
|
173
|
+
console.error(emsg);
|
|
174
|
+
return this.error(500, emsg);
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
if (logalot) {
|
|
178
|
+
console.log(`${lc} complete.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=keystone-get.handler.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-get.handler.mjs","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-get.handler.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystone-get.respec.d.mts","sourceRoot":"","sources":["../../../../../src/serve-gib/handlers/api/keystone/keystone-get.respec.mts"],"names":[],"mappings":""}
|