@powerhousedao/reactor-api 6.0.2-staging.2 → 6.0.2-staging.3
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/README.md +6 -0
- package/dist/index.d.mts +2943 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6375 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/packages/https-hooks.d.mts +23 -7
- package/dist/src/packages/https-hooks.d.mts.map +1 -1
- package/dist/src/packages/https-hooks.mjs +73 -53
- package/dist/src/packages/https-hooks.mjs.map +1 -1
- package/dist/src/packages/vite-loader.d.mts +29 -0
- package/dist/src/packages/vite-loader.d.mts.map +1 -0
- package/dist/src/packages/vite-loader.mjs +142 -0
- package/dist/src/packages/vite-loader.mjs.map +1 -0
- package/dist/types-Do4QTfT3.d.mts +37 -0
- package/dist/types-Do4QTfT3.d.mts.map +1 -0
- package/dist/utils-DEEhP99G.mjs +286 -0
- package/dist/utils-DEEhP99G.mjs.map +1 -0
- package/package.json +45 -32
- package/dist/codegen.d.ts +0 -4
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -38
- package/dist/codegen.js.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/src/config.d.ts +0 -6
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -6
- package/dist/src/config.js.map +0 -1
- package/dist/src/dev.d.ts +0 -2
- package/dist/src/dev.d.ts.map +0 -1
- package/dist/src/dev.js +0 -51
- package/dist/src/dev.js.map +0 -1
- package/dist/src/graphql/analytics-subgraph.d.ts +0 -14
- package/dist/src/graphql/analytics-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/analytics-subgraph.js +0 -26
- package/dist/src/graphql/analytics-subgraph.js.map +0 -1
- package/dist/src/graphql/auth/index.d.ts +0 -2
- package/dist/src/graphql/auth/index.d.ts.map +0 -1
- package/dist/src/graphql/auth/index.js +0 -2
- package/dist/src/graphql/auth/index.js.map +0 -1
- package/dist/src/graphql/auth/resolvers.d.ts +0 -166
- package/dist/src/graphql/auth/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/auth/resolvers.js +0 -227
- package/dist/src/graphql/auth/resolvers.js.map +0 -1
- package/dist/src/graphql/auth/schema.graphql +0 -195
- package/dist/src/graphql/auth/subgraph.d.ts +0 -202
- package/dist/src/graphql/auth/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/auth/subgraph.js +0 -384
- package/dist/src/graphql/auth/subgraph.js.map +0 -1
- package/dist/src/graphql/base-subgraph.d.ts +0 -28
- package/dist/src/graphql/base-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/base-subgraph.js +0 -126
- package/dist/src/graphql/base-subgraph.js.map +0 -1
- package/dist/src/graphql/document-model-subgraph.d.ts +0 -105
- package/dist/src/graphql/document-model-subgraph.d.ts.map +0 -1
- package/dist/src/graphql/document-model-subgraph.js +0 -312
- package/dist/src/graphql/document-model-subgraph.js.map +0 -1
- package/dist/src/graphql/graphql-manager.d.ts +0 -68
- package/dist/src/graphql/graphql-manager.d.ts.map +0 -1
- package/dist/src/graphql/graphql-manager.js +0 -589
- package/dist/src/graphql/graphql-manager.js.map +0 -1
- package/dist/src/graphql/index.d.ts +0 -10
- package/dist/src/graphql/index.d.ts.map +0 -1
- package/dist/src/graphql/index.js +0 -10
- package/dist/src/graphql/index.js.map +0 -1
- package/dist/src/graphql/packages/index.d.ts +0 -2
- package/dist/src/graphql/packages/index.d.ts.map +0 -1
- package/dist/src/graphql/packages/index.js +0 -2
- package/dist/src/graphql/packages/index.js.map +0 -1
- package/dist/src/graphql/packages/resolvers.d.ts +0 -31
- package/dist/src/graphql/packages/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/packages/resolvers.js +0 -37
- package/dist/src/graphql/packages/resolvers.js.map +0 -1
- package/dist/src/graphql/packages/schema.graphql +0 -50
- package/dist/src/graphql/packages/subgraph.d.ts +0 -55
- package/dist/src/graphql/packages/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/packages/subgraph.js +0 -73
- package/dist/src/graphql/packages/subgraph.js.map +0 -1
- package/dist/src/graphql/playground.d.ts +0 -2
- package/dist/src/graphql/playground.d.ts.map +0 -1
- package/dist/src/graphql/playground.js +0 -81
- package/dist/src/graphql/playground.js.map +0 -1
- package/dist/src/graphql/reactor/adapters.d.ts +0 -62
- package/dist/src/graphql/reactor/adapters.d.ts.map +0 -1
- package/dist/src/graphql/reactor/adapters.js +0 -271
- package/dist/src/graphql/reactor/adapters.js.map +0 -1
- package/dist/src/graphql/reactor/factory.d.ts +0 -105
- package/dist/src/graphql/reactor/factory.d.ts.map +0 -1
- package/dist/src/graphql/reactor/factory.js +0 -7
- package/dist/src/graphql/reactor/factory.js.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.d.ts +0 -1489
- package/dist/src/graphql/reactor/gen/graphql.d.ts.map +0 -1
- package/dist/src/graphql/reactor/gen/graphql.js +0 -731
- package/dist/src/graphql/reactor/gen/graphql.js.map +0 -1
- package/dist/src/graphql/reactor/index.d.ts +0 -4
- package/dist/src/graphql/reactor/index.d.ts.map +0 -1
- package/dist/src/graphql/reactor/index.js +0 -4
- package/dist/src/graphql/reactor/index.js.map +0 -1
- package/dist/src/graphql/reactor/operations.graphql +0 -443
- package/dist/src/graphql/reactor/pubsub.d.ts +0 -27
- package/dist/src/graphql/reactor/pubsub.d.ts.map +0 -1
- package/dist/src/graphql/reactor/pubsub.js +0 -93
- package/dist/src/graphql/reactor/pubsub.js.map +0 -1
- package/dist/src/graphql/reactor/requester.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.js +0 -22
- package/dist/src/graphql/reactor/requester.js.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.d.ts +0 -4
- package/dist/src/graphql/reactor/requester.with-zod.d.ts.map +0 -1
- package/dist/src/graphql/reactor/requester.with-zod.js +0 -129
- package/dist/src/graphql/reactor/requester.with-zod.js.map +0 -1
- package/dist/src/graphql/reactor/resolvers.d.ts +0 -223
- package/dist/src/graphql/reactor/resolvers.d.ts.map +0 -1
- package/dist/src/graphql/reactor/resolvers.js +0 -682
- package/dist/src/graphql/reactor/resolvers.js.map +0 -1
- package/dist/src/graphql/reactor/schema.graphql +0 -475
- package/dist/src/graphql/reactor/subgraph.d.ts +0 -18
- package/dist/src/graphql/reactor/subgraph.d.ts.map +0 -1
- package/dist/src/graphql/reactor/subgraph.js +0 -457
- package/dist/src/graphql/reactor/subgraph.js.map +0 -1
- package/dist/src/graphql/reactor/validation.d.ts +0 -348
- package/dist/src/graphql/reactor/validation.d.ts.map +0 -1
- package/dist/src/graphql/reactor/validation.js +0 -167
- package/dist/src/graphql/reactor/validation.js.map +0 -1
- package/dist/src/graphql/sse.d.ts +0 -42
- package/dist/src/graphql/sse.d.ts.map +0 -1
- package/dist/src/graphql/sse.js +0 -33
- package/dist/src/graphql/sse.js.map +0 -1
- package/dist/src/graphql/system/env/getters.d.ts +0 -2
- package/dist/src/graphql/system/env/getters.d.ts.map +0 -1
- package/dist/src/graphql/system/env/getters.js +0 -4
- package/dist/src/graphql/system/env/getters.js.map +0 -1
- package/dist/src/graphql/system/env/index.d.ts +0 -2
- package/dist/src/graphql/system/env/index.d.ts.map +0 -1
- package/dist/src/graphql/system/env/index.js +0 -5
- package/dist/src/graphql/system/env/index.js.map +0 -1
- package/dist/src/graphql/system/index.d.ts +0 -2
- package/dist/src/graphql/system/index.d.ts.map +0 -1
- package/dist/src/graphql/system/index.js +0 -2
- package/dist/src/graphql/system/index.js.map +0 -1
- package/dist/src/graphql/system/types.d.ts +0 -2
- package/dist/src/graphql/system/types.d.ts.map +0 -1
- package/dist/src/graphql/system/types.js +0 -2
- package/dist/src/graphql/system/types.js.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts +0 -57
- package/dist/src/graphql/temp-hack-rwa-type-defs.d.ts.map +0 -1
- package/dist/src/graphql/temp-hack-rwa-type-defs.js +0 -2
- package/dist/src/graphql/temp-hack-rwa-type-defs.js.map +0 -1
- package/dist/src/graphql/types.d.ts +0 -102
- package/dist/src/graphql/types.d.ts.map +0 -1
- package/dist/src/graphql/types.js +0 -2
- package/dist/src/graphql/types.js.map +0 -1
- package/dist/src/graphql/utils.d.ts +0 -9
- package/dist/src/graphql/utils.d.ts.map +0 -1
- package/dist/src/graphql/utils.js +0 -72
- package/dist/src/graphql/utils.js.map +0 -1
- package/dist/src/graphql/websocket.d.ts +0 -3
- package/dist/src/graphql/websocket.d.ts.map +0 -1
- package/dist/src/graphql/websocket.js +0 -15
- package/dist/src/graphql/websocket.js.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.d.ts +0 -4
- package/dist/src/migrations/001_create_document_permissions.d.ts.map +0 -1
- package/dist/src/migrations/001_create_document_permissions.js +0 -91
- package/dist/src/migrations/001_create_document_permissions.js.map +0 -1
- package/dist/src/migrations/002_add_document_protection.d.ts +0 -4
- package/dist/src/migrations/002_add_document_protection.d.ts.map +0 -1
- package/dist/src/migrations/002_add_document_protection.js +0 -18
- package/dist/src/migrations/002_add_document_protection.js.map +0 -1
- package/dist/src/migrations/index.d.ts +0 -10
- package/dist/src/migrations/index.d.ts.map +0 -1
- package/dist/src/migrations/index.js +0 -58
- package/dist/src/migrations/index.js.map +0 -1
- package/dist/src/packages/http-loader.d.ts +0 -68
- package/dist/src/packages/http-loader.d.ts.map +0 -1
- package/dist/src/packages/http-loader.js +0 -176
- package/dist/src/packages/http-loader.js.map +0 -1
- package/dist/src/packages/import-loader.d.ts +0 -14
- package/dist/src/packages/import-loader.d.ts.map +0 -1
- package/dist/src/packages/import-loader.js +0 -46
- package/dist/src/packages/import-loader.js.map +0 -1
- package/dist/src/packages/import-resolver.d.ts +0 -5
- package/dist/src/packages/import-resolver.d.ts.map +0 -1
- package/dist/src/packages/import-resolver.js +0 -127
- package/dist/src/packages/import-resolver.js.map +0 -1
- package/dist/src/packages/package-manager.d.ts +0 -34
- package/dist/src/packages/package-manager.d.ts.map +0 -1
- package/dist/src/packages/package-manager.js +0 -213
- package/dist/src/packages/package-manager.js.map +0 -1
- package/dist/src/packages/types.d.ts +0 -38
- package/dist/src/packages/types.d.ts.map +0 -1
- package/dist/src/packages/types.js +0 -2
- package/dist/src/packages/types.js.map +0 -1
- package/dist/src/packages/util.d.ts +0 -27
- package/dist/src/packages/util.d.ts.map +0 -1
- package/dist/src/packages/util.js +0 -97
- package/dist/src/packages/util.js.map +0 -1
- package/dist/src/packages/vite-loader.d.ts +0 -24
- package/dist/src/packages/vite-loader.d.ts.map +0 -1
- package/dist/src/packages/vite-loader.js +0 -169
- package/dist/src/packages/vite-loader.js.map +0 -1
- package/dist/src/server.d.ts +0 -56
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -365
- package/dist/src/server.js.map +0 -1
- package/dist/src/services/auth.service.d.ts +0 -56
- package/dist/src/services/auth.service.d.ts.map +0 -1
- package/dist/src/services/auth.service.js +0 -172
- package/dist/src/services/auth.service.js.map +0 -1
- package/dist/src/services/authorization.service.d.ts +0 -70
- package/dist/src/services/authorization.service.d.ts.map +0 -1
- package/dist/src/services/authorization.service.js +0 -155
- package/dist/src/services/authorization.service.js.map +0 -1
- package/dist/src/services/document-permission.service.d.ts +0 -241
- package/dist/src/services/document-permission.service.d.ts.map +0 -1
- package/dist/src/services/document-permission.service.js +0 -791
- package/dist/src/services/document-permission.service.js.map +0 -1
- package/dist/src/services/package-management.service.d.ts +0 -32
- package/dist/src/services/package-management.service.d.ts.map +0 -1
- package/dist/src/services/package-management.service.js +0 -95
- package/dist/src/services/package-management.service.js.map +0 -1
- package/dist/src/services/package-storage.d.ts +0 -23
- package/dist/src/services/package-storage.d.ts.map +0 -1
- package/dist/src/services/package-storage.js +0 -19
- package/dist/src/services/package-storage.js.map +0 -1
- package/dist/src/tracing.d.ts +0 -4
- package/dist/src/tracing.d.ts.map +0 -1
- package/dist/src/tracing.js +0 -140
- package/dist/src/tracing.js.map +0 -1
- package/dist/src/types.d.ts +0 -17
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/auth.d.ts +0 -3
- package/dist/src/utils/auth.d.ts.map +0 -1
- package/dist/src/utils/auth.js +0 -12
- package/dist/src/utils/auth.js.map +0 -1
- package/dist/src/utils/create-schema.d.ts +0 -36
- package/dist/src/utils/create-schema.d.ts.map +0 -1
- package/dist/src/utils/create-schema.js +0 -725
- package/dist/src/utils/create-schema.js.map +0 -1
- package/dist/src/utils/db.d.ts +0 -82
- package/dist/src/utils/db.d.ts.map +0 -1
- package/dist/src/utils/db.js +0 -101
- package/dist/src/utils/db.js.map +0 -1
- package/dist/src/utils/drive-url.d.ts +0 -2
- package/dist/src/utils/drive-url.d.ts.map +0 -1
- package/dist/src/utils/drive-url.js +0 -3
- package/dist/src/utils/drive-url.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -4
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -4
- package/dist/src/utils/index.js.map +0 -1
- package/dist/test/authorization.service.test.d.ts +0 -2
- package/dist/test/authorization.service.test.d.ts.map +0 -1
- package/dist/test/authorization.service.test.js +0 -252
- package/dist/test/authorization.service.test.js.map +0 -1
- package/dist/test/benchmarks/load.bench.d.ts +0 -2
- package/dist/test/benchmarks/load.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/load.bench.js +0 -73
- package/dist/test/benchmarks/load.bench.js.map +0 -1
- package/dist/test/benchmarks/sync.bench.d.ts +0 -2
- package/dist/test/benchmarks/sync.bench.d.ts.map +0 -1
- package/dist/test/benchmarks/sync.bench.js +0 -119
- package/dist/test/benchmarks/sync.bench.js.map +0 -1
- package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts +0 -2
- package/dist/test/connect-switchboard-reshuffle-convergence.test.d.ts.map +0 -1
- package/dist/test/connect-switchboard-reshuffle-convergence.test.js +0 -203
- package/dist/test/connect-switchboard-reshuffle-convergence.test.js.map +0 -1
- package/dist/test/connect-switchboard-sync.test.d.ts +0 -2
- package/dist/test/connect-switchboard-sync.test.d.ts.map +0 -1
- package/dist/test/connect-switchboard-sync.test.js +0 -632
- package/dist/test/connect-switchboard-sync.test.js.map +0 -1
- package/dist/test/document-drive-subgraph.test.d.ts +0 -2
- package/dist/test/document-drive-subgraph.test.d.ts.map +0 -1
- package/dist/test/document-drive-subgraph.test.js +0 -249
- package/dist/test/document-drive-subgraph.test.js.map +0 -1
- package/dist/test/document-model-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/document-model-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/document-model-subgraph-permissions.test.js +0 -587
- package/dist/test/document-model-subgraph-permissions.test.js.map +0 -1
- package/dist/test/document-permission.service.test.d.ts +0 -2
- package/dist/test/document-permission.service.test.d.ts.map +0 -1
- package/dist/test/document-permission.service.test.js +0 -480
- package/dist/test/document-permission.service.test.js.map +0 -1
- package/dist/test/drive-info-endpoint.test.d.ts +0 -2
- package/dist/test/drive-info-endpoint.test.d.ts.map +0 -1
- package/dist/test/drive-info-endpoint.test.js +0 -123
- package/dist/test/drive-info-endpoint.test.js.map +0 -1
- package/dist/test/fault-injection-sync.test.d.ts +0 -2
- package/dist/test/fault-injection-sync.test.d.ts.map +0 -1
- package/dist/test/fault-injection-sync.test.js +0 -196
- package/dist/test/fault-injection-sync.test.js.map +0 -1
- package/dist/test/identity-integration.test.d.ts +0 -2
- package/dist/test/identity-integration.test.d.ts.map +0 -1
- package/dist/test/identity-integration.test.js +0 -349
- package/dist/test/identity-integration.test.js.map +0 -1
- package/dist/test/index.d.ts +0 -2
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/index.js +0 -2
- package/dist/test/index.js.map +0 -1
- package/dist/test/permissions-integration.test.d.ts +0 -2
- package/dist/test/permissions-integration.test.d.ts.map +0 -1
- package/dist/test/permissions-integration.test.js +0 -407
- package/dist/test/permissions-integration.test.js.map +0 -1
- package/dist/test/push-backfill.test.d.ts +0 -2
- package/dist/test/push-backfill.test.d.ts.map +0 -1
- package/dist/test/push-backfill.test.js +0 -298
- package/dist/test/push-backfill.test.js.map +0 -1
- package/dist/test/reactor-adapters.test.d.ts +0 -2
- package/dist/test/reactor-adapters.test.d.ts.map +0 -1
- package/dist/test/reactor-adapters.test.js +0 -379
- package/dist/test/reactor-adapters.test.js.map +0 -1
- package/dist/test/reactor-client.test.d.ts +0 -2
- package/dist/test/reactor-client.test.d.ts.map +0 -1
- package/dist/test/reactor-client.test.js +0 -371
- package/dist/test/reactor-client.test.js.map +0 -1
- package/dist/test/reactor-resolvers.test.d.ts +0 -2
- package/dist/test/reactor-resolvers.test.d.ts.map +0 -1
- package/dist/test/reactor-resolvers.test.js +0 -258
- package/dist/test/reactor-resolvers.test.js.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.d.ts +0 -2
- package/dist/test/reactor-subgraph-permissions.test.d.ts.map +0 -1
- package/dist/test/reactor-subgraph-permissions.test.js +0 -371
- package/dist/test/reactor-subgraph-permissions.test.js.map +0 -1
- package/dist/test/router.test.d.ts +0 -2
- package/dist/test/router.test.d.ts.map +0 -1
- package/dist/test/router.test.js +0 -38
- package/dist/test/router.test.js.map +0 -1
- package/dist/test/subscriptions-sse.test.d.ts +0 -2
- package/dist/test/subscriptions-sse.test.d.ts.map +0 -1
- package/dist/test/subscriptions-sse.test.js +0 -264
- package/dist/test/subscriptions-sse.test.js.map +0 -1
- package/dist/test/subscriptions.test.d.ts +0 -2
- package/dist/test/subscriptions.test.d.ts.map +0 -1
- package/dist/test/subscriptions.test.js +0 -248
- package/dist/test/subscriptions.test.js.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.d.ts +0 -15
- package/dist/test/utils/gql-resolver-bridge.d.ts.map +0 -1
- package/dist/test/utils/gql-resolver-bridge.js +0 -89
- package/dist/test/utils/gql-resolver-bridge.js.map +0 -1
- package/dist/test/utils.d.ts +0 -10
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -23
- package/dist/test/utils.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -38
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { childLogger } from "document-drive";
|
|
2
|
-
/**
|
|
3
|
-
* Loads document models from an HTTP registry.
|
|
4
|
-
* Uses Node.js module loader hooks to import directly from HTTP URLs.
|
|
5
|
-
*
|
|
6
|
-
* IMPORTANT: Requires https-hooks to be registered before use:
|
|
7
|
-
* import { register } from "node:module";
|
|
8
|
-
* register("@powerhousedao/reactor-api/https-hooks", import.meta.url);
|
|
9
|
-
*/
|
|
10
|
-
export class HttpPackageLoader {
|
|
11
|
-
registryUrl;
|
|
12
|
-
logger = childLogger(["reactor-api", "http-loader"]);
|
|
13
|
-
// Cache: documentType -> packageName
|
|
14
|
-
documentTypeCache = new Map();
|
|
15
|
-
// Cache: packageName -> DocumentModelModule[]
|
|
16
|
-
packageModulesCache = new Map();
|
|
17
|
-
// Callback to notify when a model is dynamically loaded
|
|
18
|
-
onModelLoaded;
|
|
19
|
-
constructor(options) {
|
|
20
|
-
this.registryUrl = options.registryUrl.endsWith("/")
|
|
21
|
-
? options.registryUrl
|
|
22
|
-
: `${options.registryUrl}/`;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Set a callback to be notified when a model is dynamically loaded.
|
|
26
|
-
* This is used to trigger subgraph generation for dynamically loaded models.
|
|
27
|
-
*/
|
|
28
|
-
setOnModelLoaded(callback) {
|
|
29
|
-
this.onModelLoaded = callback;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Clear all caches. Useful for testing or when packages are updated.
|
|
33
|
-
*/
|
|
34
|
-
clearCache() {
|
|
35
|
-
this.documentTypeCache.clear();
|
|
36
|
-
this.packageModulesCache.clear();
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Load document models from a package in the HTTP registry.
|
|
40
|
-
* Imports directly from HTTP URL using Node.js loader hooks.
|
|
41
|
-
*/
|
|
42
|
-
async loadDocumentModels(packageName) {
|
|
43
|
-
if (!this.isValidPackageName(packageName)) {
|
|
44
|
-
throw new Error(`Invalid package name: ${packageName}`);
|
|
45
|
-
}
|
|
46
|
-
const url = `${this.registryUrl}${packageName}/document-models.js`;
|
|
47
|
-
try {
|
|
48
|
-
this.logger.verbose(`Importing document-models from: ${url}`);
|
|
49
|
-
// Direct import from HTTP URL - hooks handle the fetch
|
|
50
|
-
const module = (await import(url));
|
|
51
|
-
const models = Object.values(module).filter((m) => m !== null &&
|
|
52
|
-
typeof m === "object" &&
|
|
53
|
-
"documentModel" in m &&
|
|
54
|
-
m.documentModel !== null);
|
|
55
|
-
this.logger.verbose(`Loaded ${models.length} document models from ${packageName}`);
|
|
56
|
-
return models;
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
-
throw new Error(`Failed to load document models from ${packageName}: ${message}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Load document models from multiple packages.
|
|
65
|
-
* Continues loading even if some packages fail.
|
|
66
|
-
*/
|
|
67
|
-
async loadPackages(packageNames, logger) {
|
|
68
|
-
const allModels = [];
|
|
69
|
-
for (const pkgName of packageNames) {
|
|
70
|
-
const trimmedName = pkgName.trim();
|
|
71
|
-
if (!trimmedName)
|
|
72
|
-
continue;
|
|
73
|
-
try {
|
|
74
|
-
const models = await this.loadDocumentModels(trimmedName);
|
|
75
|
-
allModels.push(...models);
|
|
76
|
-
const logMsg = `Loaded ${models.length} document models from ${trimmedName}`;
|
|
77
|
-
logger?.info(logMsg);
|
|
78
|
-
this.logger.info(logMsg);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
const errMsg = `Failed to load package ${trimmedName}`;
|
|
82
|
-
logger?.error(errMsg, error);
|
|
83
|
-
this.logger.error(errMsg, error);
|
|
84
|
-
// Continue with other packages - don't fail startup
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return allModels;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Load a specific document model by document type.
|
|
91
|
-
* Implements IDocumentModelLoader interface.
|
|
92
|
-
*/
|
|
93
|
-
async load(documentType) {
|
|
94
|
-
// Step 1: Find which package contains this document type
|
|
95
|
-
const packageName = await this.findPackageByDocumentType(documentType);
|
|
96
|
-
// Step 2: Load all document models from that package (uses cache if available)
|
|
97
|
-
let models;
|
|
98
|
-
const cachedModels = this.packageModulesCache.get(packageName);
|
|
99
|
-
if (cachedModels) {
|
|
100
|
-
models = cachedModels;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
models = await this.loadDocumentModels(packageName);
|
|
104
|
-
this.packageModulesCache.set(packageName, models);
|
|
105
|
-
}
|
|
106
|
-
// Step 3: Find the specific model matching the document type
|
|
107
|
-
const model = models.find((m) => m.documentModel.global.id === documentType);
|
|
108
|
-
if (!model) {
|
|
109
|
-
const availableTypes = models.map((m) => m.documentModel.global.id);
|
|
110
|
-
throw new Error(`Document model ${documentType} not found in package ${packageName}. ` +
|
|
111
|
-
`Available types: ${availableTypes.join(", ")}`);
|
|
112
|
-
}
|
|
113
|
-
this.logger.info(`Loaded document model "${documentType}" from package "${packageName}"`);
|
|
114
|
-
// Notify listener about the dynamically loaded model
|
|
115
|
-
if (this.onModelLoaded) {
|
|
116
|
-
this.onModelLoaded(model);
|
|
117
|
-
}
|
|
118
|
-
return model;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Find the package that contains a specific document type.
|
|
122
|
-
* Queries the registry's /packages/by-document-type endpoint.
|
|
123
|
-
*/
|
|
124
|
-
async findPackageByDocumentType(documentType) {
|
|
125
|
-
// Check cache first
|
|
126
|
-
const cached = this.documentTypeCache.get(documentType);
|
|
127
|
-
if (cached) {
|
|
128
|
-
return cached;
|
|
129
|
-
}
|
|
130
|
-
const encodedType = encodeURIComponent(documentType);
|
|
131
|
-
const url = `${this.registryUrl}packages/by-document-type?type=${encodedType}`;
|
|
132
|
-
const response = await fetch(url);
|
|
133
|
-
if (!response.ok) {
|
|
134
|
-
throw new Error(`Registry query failed for document type ${documentType}: ${response.status} ${response.statusText}`);
|
|
135
|
-
}
|
|
136
|
-
const packageNames = (await response.json());
|
|
137
|
-
if (packageNames.length === 0) {
|
|
138
|
-
throw new Error(`No package found containing document type: ${documentType}`);
|
|
139
|
-
}
|
|
140
|
-
// Return first match (sorted alphabetically for determinism)
|
|
141
|
-
const packageName = packageNames.sort((a, b) => a.localeCompare(b))[0];
|
|
142
|
-
// Cache the result
|
|
143
|
-
this.documentTypeCache.set(documentType, packageName);
|
|
144
|
-
return packageName;
|
|
145
|
-
}
|
|
146
|
-
isValidPackageName(name) {
|
|
147
|
-
// npm package name pattern: optional scope + package name
|
|
148
|
-
const pattern = /^(@[a-z0-9][-a-z0-9._]*\/)?[a-z0-9][-a-z0-9._]*$/i;
|
|
149
|
-
return pattern.test(name) && !name.includes("..") && name.length <= 214;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Get list of all loaded package names.
|
|
153
|
-
*/
|
|
154
|
-
getLoadedPackages() {
|
|
155
|
-
return Array.from(this.packageModulesCache.keys());
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Get the document model modules for a specific package from cache.
|
|
159
|
-
*/
|
|
160
|
-
getPackageModules(packageName) {
|
|
161
|
-
return this.packageModulesCache.get(packageName);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Remove a package from all caches.
|
|
165
|
-
*/
|
|
166
|
-
removeFromCache(packageName) {
|
|
167
|
-
this.packageModulesCache.delete(packageName);
|
|
168
|
-
// Remove document type entries that point to this package
|
|
169
|
-
for (const [docType, pkg] of this.documentTypeCache) {
|
|
170
|
-
if (pkg === packageName) {
|
|
171
|
-
this.documentTypeCache.delete(docType);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=http-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-loader.js","sourceRoot":"","sources":["../../../src/packages/http-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { SubgraphClass } from "@powerhousedao/reactor-api";
|
|
2
|
-
import type { IProcessorHostModuleLegacy, ProcessorFactoryLegacy } from "document-drive";
|
|
3
|
-
import type { DocumentModelModule } from "document-model";
|
|
4
|
-
import type { IPackageLoader } from "../types.js";
|
|
5
|
-
/**
|
|
6
|
-
* This class is used to load packages using the import keyword.
|
|
7
|
-
*/
|
|
8
|
-
export declare class ImportPackageLoader implements IPackageLoader {
|
|
9
|
-
private readonly logger;
|
|
10
|
-
loadDocumentModels(identifier: string): Promise<DocumentModelModule[]>;
|
|
11
|
-
loadSubgraphs(identifier: string): Promise<SubgraphClass[]>;
|
|
12
|
-
loadProcessors(identifier: string): Promise<((module: IProcessorHostModuleLegacy) => ProcessorFactoryLegacy) | null>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=import-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-loader.d.ts","sourceRoot":"","sources":["../../../src/packages/import-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD;;GAEG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IAElE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiBtE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB3D,cAAc,CAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CACR,CAAC,CAAC,MAAM,EAAE,0BAA0B,KAAK,sBAAsB,CAAC,GAAG,IAAI,CACxE;CAeF"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { childLogger } from "document-drive";
|
|
2
|
-
import { loadDocumentModels as loadDocumentModelsUtil, loadProcessors as loadProcessorsUtil, loadSubgraphs as loadSubgraphsUtil, } from "./util.js";
|
|
3
|
-
/**
|
|
4
|
-
* This class is used to load packages using the import keyword.
|
|
5
|
-
*/
|
|
6
|
-
export class ImportPackageLoader {
|
|
7
|
-
logger = childLogger(["reactor-api", "import-loader"]);
|
|
8
|
-
async loadDocumentModels(identifier) {
|
|
9
|
-
this.logger.verbose("Loading document models from package:", identifier);
|
|
10
|
-
const pkgModule = await loadDocumentModelsUtil(identifier);
|
|
11
|
-
if (pkgModule) {
|
|
12
|
-
const models = Object.values(pkgModule);
|
|
13
|
-
this.logger.verbose(` ➜ Loaded ${models.length} Document Models from: ${identifier}`);
|
|
14
|
-
return models;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
this.logger.verbose(` ➜ No Document Models found: ${identifier}`);
|
|
18
|
-
return [];
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
async loadSubgraphs(identifier) {
|
|
22
|
-
this.logger.verbose("Loading subgraphs from package:", identifier);
|
|
23
|
-
const pkgModule = await loadSubgraphsUtil(identifier);
|
|
24
|
-
if (!pkgModule) {
|
|
25
|
-
this.logger.verbose(` ➜ No Subgraphs found: ${identifier}`);
|
|
26
|
-
return [];
|
|
27
|
-
}
|
|
28
|
-
const subgraphs = Object.values(pkgModule).map((subgraph) => {
|
|
29
|
-
return Object.values(subgraph);
|
|
30
|
-
});
|
|
31
|
-
this.logger.verbose(` ➜ Loaded Subgraphs from: ${identifier}`);
|
|
32
|
-
return subgraphs.flat();
|
|
33
|
-
}
|
|
34
|
-
async loadProcessors(identifier) {
|
|
35
|
-
this.logger.verbose("Loading processors from package:", identifier);
|
|
36
|
-
const pkgModule = await loadProcessorsUtil(identifier);
|
|
37
|
-
const factory = pkgModule?.processorFactory;
|
|
38
|
-
if (factory && typeof factory === "function") {
|
|
39
|
-
this.logger.verbose(` ➜ Loaded Processor Factory from: ${identifier}`);
|
|
40
|
-
return factory;
|
|
41
|
-
}
|
|
42
|
-
this.logger.verbose(` ➜ No Processor Factory found: ${identifier}`);
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=import-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-loader.js","sourceRoot":"","sources":["../../../src/packages/import-loader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EACL,kBAAkB,IAAI,sBAAsB,EAC5C,cAAc,IAAI,kBAAkB,EACpC,aAAa,IAAI,iBAAiB,GACnC,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACb,MAAM,GAAG,WAAW,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;IAExE,KAAK,CAAC,kBAAkB,CAAC,UAAkB;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,eAAe,MAAM,CAAC,MAAM,0BAA0B,UAAU,EAAE,CACnE,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;YACpE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;YAE9D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAEjE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAAkB;QAIlB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,OAAO,GAAG,SAAS,EAAE,gBAAgB,CAAC;QAE5C,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oCAAoC,UAAU,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolver.d.ts","sourceRoot":"","sources":["../../../src/packages/import-resolver.ts"],"names":[],"mappings":"AAmJA;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAoBnB"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
/**
|
|
3
|
-
* Attempts to import from suggested Node.js paths
|
|
4
|
-
*/
|
|
5
|
-
async function tryNodeSuggestedPaths(packageName, subPath) {
|
|
6
|
-
const suggestedPaths = [
|
|
7
|
-
`${packageName}/dist/${subPath}/index.js`,
|
|
8
|
-
`${packageName}/dist/${subPath}.js`,
|
|
9
|
-
];
|
|
10
|
-
for (const suggestedPath of suggestedPaths) {
|
|
11
|
-
try {
|
|
12
|
-
return (await import(/* @vite-ignore */ suggestedPath));
|
|
13
|
-
}
|
|
14
|
-
catch {
|
|
15
|
-
// Continue to next attempt
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Attempts to resolve package using import.meta.resolve
|
|
22
|
-
*/
|
|
23
|
-
async function tryImportMetaResolve(packageName, subPath) {
|
|
24
|
-
try {
|
|
25
|
-
const resolvedUrl = import.meta.resolve?.(`${packageName}/package.json`);
|
|
26
|
-
if (!resolvedUrl)
|
|
27
|
-
return null;
|
|
28
|
-
const packageRoot = path.dirname(new URL(resolvedUrl).pathname);
|
|
29
|
-
const pathsToTry = [
|
|
30
|
-
path.join(packageRoot, "dist", subPath, "index.js"),
|
|
31
|
-
path.join(packageRoot, "dist", `${subPath}.js`),
|
|
32
|
-
path.join(packageRoot, subPath, "index.js"),
|
|
33
|
-
path.join(packageRoot, `${subPath}.js`),
|
|
34
|
-
];
|
|
35
|
-
for (const attemptPath of pathsToTry) {
|
|
36
|
-
try {
|
|
37
|
-
return (await import(/* @vite-ignore */ attemptPath));
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
// Continue to next attempt
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// import.meta.resolve failed
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Resolves symlinks in node_modules to find the real package location
|
|
51
|
-
*/
|
|
52
|
-
async function resolveSymlinkedPaths(packageName, subPath) {
|
|
53
|
-
const packageBaseName = packageName.includes("/")
|
|
54
|
-
? packageName.split("/").pop()
|
|
55
|
-
: packageName;
|
|
56
|
-
const nodeModulesPatterns = [
|
|
57
|
-
path.join(process.cwd(), "node_modules", packageName),
|
|
58
|
-
path.join(process.cwd(), "node_modules", packageBaseName || packageName),
|
|
59
|
-
];
|
|
60
|
-
const workspacePatterns = [];
|
|
61
|
-
for (const nodeModulesPath of nodeModulesPatterns) {
|
|
62
|
-
try {
|
|
63
|
-
const fs = await import("node:fs");
|
|
64
|
-
if (fs.existsSync(nodeModulesPath)) {
|
|
65
|
-
const realPath = fs.realpathSync(nodeModulesPath);
|
|
66
|
-
workspacePatterns.push(path.join(realPath, "dist", subPath, "index.js"), path.join(realPath, "dist", `${subPath}.js`), path.join(realPath, subPath, "index.js"), path.join(realPath, `${subPath}.js`));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch {
|
|
70
|
-
// Continue to next attempt
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return workspacePatterns;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Generates common workspace pattern paths
|
|
77
|
-
*/
|
|
78
|
-
function getCommonWorkspacePaths(packageName, subPath) {
|
|
79
|
-
const packageBaseName = packageName.includes("/")
|
|
80
|
-
? packageName.split("/").pop()
|
|
81
|
-
: packageName;
|
|
82
|
-
const commonRoots = [process.cwd(), path.dirname(process.cwd())];
|
|
83
|
-
const workspacePatterns = [];
|
|
84
|
-
for (const root of commonRoots) {
|
|
85
|
-
workspacePatterns.push(path.join(root, "packages", packageBaseName || packageName, "dist", subPath, "index.js"), path.join(root, "packages", packageBaseName || packageName, "dist", `${subPath}.js`));
|
|
86
|
-
}
|
|
87
|
-
return workspacePatterns;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Attempts to import from a list of workspace patterns
|
|
91
|
-
*/
|
|
92
|
-
async function tryWorkspacePatterns(patterns) {
|
|
93
|
-
for (const workspacePath of patterns) {
|
|
94
|
-
try {
|
|
95
|
-
return (await import(/* @vite-ignore */ workspacePath));
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
// Continue to next attempt
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Attempts to resolve linked packages using various fallback strategies
|
|
105
|
-
*/
|
|
106
|
-
export async function resolveLinkedPackage(packageName, subPath) {
|
|
107
|
-
// Try Node.js suggested paths first
|
|
108
|
-
let result = await tryNodeSuggestedPaths(packageName, subPath);
|
|
109
|
-
if (result)
|
|
110
|
-
return result;
|
|
111
|
-
// Try import.meta.resolve
|
|
112
|
-
result = await tryImportMetaResolve(packageName, subPath);
|
|
113
|
-
if (result)
|
|
114
|
-
return result;
|
|
115
|
-
// Try symlink resolution
|
|
116
|
-
const symlinkPaths = await resolveSymlinkedPaths(packageName, subPath);
|
|
117
|
-
result = await tryWorkspacePatterns(symlinkPaths);
|
|
118
|
-
if (result)
|
|
119
|
-
return result;
|
|
120
|
-
// Try common workspace patterns as final fallback
|
|
121
|
-
const commonPaths = getCommonWorkspacePaths(packageName, subPath);
|
|
122
|
-
result = await tryWorkspacePatterns(commonPaths);
|
|
123
|
-
if (result)
|
|
124
|
-
return result;
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=import-resolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../../src/packages/import-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { SubgraphClass } from "@powerhousedao/reactor-api";
|
|
2
|
-
import type { IProcessorHostModuleLegacy, ProcessorFactoryLegacy } from "document-drive";
|
|
3
|
-
import type { DocumentModelModule } from "document-model";
|
|
4
|
-
import type { IPackageLoader, IPackageManager, IPackageManagerOptions, PackageManagerResult } from "./types.js";
|
|
5
|
-
export declare function getUniqueDocumentModels(...documentModels: DocumentModelModule<any>[][]): DocumentModelModule[];
|
|
6
|
-
export declare class PackageManager implements IPackageManager {
|
|
7
|
-
protected options: IPackageManagerOptions;
|
|
8
|
-
private readonly logger;
|
|
9
|
-
private loaders;
|
|
10
|
-
private docModelsMap;
|
|
11
|
-
private subgraphsMap;
|
|
12
|
-
private processorMap;
|
|
13
|
-
private configWatcher;
|
|
14
|
-
private debouncedUpdateCallbacks;
|
|
15
|
-
private eventEmitter;
|
|
16
|
-
constructor(loaders: IPackageLoader[], options: IPackageManagerOptions);
|
|
17
|
-
init(): Promise<PackageManagerResult>;
|
|
18
|
-
private loadPackages;
|
|
19
|
-
private loadDocumentModels;
|
|
20
|
-
private loadSubgraphs;
|
|
21
|
-
private loadProcessors;
|
|
22
|
-
private updateDocumentModelsForPackage;
|
|
23
|
-
private subscribePackages;
|
|
24
|
-
private getAllPackageNames;
|
|
25
|
-
private getPackageNamesFromConfigFile;
|
|
26
|
-
private initConfigFileWatcher;
|
|
27
|
-
private updatePackagesMap;
|
|
28
|
-
private updateSubgraphsMap;
|
|
29
|
-
private updateProcessorsMap;
|
|
30
|
-
onDocumentModelsChange(handler: (documentModels: Record<string, DocumentModelModule[]>) => void): void;
|
|
31
|
-
onSubgraphsChange(handler: (subgraphs: Map<string, SubgraphClass[]>) => void): void;
|
|
32
|
-
onProcessorsChange(handler: (processors: Map<string, ((module: IProcessorHostModuleLegacy) => ProcessorFactoryLegacy)[]>) => void): void;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=package-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/packages/package-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EAEtB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,uBAAuB,CACrC,GAAG,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,GAC9C,mBAAmB,EAAE,CAUvB;AAED,qBAAa,cAAe,YAAW,eAAe;IAyBlD,SAAS,CAAC,OAAO,EAAE,sBAAsB;IAxB3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAC1E,OAAO,CAAC,OAAO,CAA+B;IAE9C,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAGhB;IACJ,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,wBAAwB,CAAiC;IACjE,OAAO,CAAC,YAAY,CASf;gBAGH,OAAO,EAAE,cAAc,EAAE,EACf,OAAO,EAAE,sBAAsB;IAM9B,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC;YAQpC,YAAY;YA4BZ,kBAAkB;YA4ClB,aAAa;YA+Bb,cAAc;YA4Cd,8BAA8B;IAQ5C,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,mBAAmB;IAkB3B,sBAAsB,CACpB,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,KAAK,IAAI,GACvE,IAAI;IAIP,iBAAiB,CACf,OAAO,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,KAAK,IAAI,GACzD,IAAI;IAIP,kBAAkB,CAChB,OAAO,EAAE,CACP,UAAU,EAAE,GAAG,CACb,MAAM,EACN,CAAC,CAAC,MAAM,EAAE,0BAA0B,KAAK,sBAAsB,CAAC,EAAE,CACnE,KACE,IAAI,GACR,IAAI;CAGR"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { getConfig } from "@powerhousedao/config/node";
|
|
2
|
-
import { childLogger, driveDocumentModelModule } from "document-drive";
|
|
3
|
-
import { documentModelDocumentModelModule } from "document-model";
|
|
4
|
-
import EventEmitter from "node:events";
|
|
5
|
-
import { watchFile } from "node:fs";
|
|
6
|
-
import { debounce } from "./util.js";
|
|
7
|
-
export function getUniqueDocumentModels(...documentModels) {
|
|
8
|
-
const uniqueModels = new Map();
|
|
9
|
-
for (const models of documentModels) {
|
|
10
|
-
for (const model of models) {
|
|
11
|
-
uniqueModels.set(model.documentModel.global.id, model);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return Array.from(uniqueModels.values());
|
|
15
|
-
}
|
|
16
|
-
export class PackageManager {
|
|
17
|
-
options;
|
|
18
|
-
logger = childLogger(["reactor-api", "package-manager"]);
|
|
19
|
-
loaders;
|
|
20
|
-
docModelsMap = new Map();
|
|
21
|
-
subgraphsMap = new Map();
|
|
22
|
-
processorMap = new Map();
|
|
23
|
-
configWatcher;
|
|
24
|
-
debouncedUpdateCallbacks = new Map();
|
|
25
|
-
eventEmitter = new EventEmitter();
|
|
26
|
-
constructor(loaders, options) {
|
|
27
|
-
this.options = options;
|
|
28
|
-
this.loaders = loaders;
|
|
29
|
-
this.eventEmitter.setMaxListeners(0);
|
|
30
|
-
}
|
|
31
|
-
async init() {
|
|
32
|
-
if (this.options.configFile) {
|
|
33
|
-
this.initConfigFileWatcher(this.options.configFile);
|
|
34
|
-
}
|
|
35
|
-
return await this.loadPackages(this.getAllPackageNames());
|
|
36
|
-
}
|
|
37
|
-
async loadPackages(packages) {
|
|
38
|
-
this.logger.info(`Loading packages: ${packages.join(", ")}`);
|
|
39
|
-
const documentModelsMap = await this.loadDocumentModels(packages);
|
|
40
|
-
const subgraphsMap = await this.loadSubgraphs(packages);
|
|
41
|
-
const processorsMap = await this.loadProcessors(packages);
|
|
42
|
-
this.updatePackagesMap(documentModelsMap);
|
|
43
|
-
this.updateSubgraphsMap(subgraphsMap);
|
|
44
|
-
this.updateProcessorsMap(processorsMap);
|
|
45
|
-
try {
|
|
46
|
-
this.subscribePackages(packages);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
this.logger.error("Failed to subscribe to packages", error);
|
|
50
|
-
}
|
|
51
|
-
return {
|
|
52
|
-
documentModels: getUniqueDocumentModels(...Array.from(documentModelsMap.values())),
|
|
53
|
-
subgraphs: subgraphsMap,
|
|
54
|
-
processors: processorsMap,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
async loadDocumentModels(packages) {
|
|
58
|
-
this.logger.debug(`Loading document models from packages: ${packages.join(", ")}`);
|
|
59
|
-
const documentModelModuleMap = new Map();
|
|
60
|
-
// static prereqs
|
|
61
|
-
documentModelModuleMap.set("document-drive", [
|
|
62
|
-
driveDocumentModelModule,
|
|
63
|
-
]);
|
|
64
|
-
documentModelModuleMap.set("document-model", [
|
|
65
|
-
documentModelDocumentModelModule,
|
|
66
|
-
]);
|
|
67
|
-
for (const pkg of packages) {
|
|
68
|
-
const allDocumentModels = [];
|
|
69
|
-
for (const loader of this.loaders) {
|
|
70
|
-
try {
|
|
71
|
-
const documentModels = await loader.loadDocumentModels(pkg);
|
|
72
|
-
allDocumentModels.push(...documentModels);
|
|
73
|
-
this.logger.debug(`Loaded document models from package ${pkg}`, documentModels.map((dm) => dm.documentModel.global.id));
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
this.logger.debug(`Failed to load document models from package ${pkg}`, error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
documentModelModuleMap.set(pkg, allDocumentModels);
|
|
80
|
-
}
|
|
81
|
-
return documentModelModuleMap;
|
|
82
|
-
}
|
|
83
|
-
async loadSubgraphs(packages) {
|
|
84
|
-
this.logger.debug(`Loading subgraphs from packages: ${packages.join(", ")}`);
|
|
85
|
-
const subgraphsMap = new Map();
|
|
86
|
-
for (const pkg of packages) {
|
|
87
|
-
const allSubgraphs = [];
|
|
88
|
-
for (const loader of this.loaders) {
|
|
89
|
-
try {
|
|
90
|
-
const subgraphs = await loader.loadSubgraphs(pkg);
|
|
91
|
-
allSubgraphs.push(...subgraphs);
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
this.logger.debug(`Failed to load subgraphs from package ${pkg}`, error);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
subgraphsMap.set(pkg, allSubgraphs);
|
|
98
|
-
}
|
|
99
|
-
return subgraphsMap;
|
|
100
|
-
}
|
|
101
|
-
async loadProcessors(packages) {
|
|
102
|
-
this.logger.debug(`Loading processors from packages: ${packages.join(", ")}`);
|
|
103
|
-
const processorsMap = new Map();
|
|
104
|
-
for (const pkg of packages) {
|
|
105
|
-
const allProcessors = [];
|
|
106
|
-
for (const loader of this.loaders) {
|
|
107
|
-
try {
|
|
108
|
-
const processors = await loader.loadProcessors(pkg);
|
|
109
|
-
if (processors) {
|
|
110
|
-
allProcessors.push(processors);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
this.logger.debug(`Failed to load processors from package ${pkg}`, error);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
processorsMap.set(pkg, allProcessors);
|
|
118
|
-
}
|
|
119
|
-
this.updateProcessorsMap(processorsMap);
|
|
120
|
-
return processorsMap;
|
|
121
|
-
}
|
|
122
|
-
async updateDocumentModelsForPackage(pkg) {
|
|
123
|
-
this.logger.debug(`Updating document models for package: ${pkg}`);
|
|
124
|
-
const documentModels = await this.loadDocumentModels([pkg]);
|
|
125
|
-
const documentModelsMap = new Map(this.docModelsMap);
|
|
126
|
-
documentModelsMap.set(pkg, documentModels.get(pkg) ?? []);
|
|
127
|
-
this.updatePackagesMap(documentModelsMap);
|
|
128
|
-
}
|
|
129
|
-
subscribePackages(packages) {
|
|
130
|
-
const unsubs = [];
|
|
131
|
-
for (const pkg of packages) {
|
|
132
|
-
if (!this.debouncedUpdateCallbacks.has(pkg)) {
|
|
133
|
-
this.debouncedUpdateCallbacks.set(pkg, debounce(() => this.updateDocumentModelsForPackage(pkg), 1000));
|
|
134
|
-
}
|
|
135
|
-
const debouncedCallback = this.debouncedUpdateCallbacks.get(pkg);
|
|
136
|
-
for (const loader of this.loaders) {
|
|
137
|
-
if (loader.onDocumentModelsChange) {
|
|
138
|
-
const unsub = loader.onDocumentModelsChange(pkg, debouncedCallback);
|
|
139
|
-
unsubs.push(unsub);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return () => {
|
|
144
|
-
for (const unsub of unsubs) {
|
|
145
|
-
unsub();
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
getAllPackageNames() {
|
|
150
|
-
const packageNames = this.options.packages ?? [];
|
|
151
|
-
if (this.options.configFile) {
|
|
152
|
-
packageNames.push(...this.getPackageNamesFromConfigFile(this.options.configFile));
|
|
153
|
-
}
|
|
154
|
-
return packageNames;
|
|
155
|
-
}
|
|
156
|
-
getPackageNamesFromConfigFile(configFile) {
|
|
157
|
-
const loadedConfig = getConfig(configFile);
|
|
158
|
-
return loadedConfig.packages?.map((pkg) => pkg.packageName) ?? [];
|
|
159
|
-
}
|
|
160
|
-
initConfigFileWatcher(configFile) {
|
|
161
|
-
if (!this.configWatcher) {
|
|
162
|
-
this.configWatcher = watchFile(configFile, { interval: 100 }, (curr, prev) => {
|
|
163
|
-
if (curr.mtime === prev.mtime) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
void this.loadPackages(this.getAllPackageNames());
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
updatePackagesMap(packagesMap) {
|
|
171
|
-
const oldPackages = Array.from(this.docModelsMap.keys());
|
|
172
|
-
const newPackages = Array.from(packagesMap.keys());
|
|
173
|
-
oldPackages
|
|
174
|
-
.filter((pkg) => !newPackages.includes(pkg))
|
|
175
|
-
.forEach((pkg) => {
|
|
176
|
-
this.logger.info(`Removed package: ${pkg}`);
|
|
177
|
-
});
|
|
178
|
-
this.docModelsMap = packagesMap;
|
|
179
|
-
this.eventEmitter.emit("documentModelsChange", Object.fromEntries(packagesMap));
|
|
180
|
-
}
|
|
181
|
-
updateSubgraphsMap(subgraphsMap) {
|
|
182
|
-
const oldPackages = Array.from(this.subgraphsMap.keys());
|
|
183
|
-
const newPackages = Array.from(subgraphsMap.keys());
|
|
184
|
-
oldPackages
|
|
185
|
-
.filter((pkg) => !newPackages.includes(pkg))
|
|
186
|
-
.forEach((pkg) => {
|
|
187
|
-
this.logger.info(`Removed Subgraphs from: ${pkg}`);
|
|
188
|
-
});
|
|
189
|
-
this.subgraphsMap = subgraphsMap;
|
|
190
|
-
this.eventEmitter.emit("subgraphsChange", subgraphsMap);
|
|
191
|
-
}
|
|
192
|
-
updateProcessorsMap(processorsMap) {
|
|
193
|
-
const oldPackages = Array.from(this.processorMap.keys());
|
|
194
|
-
const newPackages = Array.from(processorsMap.keys());
|
|
195
|
-
oldPackages
|
|
196
|
-
.filter((pkg) => !newPackages.includes(pkg))
|
|
197
|
-
.forEach((pkg) => {
|
|
198
|
-
this.logger.info(`Removed Processor Factories from: ${pkg}`);
|
|
199
|
-
});
|
|
200
|
-
this.processorMap = processorsMap;
|
|
201
|
-
this.eventEmitter.emit("processorsChange", processorsMap);
|
|
202
|
-
}
|
|
203
|
-
onDocumentModelsChange(handler) {
|
|
204
|
-
this.eventEmitter.on("documentModelsChange", handler);
|
|
205
|
-
}
|
|
206
|
-
onSubgraphsChange(handler) {
|
|
207
|
-
this.eventEmitter.on("subgraphsChange", handler);
|
|
208
|
-
}
|
|
209
|
-
onProcessorsChange(handler) {
|
|
210
|
-
this.eventEmitter.on("processorsChange", handler);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
//# sourceMappingURL=package-manager.js.map
|