@symbolica/agentica 0.2.11-rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +77 -0
- package/README.md +50 -0
- package/bun/agentica.plugin.ts +40 -0
- package/default-configs/agentica-hello-world.ts +12 -0
- package/default-configs/esbuild.config.ts +30 -0
- package/default-configs/next.config.ts +9 -0
- package/default-configs/rollup.config.ts +57 -0
- package/default-configs/vite.config.ts +6 -0
- package/default-configs/webpack.config.ts +5 -0
- package/dist/bin/agentica-setup.d.ts +3 -0
- package/dist/bin/agentica-setup.d.ts.map +1 -0
- package/dist/bin/agentica-setup.js +1407 -0
- package/dist/bin/agentica-setup.js.map +1 -0
- package/dist/src/agentica/agent.d.ts +68 -0
- package/dist/src/agentica/agent.d.ts.map +1 -0
- package/dist/src/agentica/agent.js +171 -0
- package/dist/src/agentica/agent.js.map +1 -0
- package/dist/src/agentica/agentic.d.ts +35 -0
- package/dist/src/agentica/agentic.d.ts.map +1 -0
- package/dist/src/agentica/agentic.js +86 -0
- package/dist/src/agentica/agentic.js.map +1 -0
- package/dist/src/agentica/common.d.ts +89 -0
- package/dist/src/agentica/common.d.ts.map +1 -0
- package/dist/src/agentica/common.js +229 -0
- package/dist/src/agentica/common.js.map +1 -0
- package/dist/src/agentica/index.d.ts +3 -0
- package/dist/src/agentica/index.d.ts.map +1 -0
- package/dist/src/agentica/index.js +3 -0
- package/dist/src/agentica/index.js.map +1 -0
- package/dist/src/agentica/template.d.ts +19 -0
- package/dist/src/agentica/template.d.ts.map +1 -0
- package/dist/src/agentica/template.js +44 -0
- package/dist/src/agentica/template.js.map +1 -0
- package/dist/src/agentica-client/agentica-client.d.ts +14 -0
- package/dist/src/agentica-client/agentica-client.d.ts.map +1 -0
- package/dist/src/agentica-client/agentica-client.js +109 -0
- package/dist/src/agentica-client/agentica-client.js.map +1 -0
- package/dist/src/agentica-client/global-csm.d.ts +6 -0
- package/dist/src/agentica-client/global-csm.d.ts.map +1 -0
- package/dist/src/agentica-client/global-csm.js +33 -0
- package/dist/src/agentica-client/global-csm.js.map +1 -0
- package/dist/src/agentica-client/index.d.ts +3 -0
- package/dist/src/agentica-client/index.d.ts.map +1 -0
- package/dist/src/agentica-client/index.js +3 -0
- package/dist/src/agentica-client/index.js.map +1 -0
- package/dist/src/agentica-client/utils.d.ts +2 -0
- package/dist/src/agentica-client/utils.d.ts.map +1 -0
- package/dist/src/agentica-client/utils.js +4 -0
- package/dist/src/agentica-client/utils.js.map +1 -0
- package/dist/src/agentica-unplugin.d.ts +21 -0
- package/dist/src/agentica-unplugin.d.ts.map +1 -0
- package/dist/src/agentica-unplugin.js +136 -0
- package/dist/src/agentica-unplugin.js.map +1 -0
- package/dist/src/bundlers/bun.d.ts +7 -0
- package/dist/src/bundlers/bun.d.ts.map +1 -0
- package/dist/src/bundlers/bun.js +55 -0
- package/dist/src/bundlers/bun.js.map +1 -0
- package/dist/src/bundlers/esbuild.d.ts +3 -0
- package/dist/src/bundlers/esbuild.d.ts.map +1 -0
- package/dist/src/bundlers/esbuild.js +3 -0
- package/dist/src/bundlers/esbuild.js.map +1 -0
- package/dist/src/bundlers/rollup.d.ts +3 -0
- package/dist/src/bundlers/rollup.d.ts.map +1 -0
- package/dist/src/bundlers/rollup.js +3 -0
- package/dist/src/bundlers/rollup.js.map +1 -0
- package/dist/src/bundlers/utils.d.ts +5 -0
- package/dist/src/bundlers/utils.d.ts.map +1 -0
- package/dist/src/bundlers/utils.js +37 -0
- package/dist/src/bundlers/utils.js.map +1 -0
- package/dist/src/bundlers/vite.d.ts +3 -0
- package/dist/src/bundlers/vite.d.ts.map +1 -0
- package/dist/src/bundlers/vite.js +3 -0
- package/dist/src/bundlers/vite.js.map +1 -0
- package/dist/src/bundlers/webpack.d.ts +3 -0
- package/dist/src/bundlers/webpack.d.ts.map +1 -0
- package/dist/src/bundlers/webpack.js +3 -0
- package/dist/src/bundlers/webpack.js.map +1 -0
- package/dist/src/client-session-manager/at-exit.d.ts +6 -0
- package/dist/src/client-session-manager/at-exit.d.ts.map +1 -0
- package/dist/src/client-session-manager/at-exit.js +120 -0
- package/dist/src/client-session-manager/at-exit.js.map +1 -0
- package/dist/src/client-session-manager/client-session-manager.d.ts +73 -0
- package/dist/src/client-session-manager/client-session-manager.d.ts.map +1 -0
- package/dist/src/client-session-manager/client-session-manager.js +859 -0
- package/dist/src/client-session-manager/client-session-manager.js.map +1 -0
- package/dist/src/client-session-manager/message-utils.d.ts +7 -0
- package/dist/src/client-session-manager/message-utils.d.ts.map +1 -0
- package/dist/src/client-session-manager/message-utils.js +58 -0
- package/dist/src/client-session-manager/message-utils.js.map +1 -0
- package/dist/src/client-session-manager/queue.d.ts +10 -0
- package/dist/src/client-session-manager/queue.d.ts.map +1 -0
- package/dist/src/client-session-manager/queue.js +41 -0
- package/dist/src/client-session-manager/queue.js.map +1 -0
- package/dist/src/client-session-manager/types.d.ts +23 -0
- package/dist/src/client-session-manager/types.d.ts.map +1 -0
- package/dist/src/client-session-manager/types.js +2 -0
- package/dist/src/client-session-manager/types.js.map +1 -0
- package/dist/src/coming-soon.d.ts +45 -0
- package/dist/src/coming-soon.d.ts.map +1 -0
- package/dist/src/coming-soon.js +206 -0
- package/dist/src/coming-soon.js.map +1 -0
- package/dist/src/common.d.ts +3 -0
- package/dist/src/common.d.ts.map +1 -0
- package/dist/src/common.js +14 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/errors/base.d.ts +16 -0
- package/dist/src/errors/base.d.ts.map +1 -0
- package/dist/src/errors/base.js +45 -0
- package/dist/src/errors/base.js.map +1 -0
- package/dist/src/errors/bugs.d.ts +5 -0
- package/dist/src/errors/bugs.d.ts.map +1 -0
- package/dist/src/errors/bugs.js +15 -0
- package/dist/src/errors/bugs.js.map +1 -0
- package/dist/src/errors/connection.d.ts +17 -0
- package/dist/src/errors/connection.d.ts.map +1 -0
- package/dist/src/errors/connection.js +27 -0
- package/dist/src/errors/connection.js.map +1 -0
- package/dist/src/errors/generation.d.ts +53 -0
- package/dist/src/errors/generation.d.ts.map +1 -0
- package/dist/src/errors/generation.js +73 -0
- package/dist/src/errors/generation.js.map +1 -0
- package/dist/src/errors/index.d.ts +9 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +62 -0
- package/dist/src/errors/index.js.map +1 -0
- package/dist/src/errors/invocation.d.ts +8 -0
- package/dist/src/errors/invocation.d.ts.map +1 -0
- package/dist/src/errors/invocation.js +8 -0
- package/dist/src/errors/invocation.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +33 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logging/composite-logger.d.ts +20 -0
- package/dist/src/logging/composite-logger.d.ts.map +1 -0
- package/dist/src/logging/composite-logger.js +107 -0
- package/dist/src/logging/composite-logger.js.map +1 -0
- package/dist/src/logging/config.d.ts +17 -0
- package/dist/src/logging/config.d.ts.map +1 -0
- package/dist/src/logging/config.js +88 -0
- package/dist/src/logging/config.js.map +1 -0
- package/dist/src/logging/index.d.ts +11 -0
- package/dist/src/logging/index.d.ts.map +1 -0
- package/dist/src/logging/index.js +24 -0
- package/dist/src/logging/index.js.map +1 -0
- package/dist/src/logging/logger.d.ts +30 -0
- package/dist/src/logging/logger.d.ts.map +1 -0
- package/dist/src/logging/logger.js +156 -0
- package/dist/src/logging/logger.js.map +1 -0
- package/dist/src/logging/otel-logger.d.ts +24 -0
- package/dist/src/logging/otel-logger.d.ts.map +1 -0
- package/dist/src/logging/otel-logger.js +114 -0
- package/dist/src/logging/otel-logger.js.map +1 -0
- package/dist/src/logging/span.d.ts +23 -0
- package/dist/src/logging/span.d.ts.map +1 -0
- package/dist/src/logging/span.js +42 -0
- package/dist/src/logging/span.js.map +1 -0
- package/dist/src/logging/types.d.ts +32 -0
- package/dist/src/logging/types.d.ts.map +1 -0
- package/dist/src/logging/types.js +2 -0
- package/dist/src/logging/types.js.map +1 -0
- package/dist/src/nextjs-wrapper.d.ts +6 -0
- package/dist/src/nextjs-wrapper.d.ts.map +1 -0
- package/dist/src/nextjs-wrapper.js +18 -0
- package/dist/src/nextjs-wrapper.js.map +1 -0
- package/dist/src/otel-config.d.ts +18 -0
- package/dist/src/otel-config.d.ts.map +1 -0
- package/dist/src/otel-config.js +116 -0
- package/dist/src/otel-config.js.map +1 -0
- package/dist/src/otel-logging.d.ts +13 -0
- package/dist/src/otel-logging.d.ts.map +1 -0
- package/dist/src/otel-logging.js +63 -0
- package/dist/src/otel-logging.js.map +1 -0
- package/dist/src/transformer/codegen/context-gen.d.ts +31 -0
- package/dist/src/transformer/codegen/context-gen.d.ts.map +1 -0
- package/dist/src/transformer/codegen/context-gen.js +292 -0
- package/dist/src/transformer/codegen/context-gen.js.map +1 -0
- package/dist/src/transformer/processor/class-targets.d.ts +11 -0
- package/dist/src/transformer/processor/class-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/class-targets.js +35 -0
- package/dist/src/transformer/processor/class-targets.js.map +1 -0
- package/dist/src/transformer/processor/function-targets.d.ts +11 -0
- package/dist/src/transformer/processor/function-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/function-targets.js +9 -0
- package/dist/src/transformer/processor/function-targets.js.map +1 -0
- package/dist/src/transformer/processor/object-targets.d.ts +11 -0
- package/dist/src/transformer/processor/object-targets.d.ts.map +1 -0
- package/dist/src/transformer/processor/object-targets.js +9 -0
- package/dist/src/transformer/processor/object-targets.js.map +1 -0
- package/dist/src/transformer/processor/processor-utils.d.ts +55 -0
- package/dist/src/transformer/processor/processor-utils.d.ts.map +1 -0
- package/dist/src/transformer/processor/processor-utils.js +491 -0
- package/dist/src/transformer/processor/processor-utils.js.map +1 -0
- package/dist/src/transformer/processor/processor.d.ts +22 -0
- package/dist/src/transformer/processor/processor.d.ts.map +1 -0
- package/dist/src/transformer/processor/processor.js +187 -0
- package/dist/src/transformer/processor/processor.js.map +1 -0
- package/dist/src/transformer/transformer-config.d.ts +9 -0
- package/dist/src/transformer/transformer-config.d.ts.map +1 -0
- package/dist/src/transformer/transformer-config.js +13 -0
- package/dist/src/transformer/transformer-config.js.map +1 -0
- package/dist/src/transformer/transformer-utils.d.ts +29 -0
- package/dist/src/transformer/transformer-utils.d.ts.map +1 -0
- package/dist/src/transformer/transformer-utils.js +349 -0
- package/dist/src/transformer/transformer-utils.js.map +1 -0
- package/dist/src/transformer/transformer.d.ts +4 -0
- package/dist/src/transformer/transformer.d.ts.map +1 -0
- package/dist/src/transformer/transformer.js +96 -0
- package/dist/src/transformer/transformer.js.map +1 -0
- package/dist/src/transformer/traverser/class-traversal.d.ts +9 -0
- package/dist/src/transformer/traverser/class-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/class-traversal.js +292 -0
- package/dist/src/transformer/traverser/class-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/function-traversal.d.ts +7 -0
- package/dist/src/transformer/traverser/function-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/function-traversal.js +29 -0
- package/dist/src/transformer/traverser/function-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/system-traversal.d.ts +9 -0
- package/dist/src/transformer/traverser/system-traversal.d.ts.map +1 -0
- package/dist/src/transformer/traverser/system-traversal.js +309 -0
- package/dist/src/transformer/traverser/system-traversal.js.map +1 -0
- package/dist/src/transformer/traverser/traversal-utils.d.ts +16 -0
- package/dist/src/transformer/traverser/traversal-utils.d.ts.map +1 -0
- package/dist/src/transformer/traverser/traversal-utils.js +132 -0
- package/dist/src/transformer/traverser/traversal-utils.js.map +1 -0
- package/dist/src/transformer/traverser/traverser.d.ts +44 -0
- package/dist/src/transformer/traverser/traverser.d.ts.map +1 -0
- package/dist/src/transformer/traverser/traverser.js +369 -0
- package/dist/src/transformer/traverser/traverser.js.map +1 -0
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +2 -0
- package/dist/src/version.js.map +1 -0
- package/dist/src/warpc/frame-context/annotation-ctx.d.ts +15 -0
- package/dist/src/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/annotation-ctx.js +33 -0
- package/dist/src/warpc/frame-context/annotation-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/frame-ctx.d.ts +27 -0
- package/dist/src/warpc/frame-context/frame-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/frame-ctx.js +49 -0
- package/dist/src/warpc/frame-context/frame-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.js +197 -0
- package/dist/src/warpc/frame-context/message-conversion/decoder.js.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts +21 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.js +225 -0
- package/dist/src/warpc/frame-context/message-conversion/encoder.js.map +1 -0
- package/dist/src/warpc/frame-context/resource-ctx.d.ts +45 -0
- package/dist/src/warpc/frame-context/resource-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/resource-ctx.js +112 -0
- package/dist/src/warpc/frame-context/resource-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts +22 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.js +174 -0
- package/dist/src/warpc/frame-context/synthetic-resources/factory.js.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.js +2 -0
- package/dist/src/warpc/frame-context/synthetic-resources/index.js.map +1 -0
- package/dist/src/warpc/frame-context/system-ctx.d.ts +18 -0
- package/dist/src/warpc/frame-context/system-ctx.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/system-ctx.js +132 -0
- package/dist/src/warpc/frame-context/system-ctx.js.map +1 -0
- package/dist/src/warpc/frame-context/uid-gen.d.ts +10 -0
- package/dist/src/warpc/frame-context/uid-gen.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/uid-gen.js +20 -0
- package/dist/src/warpc/frame-context/uid-gen.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.d.ts +16 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.js +193 -0
- package/dist/src/warpc/frame-context/virtual-resources/default.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js +257 -0
- package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts +29 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js +16 -0
- package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js.map +1 -0
- package/dist/src/warpc/frame.d.ts +45 -0
- package/dist/src/warpc/frame.d.ts.map +1 -0
- package/dist/src/warpc/frame.js +390 -0
- package/dist/src/warpc/frame.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +64 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js +138 -0
- package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/concept.d.ts +33 -0
- package/dist/src/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/concept.js +47 -0
- package/dist/src/warpc/msg-protocol/concept/concept.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js +86 -0
- package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.js +56 -0
- package/dist/src/warpc/msg-protocol/concept/rehydrate.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js +158 -0
- package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
- package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts +19 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js +23 -0
- package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts +27 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
- package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js +301 -0
- package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.js +74 -0
- package/dist/src/warpc/msg-protocol/concept/value/atom.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.d.ts +59 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.js +189 -0
- package/dist/src/warpc/msg-protocol/concept/value/container.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.js +61 -0
- package/dist/src/warpc/msg-protocol/concept/value/symbol.js.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.js +12 -0
- package/dist/src/warpc/msg-protocol/concept/value/value-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/kinds.d.ts +118 -0
- package/dist/src/warpc/msg-protocol/kinds.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/kinds.js +131 -0
- package/dist/src/warpc/msg-protocol/kinds.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.js +19 -0
- package/dist/src/warpc/msg-protocol/rpc/event-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.js +75 -0
- package/dist/src/warpc/msg-protocol/rpc/request-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.js +37 -0
- package/dist/src/warpc/msg-protocol/rpc/response-msg.js.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js +13 -0
- package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js.map +1 -0
- package/dist/src/warpc/rpc-channel/handler.d.ts +23 -0
- package/dist/src/warpc/rpc-channel/handler.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/handler.js +163 -0
- package/dist/src/warpc/rpc-channel/handler.js.map +1 -0
- package/dist/src/warpc/rpc-channel/mux.d.ts +25 -0
- package/dist/src/warpc/rpc-channel/mux.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/mux.js +95 -0
- package/dist/src/warpc/rpc-channel/mux.js.map +1 -0
- package/dist/src/warpc/rpc-channel/responder.d.ts +18 -0
- package/dist/src/warpc/rpc-channel/responder.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/responder.js +423 -0
- package/dist/src/warpc/rpc-channel/responder.js.map +1 -0
- package/dist/src/warpc/rpc-channel/socket.d.ts +25 -0
- package/dist/src/warpc/rpc-channel/socket.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/socket.js +58 -0
- package/dist/src/warpc/rpc-channel/socket.js.map +1 -0
- package/dist/src/warpc/rpc-channel/utils.d.ts +6 -0
- package/dist/src/warpc/rpc-channel/utils.d.ts.map +1 -0
- package/dist/src/warpc/rpc-channel/utils.js +15 -0
- package/dist/src/warpc/rpc-channel/utils.js.map +1 -0
- package/dist/src/warpc/runtime.d.ts +36 -0
- package/dist/src/warpc/runtime.d.ts.map +1 -0
- package/dist/src/warpc/runtime.js +153 -0
- package/dist/src/warpc/runtime.js.map +1 -0
- package/dist-transformer/agentica/agent.d.ts +81 -0
- package/dist-transformer/agentica/agent.d.ts.map +1 -0
- package/dist-transformer/agentica/agent.js +185 -0
- package/dist-transformer/agentica/agentic.d.ts +36 -0
- package/dist-transformer/agentica/agentic.d.ts.map +1 -0
- package/dist-transformer/agentica/agentic.js +100 -0
- package/dist-transformer/agentica/common.d.ts +137 -0
- package/dist-transformer/agentica/common.d.ts.map +1 -0
- package/dist-transformer/agentica/common.js +276 -0
- package/dist-transformer/agentica/template.d.ts +19 -0
- package/dist-transformer/agentica/template.d.ts.map +1 -0
- package/dist-transformer/agentica/template.js +47 -0
- package/dist-transformer/agentica-client/agentica-client.d.ts +32 -0
- package/dist-transformer/agentica-client/agentica-client.d.ts.map +1 -0
- package/dist-transformer/agentica-client/agentica-client.js +129 -0
- package/dist-transformer/agentica-client/global-csm.d.ts +20 -0
- package/dist-transformer/agentica-client/global-csm.d.ts.map +1 -0
- package/dist-transformer/agentica-client/global-csm.js +46 -0
- package/dist-transformer/agentica-client/index.d.ts +3 -0
- package/dist-transformer/agentica-client/index.d.ts.map +1 -0
- package/dist-transformer/agentica-client/index.js +2 -0
- package/dist-transformer/agentica-client/utils.d.ts +5 -0
- package/dist-transformer/agentica-client/utils.d.ts.map +1 -0
- package/dist-transformer/agentica-client/utils.js +6 -0
- package/dist-transformer/bundlers/utils.d.ts +18 -0
- package/dist-transformer/bundlers/utils.d.ts.map +1 -0
- package/dist-transformer/bundlers/utils.js +49 -0
- package/dist-transformer/client-session-manager/at-exit.d.ts +19 -0
- package/dist-transformer/client-session-manager/at-exit.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/at-exit.js +140 -0
- package/dist-transformer/client-session-manager/client-session-manager.d.ts +148 -0
- package/dist-transformer/client-session-manager/client-session-manager.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/client-session-manager.js +966 -0
- package/dist-transformer/client-session-manager/message-utils.d.ts +19 -0
- package/dist-transformer/client-session-manager/message-utils.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/message-utils.js +69 -0
- package/dist-transformer/client-session-manager/queue.d.ts +13 -0
- package/dist-transformer/client-session-manager/queue.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/queue.js +45 -0
- package/dist-transformer/client-session-manager/types.d.ts +23 -0
- package/dist-transformer/client-session-manager/types.d.ts.map +1 -0
- package/dist-transformer/client-session-manager/types.js +1 -0
- package/dist-transformer/coming-soon.d.ts +45 -0
- package/dist-transformer/coming-soon.d.ts.map +1 -0
- package/dist-transformer/coming-soon.js +210 -0
- package/dist-transformer/common.d.ts +3 -0
- package/dist-transformer/common.d.ts.map +1 -0
- package/dist-transformer/common.js +13 -0
- package/dist-transformer/errors/base.d.ts +20 -0
- package/dist-transformer/errors/base.d.ts.map +1 -0
- package/dist-transformer/errors/base.js +43 -0
- package/dist-transformer/errors/bugs.d.ts +7 -0
- package/dist-transformer/errors/bugs.d.ts.map +1 -0
- package/dist-transformer/errors/bugs.js +16 -0
- package/dist-transformer/errors/connection.d.ts +22 -0
- package/dist-transformer/errors/connection.d.ts.map +1 -0
- package/dist-transformer/errors/connection.js +31 -0
- package/dist-transformer/errors/generation.d.ts +75 -0
- package/dist-transformer/errors/generation.d.ts.map +1 -0
- package/dist-transformer/errors/generation.js +98 -0
- package/dist-transformer/errors/index.d.ts +9 -0
- package/dist-transformer/errors/index.d.ts.map +1 -0
- package/dist-transformer/errors/index.js +64 -0
- package/dist-transformer/errors/invocation.d.ts +8 -0
- package/dist-transformer/errors/invocation.d.ts.map +1 -0
- package/dist-transformer/errors/invocation.js +7 -0
- package/dist-transformer/index.d.ts +8 -0
- package/dist-transformer/index.d.ts.map +1 -0
- package/dist-transformer/index.js +40 -0
- package/dist-transformer/logging/composite-logger.d.ts +28 -0
- package/dist-transformer/logging/composite-logger.d.ts.map +1 -0
- package/dist-transformer/logging/composite-logger.js +118 -0
- package/dist-transformer/logging/config.d.ts +17 -0
- package/dist-transformer/logging/config.d.ts.map +1 -0
- package/dist-transformer/logging/config.js +86 -0
- package/dist-transformer/logging/index.d.ts +19 -0
- package/dist-transformer/logging/index.d.ts.map +1 -0
- package/dist-transformer/logging/index.js +32 -0
- package/dist-transformer/logging/logger.d.ts +30 -0
- package/dist-transformer/logging/logger.d.ts.map +1 -0
- package/dist-transformer/logging/logger.js +153 -0
- package/dist-transformer/logging/otel-logger.d.ts +33 -0
- package/dist-transformer/logging/otel-logger.d.ts.map +1 -0
- package/dist-transformer/logging/otel-logger.js +121 -0
- package/dist-transformer/logging/span.d.ts +23 -0
- package/dist-transformer/logging/span.d.ts.map +1 -0
- package/dist-transformer/logging/span.js +40 -0
- package/dist-transformer/logging/types.d.ts +32 -0
- package/dist-transformer/logging/types.d.ts.map +1 -0
- package/dist-transformer/logging/types.js +1 -0
- package/dist-transformer/otel-config.d.ts +61 -0
- package/dist-transformer/otel-config.d.ts.map +1 -0
- package/dist-transformer/otel-config.js +175 -0
- package/dist-transformer/otel-logging.d.ts +49 -0
- package/dist-transformer/otel-logging.d.ts.map +1 -0
- package/dist-transformer/otel-logging.js +99 -0
- package/dist-transformer/transformer/codegen/context-gen.d.ts +47 -0
- package/dist-transformer/transformer/codegen/context-gen.d.ts.map +1 -0
- package/dist-transformer/transformer/codegen/context-gen.js +354 -0
- package/dist-transformer/transformer/processor/class-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/class-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/class-targets.js +37 -0
- package/dist-transformer/transformer/processor/function-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/function-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/function-targets.js +8 -0
- package/dist-transformer/transformer/processor/object-targets.d.ts +11 -0
- package/dist-transformer/transformer/processor/object-targets.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/object-targets.js +8 -0
- package/dist-transformer/transformer/processor/processor-utils.d.ts +67 -0
- package/dist-transformer/transformer/processor/processor-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/processor-utils.js +533 -0
- package/dist-transformer/transformer/processor/processor.d.ts +22 -0
- package/dist-transformer/transformer/processor/processor.d.ts.map +1 -0
- package/dist-transformer/transformer/processor/processor.js +202 -0
- package/dist-transformer/transformer/transformer-config.d.ts +9 -0
- package/dist-transformer/transformer/transformer-config.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer-config.js +12 -0
- package/dist-transformer/transformer/transformer-utils.d.ts +29 -0
- package/dist-transformer/transformer/transformer-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer-utils.js +364 -0
- package/dist-transformer/transformer/transformer.d.ts +8 -0
- package/dist-transformer/transformer/transformer.d.ts.map +1 -0
- package/dist-transformer/transformer/transformer.js +104 -0
- package/dist-transformer/transformer/traverser/class-traversal.d.ts +9 -0
- package/dist-transformer/transformer/traverser/class-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/class-traversal.js +336 -0
- package/dist-transformer/transformer/traverser/function-traversal.d.ts +7 -0
- package/dist-transformer/transformer/traverser/function-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/function-traversal.js +28 -0
- package/dist-transformer/transformer/traverser/system-traversal.d.ts +13 -0
- package/dist-transformer/transformer/traverser/system-traversal.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/system-traversal.js +350 -0
- package/dist-transformer/transformer/traverser/traversal-utils.d.ts +16 -0
- package/dist-transformer/transformer/traverser/traversal-utils.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/traversal-utils.js +132 -0
- package/dist-transformer/transformer/traverser/traverser.d.ts +44 -0
- package/dist-transformer/transformer/traverser/traverser.d.ts.map +1 -0
- package/dist-transformer/transformer/traverser/traverser.js +414 -0
- package/dist-transformer/version.d.ts +2 -0
- package/dist-transformer/version.d.ts.map +1 -0
- package/dist-transformer/version.js +3 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts +15 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/annotation-ctx.js +30 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.d.ts +27 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/frame-ctx.js +42 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/message-conversion/decoder.js +204 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts +22 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/message-conversion/encoder.js +246 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.d.ts +45 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/resource-ctx.js +103 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts +31 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/synthetic-resources/factory.js +196 -0
- package/dist-transformer/warpc/frame-context/system-ctx.d.ts +18 -0
- package/dist-transformer/warpc/frame-context/system-ctx.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/system-ctx.js +135 -0
- package/dist-transformer/warpc/frame-context/uid-gen.d.ts +14 -0
- package/dist-transformer/warpc/frame-context/uid-gen.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/uid-gen.js +22 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts +16 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/default.js +196 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.js +255 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts +32 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
- package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.js +15 -0
- package/dist-transformer/warpc/frame.d.ts +45 -0
- package/dist-transformer/warpc/frame.d.ts.map +1 -0
- package/dist-transformer/warpc/frame.js +417 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +68 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.js +135 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts +33 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/concept.js +44 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.js +74 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/rehydrate.js +61 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.js +157 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts +25 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.js +24 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts +37 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.js +306 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/atom.js +69 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts +59 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/container.js +185 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/symbol.js +57 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.js +10 -0
- package/dist-transformer/warpc/msg-protocol/kinds.d.ts +118 -0
- package/dist-transformer/warpc/msg-protocol/kinds.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/kinds.js +141 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/event-msg.js +15 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/request-msg.js +64 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/response-msg.js +32 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
- package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.js +9 -0
- package/dist-transformer/warpc/rpc-channel/handler.d.ts +23 -0
- package/dist-transformer/warpc/rpc-channel/handler.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/handler.js +163 -0
- package/dist-transformer/warpc/rpc-channel/mux.d.ts +25 -0
- package/dist-transformer/warpc/rpc-channel/mux.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/mux.js +93 -0
- package/dist-transformer/warpc/rpc-channel/responder.d.ts +27 -0
- package/dist-transformer/warpc/rpc-channel/responder.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/responder.js +463 -0
- package/dist-transformer/warpc/rpc-channel/socket.d.ts +25 -0
- package/dist-transformer/warpc/rpc-channel/socket.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/socket.js +70 -0
- package/dist-transformer/warpc/rpc-channel/utils.d.ts +6 -0
- package/dist-transformer/warpc/rpc-channel/utils.d.ts.map +1 -0
- package/dist-transformer/warpc/rpc-channel/utils.js +14 -0
- package/dist-transformer/warpc/runtime.d.ts +36 -0
- package/dist-transformer/warpc/runtime.d.ts.map +1 -0
- package/dist-transformer/warpc/runtime.js +159 -0
- package/package.json +126 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { createLogger } from '../../../logging/index.js';
|
|
2
|
+
import { CLASS_IDS, SystemContext } from '../../../warpc/msg-protocol/concept/resource/system-msg.js';
|
|
3
|
+
export class SyntheticsFactory {
|
|
4
|
+
constructor(context, logger) {
|
|
5
|
+
this.logger = logger ?? createLogger(`factory:synthetics`);
|
|
6
|
+
this.context = context;
|
|
7
|
+
}
|
|
8
|
+
createSyntheticGenericType(msg, instance_of_generic, _typeArgs) {
|
|
9
|
+
const genericBaseName = SystemContext.getNameByUID(instance_of_generic) ?? `GenericAlias`;
|
|
10
|
+
const name = msg.payload.name ?? 'Object';
|
|
11
|
+
const synthCtor = class {
|
|
12
|
+
constructor(..._args) {
|
|
13
|
+
throw new Error(`Cannot instantiate generic alias ${name} of base type ${genericBaseName}`);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(synthCtor, 'name', {
|
|
17
|
+
value: name,
|
|
18
|
+
writable: false,
|
|
19
|
+
configurable: true,
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(synthCtor, '__uid__', {
|
|
22
|
+
value: msg.uid,
|
|
23
|
+
writable: false,
|
|
24
|
+
configurable: true,
|
|
25
|
+
});
|
|
26
|
+
return synthCtor;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a synthetic class resource for an interface.
|
|
30
|
+
* Python will create Protocol classes from interfaces and needs to access attributes
|
|
31
|
+
* for introspection (inspect module, print_stubs, etc.).
|
|
32
|
+
*/
|
|
33
|
+
createSyntheticClassForInterface(msg, name) {
|
|
34
|
+
const payload = msg.payload;
|
|
35
|
+
// Maybe turn this into a concrete class (if possible)
|
|
36
|
+
const { ctor: synthCtor, msgUp } = this.maybeMakeConcreteClass(msg);
|
|
37
|
+
// Set the class name
|
|
38
|
+
Object.defineProperty(synthCtor, 'name', {
|
|
39
|
+
value: name,
|
|
40
|
+
writable: false,
|
|
41
|
+
configurable: true,
|
|
42
|
+
});
|
|
43
|
+
// Add docstring if present
|
|
44
|
+
if (payload.doc) {
|
|
45
|
+
Object.defineProperty(synthCtor, '__doc__', {
|
|
46
|
+
value: payload.doc,
|
|
47
|
+
writable: false,
|
|
48
|
+
configurable: true,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// Add static field stubs
|
|
52
|
+
const clsMsg = msgUp ?? msg.asClass();
|
|
53
|
+
for (const field of clsMsg.getStaticFields()) {
|
|
54
|
+
// Create a getter that throws (Protocols shouldn't be instantiated)
|
|
55
|
+
Object.defineProperty(synthCtor, field.name, {
|
|
56
|
+
get() {
|
|
57
|
+
throw new Error(`Cannot access field ${field.name} on Protocol ${name}`);
|
|
58
|
+
},
|
|
59
|
+
enumerable: false,
|
|
60
|
+
configurable: true,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Add static method stubs
|
|
64
|
+
for (const [methodName] of clsMsg.getStaticMethods()) {
|
|
65
|
+
// Create a method stub that throws if called
|
|
66
|
+
const methodStub = function (..._args) {
|
|
67
|
+
throw new Error(`Cannot call method ${methodName} on Protocol ${name}`);
|
|
68
|
+
};
|
|
69
|
+
// Set method name
|
|
70
|
+
Object.defineProperty(methodStub, 'name', {
|
|
71
|
+
value: methodName,
|
|
72
|
+
writable: false,
|
|
73
|
+
configurable: true,
|
|
74
|
+
});
|
|
75
|
+
// Add to class
|
|
76
|
+
Object.defineProperty(synthCtor, methodName, {
|
|
77
|
+
value: methodStub,
|
|
78
|
+
writable: false,
|
|
79
|
+
enumerable: true,
|
|
80
|
+
configurable: true,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
this.logger.debug(`Synthetic class for ${name}: ` +
|
|
84
|
+
`${clsMsg.getStaticFieldNames().length} static fields, ` +
|
|
85
|
+
`${clsMsg.getStaticMethodNames().length} static methods`);
|
|
86
|
+
if (msgUp)
|
|
87
|
+
return { ctor: synthCtor, msgUp };
|
|
88
|
+
else
|
|
89
|
+
return { ctor: synthCtor };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a synthetic class resource for an intersection type by merging
|
|
93
|
+
* fields and methods from its base classes/interfaces. Methods throw if called.
|
|
94
|
+
*/
|
|
95
|
+
createSyntheticClassForIntersection(msg, name) {
|
|
96
|
+
// Intersection is a type-only construct; create an empty synthetic class
|
|
97
|
+
// with no own fields or methods so semantics rely on bases only.
|
|
98
|
+
const syntheticClass = class {
|
|
99
|
+
};
|
|
100
|
+
Object.defineProperty(syntheticClass, 'name', {
|
|
101
|
+
value: name,
|
|
102
|
+
writable: false,
|
|
103
|
+
configurable: true,
|
|
104
|
+
});
|
|
105
|
+
return syntheticClass;
|
|
106
|
+
}
|
|
107
|
+
maybeMakeConcreteClass(msg) {
|
|
108
|
+
const uid = msg.uid;
|
|
109
|
+
if (msg.asClass().getStaticFieldNames().length) {
|
|
110
|
+
this.logger.debug(`Interface class ${msg.payload.name} (uid=${uid.resource}) has static fields and is therefore not a concrete class`);
|
|
111
|
+
return { ctor: class {
|
|
112
|
+
} };
|
|
113
|
+
}
|
|
114
|
+
if (msg.asClass().getMethodNames().length) {
|
|
115
|
+
this.logger.debug(`Interface class ${msg.payload.name} (uid=${uid.resource}) has methods and is therefore not a concrete class`);
|
|
116
|
+
return { ctor: class {
|
|
117
|
+
} };
|
|
118
|
+
}
|
|
119
|
+
const nonOptionalFields = msg.asClass().getNonOptionalFields();
|
|
120
|
+
const optionalFields = msg.asClass().getOptionalFields();
|
|
121
|
+
const indexSignatures = msg.asClass().getIndexSignatures();
|
|
122
|
+
const { name: interfaceName } = msg.payload;
|
|
123
|
+
this.logger.debug(`Creating interface class ${interfaceName} (uid=${uid.resource})`);
|
|
124
|
+
function verifyKeyType(keyType, key) {
|
|
125
|
+
switch (keyType.uid.resource) {
|
|
126
|
+
case CLASS_IDS.String:
|
|
127
|
+
if (typeof key !== 'string')
|
|
128
|
+
throw new Error(`Key must be a string`);
|
|
129
|
+
break;
|
|
130
|
+
case CLASS_IDS.Number:
|
|
131
|
+
if (typeof key !== 'number')
|
|
132
|
+
throw new Error(`Key must be a number`);
|
|
133
|
+
break;
|
|
134
|
+
case CLASS_IDS.Symbol:
|
|
135
|
+
if (typeof key !== 'symbol')
|
|
136
|
+
throw new Error(`Key must be a symbol`);
|
|
137
|
+
break;
|
|
138
|
+
default:
|
|
139
|
+
throw new Error(`Unsupported index signature key type: ${keyType.uid.resource}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const classMsg = msg.asClass();
|
|
143
|
+
classMsg.payload.ctor_args = [];
|
|
144
|
+
// Populate ctor_args metadata
|
|
145
|
+
for (const signature of indexSignatures) {
|
|
146
|
+
classMsg.payload.ctor_args.push({
|
|
147
|
+
name: 'index_signature',
|
|
148
|
+
type: signature.map_type,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
for (const field of nonOptionalFields) {
|
|
152
|
+
classMsg.payload.ctor_args.push({
|
|
153
|
+
name: field.name,
|
|
154
|
+
type: field.type,
|
|
155
|
+
default: field.default,
|
|
156
|
+
optional: field.is_optional,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
for (const field of optionalFields) {
|
|
160
|
+
classMsg.payload.ctor_args.push({
|
|
161
|
+
name: field.name,
|
|
162
|
+
type: field.type,
|
|
163
|
+
default: field.default,
|
|
164
|
+
optional: field.is_optional,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
// Make a concrete class (i.e. class that can be instantiated with a constructor)
|
|
168
|
+
const SyntheticCtor = class {
|
|
169
|
+
constructor(...args) {
|
|
170
|
+
let arg_position = 0;
|
|
171
|
+
// First read index signatures
|
|
172
|
+
for (const signature of indexSignatures) {
|
|
173
|
+
const indexMap = args[arg_position++];
|
|
174
|
+
for (const [key, value] of indexMap) {
|
|
175
|
+
verifyKeyType(signature.key_type, key);
|
|
176
|
+
this[key] = value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Then read non-optional fields
|
|
180
|
+
for (const field of nonOptionalFields) {
|
|
181
|
+
this[field.name] = args[arg_position++];
|
|
182
|
+
}
|
|
183
|
+
// Then read optional fields
|
|
184
|
+
for (const field of optionalFields) {
|
|
185
|
+
this[field.name] = args[arg_position++];
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
static get [Symbol.species]() {
|
|
189
|
+
return interfaceName;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
Object.defineProperty(SyntheticCtor, 'name', { value: interfaceName, enumerable: false });
|
|
193
|
+
Object.defineProperty(SyntheticCtor, '__uid__', { value: uid, enumerable: false });
|
|
194
|
+
return { ctor: SyntheticCtor, msgUp: classMsg };
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ClassContext, FrameContext, FunctionContext, ObjectContext } from './frame-ctx.js';
|
|
2
|
+
import { UIDGenerator } from './uid-gen.js';
|
|
3
|
+
export declare class SystemObjectContext extends ObjectContext {
|
|
4
|
+
readonly uidGenerator: UIDGenerator;
|
|
5
|
+
constructor(uidGenerator: UIDGenerator);
|
|
6
|
+
}
|
|
7
|
+
export declare class SystemClassContext extends ClassContext {
|
|
8
|
+
readonly uidGenerator: UIDGenerator;
|
|
9
|
+
constructor(uidGenerator: UIDGenerator);
|
|
10
|
+
}
|
|
11
|
+
export declare class SystemFunctionContext extends FunctionContext {
|
|
12
|
+
readonly uidGenerator: UIDGenerator;
|
|
13
|
+
constructor(uidGenerator: UIDGenerator);
|
|
14
|
+
}
|
|
15
|
+
export declare class SystemFrameContext extends FrameContext {
|
|
16
|
+
constructor(generator: UIDGenerator);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=system-ctx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-ctx.d.ts","sourceRoot":"","sources":["../../../src/warpc/frame-context/system-ctx.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAmEzC,qBAAa,mBAAoB,SAAQ,aAAa;aACtB,YAAY,EAAE,YAAY;gBAA1B,YAAY,EAAE,YAAY;CASzD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;aACpB,YAAY,EAAE,YAAY;gBAA1B,YAAY,EAAE,YAAY;CASzD;AAuBD,qBAAa,qBAAsB,SAAQ,eAAe;aAC1B,YAAY,EAAE,YAAY;gBAA1B,YAAY,EAAE,YAAY;CASzD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACpC,SAAS,EAAE,YAAY;CAStC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { SystemContext } from '../msg-protocol/concept/resource/system-msg.js';
|
|
2
|
+
import { AnnotationContext } from './annotation-ctx.js';
|
|
3
|
+
import { ClassContext, FrameContext, FunctionContext, ObjectContext } from './frame-ctx.js';
|
|
4
|
+
import { orUndefined } from '../../common.js';
|
|
5
|
+
const withCustomCall = (cls, customCall) => {
|
|
6
|
+
const _Cls = cls;
|
|
7
|
+
const _NewCls = new Proxy(_Cls, {
|
|
8
|
+
apply(target, thisArg, args) {
|
|
9
|
+
return customCall(...args); // Called as function
|
|
10
|
+
},
|
|
11
|
+
construct(target, args, newTarget) {
|
|
12
|
+
// Called with `new`, forward to original constructor
|
|
13
|
+
return Reflect.construct(_Cls, args, newTarget);
|
|
14
|
+
},
|
|
15
|
+
get(target, prop, receiver) {
|
|
16
|
+
if (prop === 'toString') {
|
|
17
|
+
return Function.prototype.toString.bind(target);
|
|
18
|
+
}
|
|
19
|
+
return Reflect.get(target, prop, receiver);
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
Object.getOwnPropertyNames(cls).forEach((prop) => {
|
|
23
|
+
if (prop === 'prototype')
|
|
24
|
+
return;
|
|
25
|
+
const desc = Object.getOwnPropertyDescriptor(_Cls, prop);
|
|
26
|
+
try {
|
|
27
|
+
Object.defineProperty(_NewCls, prop, desc);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Ignore property definition errors for non-configurable properties
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
Object.getOwnPropertySymbols(_Cls).forEach((sym) => {
|
|
34
|
+
const desc = Object.getOwnPropertyDescriptor(String, sym);
|
|
35
|
+
try {
|
|
36
|
+
Object.defineProperty(_NewCls, sym, desc);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Ignore symbol property definition errors
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
try {
|
|
43
|
+
Object.defineProperty(_NewCls, 'name', { value: _Cls.name });
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// Ignore name property definition errors
|
|
47
|
+
}
|
|
48
|
+
const _Cls_prototype = _Cls.prototype;
|
|
49
|
+
try {
|
|
50
|
+
Object.setPrototypeOf(_NewCls, _Cls);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Ignore prototype setting errors
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
_NewCls.prototype = _Cls_prototype;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Ignore prototype assignment errors
|
|
60
|
+
}
|
|
61
|
+
return _NewCls;
|
|
62
|
+
};
|
|
63
|
+
const _globalThis = Object.assign({}, globalThis);
|
|
64
|
+
const _String = withCustomCall(String, (value) => {
|
|
65
|
+
// in place of `magicString`, return null for objects with no good string conversion.
|
|
66
|
+
const converted = String(value);
|
|
67
|
+
if (converted === '[object Object]' || value.toString == Object.prototype.toString)
|
|
68
|
+
return null;
|
|
69
|
+
return converted;
|
|
70
|
+
});
|
|
71
|
+
_globalThis.String = _String;
|
|
72
|
+
export class SystemObjectContext extends ObjectContext {
|
|
73
|
+
constructor(uidGenerator) {
|
|
74
|
+
super(uidGenerator);
|
|
75
|
+
this.uidGenerator = uidGenerator;
|
|
76
|
+
for (const name of SystemContext.getObjectNames()) {
|
|
77
|
+
const uid = SystemContext.getUIDByName(this.world, name);
|
|
78
|
+
const realObj = orUndefined(_globalThis[name], globalThis[name]);
|
|
79
|
+
const msg = SystemContext.getObjectMsgByName(this.world, name);
|
|
80
|
+
if (uid && realObj !== undefined && msg)
|
|
81
|
+
this.setRecord(uid, realObj, msg);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export class SystemClassContext extends ClassContext {
|
|
86
|
+
constructor(uidGenerator) {
|
|
87
|
+
super(uidGenerator);
|
|
88
|
+
this.uidGenerator = uidGenerator;
|
|
89
|
+
for (const name of SystemContext.getClassNames()) {
|
|
90
|
+
const uid = SystemContext.getUIDByName(this.world, name);
|
|
91
|
+
const ctor = orUndefined(_globalThis[name], globalThis[name]);
|
|
92
|
+
const msg = SystemContext.getClassMsgByName(this.world, name);
|
|
93
|
+
if (uid && ctor !== undefined && msg)
|
|
94
|
+
this.setRecord(uid, ctor, msg);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function resolveGlobalPath(path) {
|
|
99
|
+
const parts = path.split('.');
|
|
100
|
+
let a = _globalThis;
|
|
101
|
+
let b = globalThis;
|
|
102
|
+
let receiver = undefined;
|
|
103
|
+
for (let i = 0; i < parts.length; i++) {
|
|
104
|
+
if (a === undefined && b === undefined)
|
|
105
|
+
return undefined;
|
|
106
|
+
receiver = orUndefined(a, b);
|
|
107
|
+
a = a?.[parts[i]];
|
|
108
|
+
b = b?.[parts[i]];
|
|
109
|
+
}
|
|
110
|
+
const current = orUndefined(a, b); // Prioritize `a` from `_globalThis`.
|
|
111
|
+
if (typeof current === 'function') {
|
|
112
|
+
if (receiver === globalThis)
|
|
113
|
+
return current;
|
|
114
|
+
return current.bind(receiver);
|
|
115
|
+
}
|
|
116
|
+
return current;
|
|
117
|
+
}
|
|
118
|
+
export class SystemFunctionContext extends FunctionContext {
|
|
119
|
+
constructor(uidGenerator) {
|
|
120
|
+
super(uidGenerator);
|
|
121
|
+
this.uidGenerator = uidGenerator;
|
|
122
|
+
for (const name of SystemContext.getFunctionNames()) {
|
|
123
|
+
const uid = SystemContext.getUIDByName(this.world, name);
|
|
124
|
+
const fn = resolveGlobalPath(name);
|
|
125
|
+
const msg = SystemContext.getFunctionMsgByName(this.world, name);
|
|
126
|
+
if (uid && fn !== undefined && msg)
|
|
127
|
+
this.setRecord(uid, fn, msg);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export class SystemFrameContext extends FrameContext {
|
|
132
|
+
constructor(generator) {
|
|
133
|
+
super(new SystemObjectContext(generator), new SystemClassContext(generator), new SystemFunctionContext(generator), new AnnotationContext(generator), generator);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DefnUID, World } from '../msg-protocol/kinds.js';
|
|
2
|
+
/**
|
|
3
|
+
* UID generator for creating new resource IDs
|
|
4
|
+
* User types start at 0, system types use negative IDs
|
|
5
|
+
*/
|
|
6
|
+
export declare class UIDGenerator {
|
|
7
|
+
world: World;
|
|
8
|
+
private currentID;
|
|
9
|
+
constructor(world: World, startID?: number);
|
|
10
|
+
next(): DefnUID;
|
|
11
|
+
setmin(id: number): void;
|
|
12
|
+
share(): UIDGenerator;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=uid-gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uid-gen.d.ts","sourceRoot":"","sources":["../../../src/warpc/frame-context/uid-gen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,qBAAa,YAAY;IAIV,KAAK,EAAE,KAAK;IAHvB,OAAO,CAAC,SAAS,CAAS;gBAGf,KAAK,EAAE,KAAK,EACnB,OAAO,CAAC,EAAE,MAAM;IAKpB,IAAI,IAAI,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB,KAAK,IAAI,YAAY;CAGxB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UID generator for creating new resource IDs
|
|
3
|
+
* User types start at 0, system types use negative IDs
|
|
4
|
+
*/
|
|
5
|
+
export class UIDGenerator {
|
|
6
|
+
constructor(world, startID) {
|
|
7
|
+
this.world = world;
|
|
8
|
+
this.currentID = startID ?? 0;
|
|
9
|
+
}
|
|
10
|
+
next() {
|
|
11
|
+
this.currentID += 1;
|
|
12
|
+
return { world: this.world, resource: this.currentID };
|
|
13
|
+
}
|
|
14
|
+
setmin(id) {
|
|
15
|
+
if (id > this.currentID)
|
|
16
|
+
this.currentID = id;
|
|
17
|
+
}
|
|
18
|
+
// In the async model we keep a single generator per runtime; sharing simply returns itself.
|
|
19
|
+
share() {
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FrameContext } from '../../frame-context/frame-ctx.js';
|
|
2
|
+
import { ClassMsg } from '../../msg-protocol/concept/resource/class-msg.js';
|
|
3
|
+
import { FunctionMsg } from '../../msg-protocol/concept/resource/function-msg.js';
|
|
4
|
+
import { ObjectMsg } from '../../msg-protocol/concept/resource/object-msg.js';
|
|
5
|
+
import { VirtualDispatcher, Virtualizer } from './virtualizer.js';
|
|
6
|
+
export declare class DefaultVirtualizer implements Virtualizer {
|
|
7
|
+
readonly dispatcher: VirtualDispatcher;
|
|
8
|
+
readonly manager: FrameContext;
|
|
9
|
+
private logger;
|
|
10
|
+
private termDecoder;
|
|
11
|
+
constructor(dispatcher: VirtualDispatcher);
|
|
12
|
+
createVirtualObject(msg: ObjectMsg): any;
|
|
13
|
+
createVirtualClass(msg: ClassMsg): any;
|
|
14
|
+
createVirtualFunction(msg: FunctionMsg): any;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=default.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/warpc/frame-context/virtual-resources/default.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI/D,qBAAa,kBAAmB,YAAW,WAAW;aAKtB,UAAU,EAAE,iBAAiB;IAJzD,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAc;gBAEL,UAAU,EAAE,iBAAiB;IAMzD,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG;IAgExC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG;IAuHtC,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG;CAgB/C"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { throwNoVirtualization } from '../../../coming-soon.js';
|
|
2
|
+
export class DefaultVirtualizer {
|
|
3
|
+
constructor(dispatcher) {
|
|
4
|
+
this.dispatcher = dispatcher;
|
|
5
|
+
this.manager = dispatcher.owner.context;
|
|
6
|
+
this.termDecoder = dispatcher.owner.conceptDecoder;
|
|
7
|
+
this.logger = dispatcher.owner.logger.withScope('virtualizer');
|
|
8
|
+
}
|
|
9
|
+
createVirtualObject(msg) {
|
|
10
|
+
throwNoVirtualization();
|
|
11
|
+
const uid = msg.uid;
|
|
12
|
+
const keys = msg.payload?.keys || [];
|
|
13
|
+
const clsUuid = msg.payload.cls.uid;
|
|
14
|
+
const clsMsg = this.manager.getMessageFromUID(clsUuid);
|
|
15
|
+
if (!clsMsg) {
|
|
16
|
+
this.logger.error(`Cannot create virtual object without class (uid=${uid.resource})`);
|
|
17
|
+
throw new Error('Cannot create virtual object without class');
|
|
18
|
+
}
|
|
19
|
+
const fields = clsMsg.getInstanceFieldNames();
|
|
20
|
+
const methods = clsMsg.getInstanceMethodNames();
|
|
21
|
+
this.logger.debug(`Creating virtual object (uid=${uid.resource}, fields=${fields.length}, methods=${methods.length})`);
|
|
22
|
+
const jsClass = this.termDecoder.decodeWithCtx(clsMsg);
|
|
23
|
+
const target = Object.create(jsClass.prototype);
|
|
24
|
+
return new Proxy(target, {
|
|
25
|
+
get: (_t, prop) => {
|
|
26
|
+
if (prop === '__uid__')
|
|
27
|
+
return uid;
|
|
28
|
+
if (typeof prop === 'string') {
|
|
29
|
+
if (fields.includes(prop)) {
|
|
30
|
+
return this.dispatcher.virtualGetAttr(uid, prop);
|
|
31
|
+
}
|
|
32
|
+
if (methods.includes(prop)) {
|
|
33
|
+
return (...args) => this.dispatcher.virtualMethodCall(uid, prop, args);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
},
|
|
38
|
+
set: (_t, prop, value) => {
|
|
39
|
+
if (typeof prop === 'string') {
|
|
40
|
+
if (fields.includes(prop)) {
|
|
41
|
+
this.dispatcher.virtualSetAttr(uid, prop, value);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
},
|
|
47
|
+
has: (_t, prop) => {
|
|
48
|
+
if (typeof prop === 'string') {
|
|
49
|
+
// Virtual object attribute checking for string props
|
|
50
|
+
throw new Error('Virtual object attribute check for string properties is not yet supported');
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
},
|
|
54
|
+
deleteProperty: (_t, prop) => {
|
|
55
|
+
if (typeof prop === 'string') {
|
|
56
|
+
this.dispatcher.virtualDelAttr(uid, prop);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
},
|
|
61
|
+
ownKeys: () => {
|
|
62
|
+
return Array.from(new Set(['__uid__', ...keys]));
|
|
63
|
+
},
|
|
64
|
+
getOwnPropertyDescriptor: () => ({
|
|
65
|
+
configurable: true,
|
|
66
|
+
enumerable: true,
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
createVirtualClass(msg) {
|
|
71
|
+
throwNoVirtualization();
|
|
72
|
+
const uid = msg.uid;
|
|
73
|
+
const { name: className } = msg.payload;
|
|
74
|
+
this.logger.debug(`Creating virtual class ${className} (uid=${uid.resource})`);
|
|
75
|
+
const staticFields = msg.getStaticFieldNames();
|
|
76
|
+
const staticMethods = msg.getStaticMethodNames();
|
|
77
|
+
const baseRefs = msg.getBases();
|
|
78
|
+
// Resolve runtime constructors for bases (if any)
|
|
79
|
+
const resolvedBases = baseRefs
|
|
80
|
+
.map((ref) => this.manager.classes.getResourceFromUID(ref.uid))
|
|
81
|
+
.filter((b) => !!b);
|
|
82
|
+
const PrimaryBase = resolvedBases[0] ?? Object;
|
|
83
|
+
const virtualDispatchLogger = this.logger;
|
|
84
|
+
const virtualDispatcher = this.dispatcher;
|
|
85
|
+
const VirtualClass = class extends PrimaryBase {
|
|
86
|
+
constructor(...args) {
|
|
87
|
+
super();
|
|
88
|
+
virtualDispatchLogger.debug(`Virtual class constructor (uid=${uid.resource}, args=`, args);
|
|
89
|
+
this._instance = virtualDispatcher.virtualNew(uid, args, msg.payload.system_resource);
|
|
90
|
+
const instance = this._instance;
|
|
91
|
+
return new Proxy(this, {
|
|
92
|
+
get: (target, prop) => {
|
|
93
|
+
if (prop === '__uid__')
|
|
94
|
+
return uid;
|
|
95
|
+
if (prop === 'name')
|
|
96
|
+
return className;
|
|
97
|
+
if (prop in target) {
|
|
98
|
+
return Reflect.get(target, prop);
|
|
99
|
+
}
|
|
100
|
+
return instance.then((inst) => inst[prop]);
|
|
101
|
+
},
|
|
102
|
+
set: (target, prop, value, receiver) => {
|
|
103
|
+
if (prop in target) {
|
|
104
|
+
return Reflect.set(target, prop, value, receiver);
|
|
105
|
+
}
|
|
106
|
+
instance.then((inst) => (inst[prop] = value));
|
|
107
|
+
return true;
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
static get [Symbol.species]() {
|
|
112
|
+
return className;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
Object.defineProperty(VirtualClass, 'name', { value: className, enumerable: false });
|
|
116
|
+
Object.defineProperty(VirtualClass, '__uid__', { value: uid, enumerable: false });
|
|
117
|
+
// Wire static fields through dispatcher
|
|
118
|
+
for (const fieldName of staticFields) {
|
|
119
|
+
this.logger.debug(`Wiring static field ${fieldName} to virtual class ${className}`);
|
|
120
|
+
Object.defineProperty(VirtualClass, fieldName, {
|
|
121
|
+
configurable: true,
|
|
122
|
+
enumerable: true,
|
|
123
|
+
get() {
|
|
124
|
+
return virtualDispatcher.virtualGetAttr(uid, fieldName);
|
|
125
|
+
},
|
|
126
|
+
set(value) {
|
|
127
|
+
virtualDispatcher.virtualSetAttr(uid, fieldName, value);
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
// Wire static methods through dispatcher
|
|
132
|
+
for (const methodName of staticMethods) {
|
|
133
|
+
this.logger.debug(`Wiring static method ${methodName} to virtual class ${className}`);
|
|
134
|
+
Object.defineProperty(VirtualClass, methodName, {
|
|
135
|
+
configurable: true,
|
|
136
|
+
enumerable: true,
|
|
137
|
+
value: (...args) => virtualDispatcher.virtualMethodCall(uid, methodName, args),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
// Best-effort mixin of additional bases (static and prototype members)
|
|
141
|
+
for (const mixinBase of resolvedBases.slice(1)) {
|
|
142
|
+
this.logger.debug(`Adding mixin base ${mixinBase.name} to virtual class ${className}`);
|
|
143
|
+
// Copy static properties
|
|
144
|
+
for (const key of Object.getOwnPropertyNames(mixinBase)) {
|
|
145
|
+
if (key === 'prototype' || key === 'name' || key === 'length')
|
|
146
|
+
continue;
|
|
147
|
+
if (Object.prototype.hasOwnProperty.call(VirtualClass, key))
|
|
148
|
+
continue;
|
|
149
|
+
const desc = Object.getOwnPropertyDescriptor(mixinBase, key);
|
|
150
|
+
if (desc) {
|
|
151
|
+
try {
|
|
152
|
+
Object.defineProperty(VirtualClass, key, desc);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Ignore property definition errors for mixin bases
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Copy prototype methods
|
|
160
|
+
const proto = mixinBase?.prototype ?? {};
|
|
161
|
+
for (const key of Object.getOwnPropertyNames(proto)) {
|
|
162
|
+
if (key === 'constructor')
|
|
163
|
+
continue;
|
|
164
|
+
if (Object.prototype.hasOwnProperty.call(VirtualClass.prototype, key))
|
|
165
|
+
continue;
|
|
166
|
+
const desc = Object.getOwnPropertyDescriptor(proto, key);
|
|
167
|
+
if (desc) {
|
|
168
|
+
try {
|
|
169
|
+
Object.defineProperty(VirtualClass.prototype, key, desc);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// Ignore prototype property definition errors for mixin bases
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
this.logger.debug(`Creating virtual class ${className} (uid=${uid.resource}, bases=${baseRefs.length}, primary=${PrimaryBase.name || 'Object'})`);
|
|
178
|
+
return VirtualClass;
|
|
179
|
+
}
|
|
180
|
+
createVirtualFunction(msg) {
|
|
181
|
+
throwNoVirtualization();
|
|
182
|
+
const uid = msg.uid;
|
|
183
|
+
const fnTarget = function () { };
|
|
184
|
+
this.logger.debug(`Creating virtual function ${msg.payload.name} (uid=${uid.resource})`);
|
|
185
|
+
return new Proxy(fnTarget, {
|
|
186
|
+
get: (_t, prop) => {
|
|
187
|
+
if (prop === '__uid__')
|
|
188
|
+
return uid;
|
|
189
|
+
return undefined;
|
|
190
|
+
},
|
|
191
|
+
apply: (_t, _thisArg, args) => {
|
|
192
|
+
return this.dispatcher.virtualFunctionCall(uid, args);
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Frame } from '../../frame.js';
|
|
2
|
+
import { DefnUID } from '../../msg-protocol/kinds.js';
|
|
3
|
+
import { RpcHandler } from '../../rpc-channel/handler.js';
|
|
4
|
+
import { VirtualDispatcher } from './virtualizer.js';
|
|
5
|
+
export declare class DefaultVirtualDispatcher extends VirtualDispatcher {
|
|
6
|
+
private logger;
|
|
7
|
+
constructor(owner: Frame);
|
|
8
|
+
setRpcHandler(handler: RpcHandler): void;
|
|
9
|
+
virtualNew(uid: DefnUID, args: any[], systemResource: boolean): Promise<any>;
|
|
10
|
+
virtualFunctionCall(functionID: DefnUID, args: any[]): Promise<any>;
|
|
11
|
+
virtualMethodCall(ownerID: DefnUID, methodName: string, args: any[]): Promise<any>;
|
|
12
|
+
virtualSetAttr(uid: DefnUID, name: string, value: any): Promise<void>;
|
|
13
|
+
virtualGetAttr(uid: DefnUID, name: string): Promise<any>;
|
|
14
|
+
virtualHasAttr(uid: DefnUID, name: string): Promise<boolean>;
|
|
15
|
+
virtualDelAttr(_uid: DefnUID, _name: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/warpc/frame-context/virtual-resources/dispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAMrC,OAAO,EAAe,OAAO,EAAW,MAAM,2BAA2B,CAAC;AAU1E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,wBAAyB,SAAQ,iBAAiB;IAC3D,OAAO,CAAC,MAAM,CAAe;gBAEjB,KAAK,EAAE,KAAK;IAKxB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAIlC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAsD5E,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IA+CnE,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAoElF,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCrE,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAgCxD,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5D,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpE"}
|