@juzi/wechaty-puppet-service 1.0.0
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 +201 -0
- package/README.md +166 -0
- package/dist/cjs/examples/ding-dong-bot.d.ts +2 -0
- package/dist/cjs/examples/ding-dong-bot.d.ts.map +1 -0
- package/dist/cjs/examples/ding-dong-bot.js +156 -0
- package/dist/cjs/examples/ding-dong-bot.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/src/auth/auth-impl-token.d.ts +4 -0
- package/dist/cjs/src/auth/auth-impl-token.d.ts.map +1 -0
- package/dist/cjs/src/auth/auth-impl-token.js +81 -0
- package/dist/cjs/src/auth/auth-impl-token.js.map +1 -0
- package/dist/cjs/src/auth/auth-impl-token.spec.d.ts +3 -0
- package/dist/cjs/src/auth/auth-impl-token.spec.d.ts.map +1 -0
- package/dist/cjs/src/auth/auth-impl-token.spec.js +65 -0
- package/dist/cjs/src/auth/auth-impl-token.spec.js.map +1 -0
- package/dist/cjs/src/auth/ca.d.ts +46 -0
- package/dist/cjs/src/auth/ca.d.ts.map +1 -0
- package/dist/cjs/src/auth/ca.js +135 -0
- package/dist/cjs/src/auth/ca.js.map +1 -0
- package/dist/cjs/src/auth/ca.spec.d.ts +3 -0
- package/dist/cjs/src/auth/ca.spec.d.ts.map +1 -0
- package/dist/cjs/src/auth/ca.spec.js +115 -0
- package/dist/cjs/src/auth/ca.spec.js.map +1 -0
- package/dist/cjs/src/auth/call-cred.d.ts +9 -0
- package/dist/cjs/src/auth/call-cred.d.ts.map +1 -0
- package/dist/cjs/src/auth/call-cred.js +17 -0
- package/dist/cjs/src/auth/call-cred.js.map +1 -0
- package/dist/cjs/src/auth/call-cred.spec.d.ts +3 -0
- package/dist/cjs/src/auth/call-cred.spec.d.ts.map +1 -0
- package/dist/cjs/src/auth/call-cred.spec.js +18 -0
- package/dist/cjs/src/auth/call-cred.spec.js.map +1 -0
- package/dist/cjs/src/auth/env-vars.d.ts +13 -0
- package/dist/cjs/src/auth/env-vars.d.ts.map +1 -0
- package/dist/cjs/src/auth/env-vars.js +29 -0
- package/dist/cjs/src/auth/env-vars.js.map +1 -0
- package/dist/cjs/src/auth/grpc-js.d.ts +7 -0
- package/dist/cjs/src/auth/grpc-js.d.ts.map +1 -0
- package/dist/cjs/src/auth/grpc-js.js +10 -0
- package/dist/cjs/src/auth/grpc-js.js.map +1 -0
- package/dist/cjs/src/auth/mod.d.ts +5 -0
- package/dist/cjs/src/auth/mod.d.ts.map +1 -0
- package/dist/cjs/src/auth/mod.js +10 -0
- package/dist/cjs/src/auth/mod.js.map +1 -0
- package/dist/cjs/src/auth/mokey-patch-header-authorization.d.ts +11 -0
- package/dist/cjs/src/auth/mokey-patch-header-authorization.d.ts.map +1 -0
- package/dist/cjs/src/auth/mokey-patch-header-authorization.js +32 -0
- package/dist/cjs/src/auth/mokey-patch-header-authorization.js.map +1 -0
- package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.d.ts +3 -0
- package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.d.ts.map +1 -0
- package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.js +19 -0
- package/dist/cjs/src/auth/monkey-patch-header-authorization.spec.js.map +1 -0
- package/dist/cjs/src/client/duck/actions.d.ts +6 -0
- package/dist/cjs/src/client/duck/actions.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/actions.js +54 -0
- package/dist/cjs/src/client/duck/actions.js.map +1 -0
- package/dist/cjs/src/client/duck/epic-recover.d.ts +36 -0
- package/dist/cjs/src/client/duck/epic-recover.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/epic-recover.js +41 -0
- package/dist/cjs/src/client/duck/epic-recover.js.map +1 -0
- package/dist/cjs/src/client/duck/epic-recover.spec.d.ts +3 -0
- package/dist/cjs/src/client/duck/epic-recover.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/epic-recover.spec.js +131 -0
- package/dist/cjs/src/client/duck/epic-recover.spec.js.map +1 -0
- package/dist/cjs/src/client/duck/epics.d.ts +4 -0
- package/dist/cjs/src/client/duck/epics.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/epics.js +36 -0
- package/dist/cjs/src/client/duck/epics.js.map +1 -0
- package/dist/cjs/src/client/duck/mod.d.ts +29 -0
- package/dist/cjs/src/client/duck/mod.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/mod.js +63 -0
- package/dist/cjs/src/client/duck/mod.js.map +1 -0
- package/dist/cjs/src/client/duck/operations.d.ts +23 -0
- package/dist/cjs/src/client/duck/operations.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/operations.js +30 -0
- package/dist/cjs/src/client/duck/operations.js.map +1 -0
- package/dist/cjs/src/client/duck/reducers.d.ts +59 -0
- package/dist/cjs/src/client/duck/reducers.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/reducers.js +51 -0
- package/dist/cjs/src/client/duck/reducers.js.map +1 -0
- package/dist/cjs/src/client/duck/selectors.d.ts +21 -0
- package/dist/cjs/src/client/duck/selectors.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/selectors.js +23 -0
- package/dist/cjs/src/client/duck/selectors.js.map +1 -0
- package/dist/cjs/src/client/duck/tests.spec.d.ts +3 -0
- package/dist/cjs/src/client/duck/tests.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/tests.spec.js +49 -0
- package/dist/cjs/src/client/duck/tests.spec.js.map +1 -0
- package/dist/cjs/src/client/duck/types.d.ts +21 -0
- package/dist/cjs/src/client/duck/types.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/types.js +24 -0
- package/dist/cjs/src/client/duck/types.js.map +1 -0
- package/dist/cjs/src/client/duck/utils.d.ts +21 -0
- package/dist/cjs/src/client/duck/utils.d.ts.map +1 -0
- package/dist/cjs/src/client/duck/utils.js +3 -0
- package/dist/cjs/src/client/duck/utils.js.map +1 -0
- package/dist/cjs/src/client/grpc-manager.d.ts +29 -0
- package/dist/cjs/src/client/grpc-manager.d.ts.map +1 -0
- package/dist/cjs/src/client/grpc-manager.js +359 -0
- package/dist/cjs/src/client/grpc-manager.js.map +1 -0
- package/dist/cjs/src/client/grpc-manager.spec.d.ts +3 -0
- package/dist/cjs/src/client/grpc-manager.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/grpc-manager.spec.js +19 -0
- package/dist/cjs/src/client/grpc-manager.spec.js.map +1 -0
- package/dist/cjs/src/client/payload-store.d.ts +26 -0
- package/dist/cjs/src/client/payload-store.d.ts.map +1 -0
- package/dist/cjs/src/client/payload-store.js +118 -0
- package/dist/cjs/src/client/payload-store.js.map +1 -0
- package/dist/cjs/src/client/payload-store.spec.d.ts +3 -0
- package/dist/cjs/src/client/payload-store.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/payload-store.spec.js +17 -0
- package/dist/cjs/src/client/payload-store.spec.js.map +1 -0
- package/dist/cjs/src/client/puppet-service.d.ts +161 -0
- package/dist/cjs/src/client/puppet-service.d.ts.map +1 -0
- package/dist/cjs/src/client/puppet-service.js +1384 -0
- package/dist/cjs/src/client/puppet-service.js.map +1 -0
- package/dist/cjs/src/client/puppet-service.spec.d.ts +3 -0
- package/dist/cjs/src/client/puppet-service.spec.d.ts.map +1 -0
- package/dist/cjs/src/client/puppet-service.spec.js +55 -0
- package/dist/cjs/src/client/puppet-service.spec.js.map +1 -0
- package/dist/cjs/src/config.d.ts +20 -0
- package/dist/cjs/src/config.d.ts.map +1 -0
- package/dist/cjs/src/config.js +49 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/deprecated/chunk-pb.d.ts +15 -0
- package/dist/cjs/src/deprecated/chunk-pb.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/chunk-pb.js +60 -0
- package/dist/cjs/src/deprecated/chunk-pb.js.map +1 -0
- package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts +3 -0
- package/dist/cjs/src/deprecated/chunk-pb.spec.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/chunk-pb.spec.js +144 -0
- package/dist/cjs/src/deprecated/chunk-pb.spec.js.map +1 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts +21 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.js +43 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.js.map +1 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts +3 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js +94 -0
- package/dist/cjs/src/deprecated/conversation-id-file-box.spec.js.map +1 -0
- package/dist/cjs/src/deprecated/file-box-chunk.d.ts +14 -0
- package/dist/cjs/src/deprecated/file-box-chunk.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/file-box-chunk.js +67 -0
- package/dist/cjs/src/deprecated/file-box-chunk.js.map +1 -0
- package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts +3 -0
- package/dist/cjs/src/deprecated/file-box-chunk.spec.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/file-box-chunk.spec.js +134 -0
- package/dist/cjs/src/deprecated/file-box-chunk.spec.js.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.d.ts +15 -0
- package/dist/cjs/src/deprecated/file-box-pb.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.js +26 -0
- package/dist/cjs/src/deprecated/file-box-pb.js.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts +3 -0
- package/dist/cjs/src/deprecated/file-box-pb.spec.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.spec.js +18 -0
- package/dist/cjs/src/deprecated/file-box-pb.spec.js.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.type.d.ts +15 -0
- package/dist/cjs/src/deprecated/file-box-pb.type.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/file-box-pb.type.js +3 -0
- package/dist/cjs/src/deprecated/file-box-pb.type.js.map +1 -0
- package/dist/cjs/src/deprecated/mod.d.ts +3 -0
- package/dist/cjs/src/deprecated/mod.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/mod.js +10 -0
- package/dist/cjs/src/deprecated/mod.js.map +1 -0
- package/dist/cjs/src/deprecated/next-data.d.ts +7 -0
- package/dist/cjs/src/deprecated/next-data.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/next-data.js +26 -0
- package/dist/cjs/src/deprecated/next-data.js.map +1 -0
- package/dist/cjs/src/deprecated/serialize-file-box.d.ts +6 -0
- package/dist/cjs/src/deprecated/serialize-file-box.d.ts.map +1 -0
- package/dist/cjs/src/deprecated/serialize-file-box.js +22 -0
- package/dist/cjs/src/deprecated/serialize-file-box.js.map +1 -0
- package/dist/cjs/src/env-vars.d.ts +5 -0
- package/dist/cjs/src/env-vars.d.ts.map +1 -0
- package/dist/cjs/src/env-vars.js +88 -0
- package/dist/cjs/src/env-vars.js.map +1 -0
- package/dist/cjs/src/env-vars.spec.d.ts +3 -0
- package/dist/cjs/src/env-vars.spec.d.ts.map +1 -0
- package/dist/cjs/src/env-vars.spec.js +21 -0
- package/dist/cjs/src/env-vars.spec.js.map +1 -0
- package/dist/cjs/src/event-type-rev.d.ts +11 -0
- package/dist/cjs/src/event-type-rev.d.ts.map +1 -0
- package/dist/cjs/src/event-type-rev.js +17 -0
- package/dist/cjs/src/event-type-rev.js.map +1 -0
- package/dist/cjs/src/file-box-helper/mod.d.ts +4 -0
- package/dist/cjs/src/file-box-helper/mod.d.ts.map +1 -0
- package/dist/cjs/src/file-box-helper/mod.js +8 -0
- package/dist/cjs/src/file-box-helper/mod.js.map +1 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.d.ts +6 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.d.ts.map +1 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.js +76 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.js.map +1 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.spec.d.ts +3 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.spec.d.ts.map +1 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.spec.js +35 -0
- package/dist/cjs/src/file-box-helper/normalize-filebox.spec.js.map +1 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.d.ts +6 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.d.ts.map +1 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.js +45 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-grpc.js.map +1 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-local.d.ts +5 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-local.d.ts.map +1 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-local.js +19 -0
- package/dist/cjs/src/file-box-helper/uuidify-file-box-local.js.map +1 -0
- package/dist/cjs/src/mod.d.ts +8 -0
- package/dist/cjs/src/mod.d.ts.map +1 -0
- package/dist/cjs/src/mod.js +13 -0
- package/dist/cjs/src/mod.js.map +1 -0
- package/dist/cjs/src/mod.spec.d.ts +3 -0
- package/dist/cjs/src/mod.spec.d.ts.map +1 -0
- package/dist/cjs/src/mod.spec.js +32 -0
- package/dist/cjs/src/mod.spec.js.map +1 -0
- package/dist/cjs/src/package-json.d.ts +6 -0
- package/dist/cjs/src/package-json.d.ts.map +1 -0
- package/dist/cjs/src/package-json.js +101 -0
- package/dist/cjs/src/package-json.js.map +1 -0
- package/dist/cjs/src/package-json.spec.d.ts +3 -0
- package/dist/cjs/src/package-json.spec.d.ts.map +1 -0
- package/dist/cjs/src/package-json.spec.js +10 -0
- package/dist/cjs/src/package-json.spec.js.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp.d.ts +8 -0
- package/dist/cjs/src/pure-functions/timestamp.d.ts.map +1 -0
- package/dist/cjs/src/pure-functions/timestamp.js +23 -0
- package/dist/cjs/src/pure-functions/timestamp.js.map +1 -0
- package/dist/cjs/src/server/event-stream-manager.d.ts +40 -0
- package/dist/cjs/src/server/event-stream-manager.d.ts.map +1 -0
- package/dist/cjs/src/server/event-stream-manager.js +344 -0
- package/dist/cjs/src/server/event-stream-manager.js.map +1 -0
- package/dist/cjs/src/server/grpc-error.d.ts +5 -0
- package/dist/cjs/src/server/grpc-error.d.ts.map +1 -0
- package/dist/cjs/src/server/grpc-error.js +12 -0
- package/dist/cjs/src/server/grpc-error.js.map +1 -0
- package/dist/cjs/src/server/health-implementation.d.ts +5 -0
- package/dist/cjs/src/server/health-implementation.d.ts.map +1 -0
- package/dist/cjs/src/server/health-implementation.js +55 -0
- package/dist/cjs/src/server/health-implementation.js.map +1 -0
- package/dist/cjs/src/server/puppet-implementation.d.ts +6 -0
- package/dist/cjs/src/server/puppet-implementation.d.ts.map +1 -0
- package/dist/cjs/src/server/puppet-implementation.js +1226 -0
- package/dist/cjs/src/server/puppet-implementation.js.map +1 -0
- package/dist/cjs/src/server/puppet-server.d.ts +23 -0
- package/dist/cjs/src/server/puppet-server.d.ts.map +1 -0
- package/dist/cjs/src/server/puppet-server.js +159 -0
- package/dist/cjs/src/server/puppet-server.js.map +1 -0
- package/dist/cjs/src/server/puppet-server.spec.d.ts +3 -0
- package/dist/cjs/src/server/puppet-server.spec.d.ts.map +1 -0
- package/dist/cjs/src/server/puppet-server.spec.js +15 -0
- package/dist/cjs/src/server/puppet-server.spec.js.map +1 -0
- package/dist/cjs/tests/grpc-client.spec.d.ts +3 -0
- package/dist/cjs/tests/grpc-client.spec.d.ts.map +1 -0
- package/dist/cjs/tests/grpc-client.spec.js +137 -0
- package/dist/cjs/tests/grpc-client.spec.js.map +1 -0
- package/dist/cjs/tests/grpc-stream.spec.d.ts +15 -0
- package/dist/cjs/tests/grpc-stream.spec.d.ts.map +1 -0
- package/dist/cjs/tests/grpc-stream.spec.js +67 -0
- package/dist/cjs/tests/grpc-stream.spec.js.map +1 -0
- package/dist/cjs/tests/integration.spec.d.ts +3 -0
- package/dist/cjs/tests/integration.spec.d.ts.map +1 -0
- package/dist/cjs/tests/integration.spec.js +70 -0
- package/dist/cjs/tests/integration.spec.js.map +1 -0
- package/dist/cjs/tests/performance.spec.d.ts +14 -0
- package/dist/cjs/tests/performance.spec.d.ts.map +1 -0
- package/dist/cjs/tests/performance.spec.js +129 -0
- package/dist/cjs/tests/performance.spec.js.map +1 -0
- package/dist/cjs/tests/ready-event.spec.d.ts +3 -0
- package/dist/cjs/tests/ready-event.spec.d.ts.map +1 -0
- package/dist/cjs/tests/ready-event.spec.js +80 -0
- package/dist/cjs/tests/ready-event.spec.js.map +1 -0
- package/dist/cjs/tests/uuid-file-box.spec.d.ts +3 -0
- package/dist/cjs/tests/uuid-file-box.spec.d.ts.map +1 -0
- package/dist/cjs/tests/uuid-file-box.spec.js +77 -0
- package/dist/cjs/tests/uuid-file-box.spec.js.map +1 -0
- package/dist/esm/examples/ding-dong-bot.d.ts +2 -0
- package/dist/esm/examples/ding-dong-bot.d.ts.map +1 -0
- package/dist/esm/examples/ding-dong-bot.js +131 -0
- package/dist/esm/examples/ding-dong-bot.js.map +1 -0
- package/dist/esm/src/auth/auth-impl-token.d.ts +4 -0
- package/dist/esm/src/auth/auth-impl-token.d.ts.map +1 -0
- package/dist/esm/src/auth/auth-impl-token.js +78 -0
- package/dist/esm/src/auth/auth-impl-token.js.map +1 -0
- package/dist/esm/src/auth/auth-impl-token.spec.d.ts +3 -0
- package/dist/esm/src/auth/auth-impl-token.spec.d.ts.map +1 -0
- package/dist/esm/src/auth/auth-impl-token.spec.js +63 -0
- package/dist/esm/src/auth/auth-impl-token.spec.js.map +1 -0
- package/dist/esm/src/auth/ca.d.ts +46 -0
- package/dist/esm/src/auth/ca.d.ts.map +1 -0
- package/dist/esm/src/auth/ca.js +129 -0
- package/dist/esm/src/auth/ca.js.map +1 -0
- package/dist/esm/src/auth/ca.spec.d.ts +3 -0
- package/dist/esm/src/auth/ca.spec.d.ts.map +1 -0
- package/dist/esm/src/auth/ca.spec.js +87 -0
- package/dist/esm/src/auth/ca.spec.js.map +1 -0
- package/dist/esm/src/auth/call-cred.d.ts +9 -0
- package/dist/esm/src/auth/call-cred.d.ts.map +1 -0
- package/dist/esm/src/auth/call-cred.js +13 -0
- package/dist/esm/src/auth/call-cred.js.map +1 -0
- package/dist/esm/src/auth/call-cred.spec.d.ts +3 -0
- package/dist/esm/src/auth/call-cred.spec.d.ts.map +1 -0
- package/dist/esm/src/auth/call-cred.spec.js +16 -0
- package/dist/esm/src/auth/call-cred.spec.js.map +1 -0
- package/dist/esm/src/auth/env-vars.d.ts +13 -0
- package/dist/esm/src/auth/env-vars.d.ts.map +1 -0
- package/dist/esm/src/auth/env-vars.js +21 -0
- package/dist/esm/src/auth/env-vars.js.map +1 -0
- package/dist/esm/src/auth/grpc-js.d.ts +7 -0
- package/dist/esm/src/auth/grpc-js.d.ts.map +1 -0
- package/dist/esm/src/auth/grpc-js.js +4 -0
- package/dist/esm/src/auth/grpc-js.js.map +1 -0
- package/dist/esm/src/auth/mod.d.ts +5 -0
- package/dist/esm/src/auth/mod.d.ts.map +1 -0
- package/dist/esm/src/auth/mod.js +5 -0
- package/dist/esm/src/auth/mod.js.map +1 -0
- package/dist/esm/src/auth/mokey-patch-header-authorization.d.ts +11 -0
- package/dist/esm/src/auth/mokey-patch-header-authorization.d.ts.map +1 -0
- package/dist/esm/src/auth/mokey-patch-header-authorization.js +29 -0
- package/dist/esm/src/auth/mokey-patch-header-authorization.js.map +1 -0
- package/dist/esm/src/auth/monkey-patch-header-authorization.spec.d.ts +3 -0
- package/dist/esm/src/auth/monkey-patch-header-authorization.spec.d.ts.map +1 -0
- package/dist/esm/src/auth/monkey-patch-header-authorization.spec.js +17 -0
- package/dist/esm/src/auth/monkey-patch-header-authorization.spec.js.map +1 -0
- package/dist/esm/src/client/duck/actions.d.ts +6 -0
- package/dist/esm/src/client/duck/actions.d.ts.map +1 -0
- package/dist/esm/src/client/duck/actions.js +28 -0
- package/dist/esm/src/client/duck/actions.js.map +1 -0
- package/dist/esm/src/client/duck/epic-recover.d.ts +36 -0
- package/dist/esm/src/client/duck/epic-recover.d.ts.map +1 -0
- package/dist/esm/src/client/duck/epic-recover.js +36 -0
- package/dist/esm/src/client/duck/epic-recover.js.map +1 -0
- package/dist/esm/src/client/duck/epic-recover.spec.d.ts +3 -0
- package/dist/esm/src/client/duck/epic-recover.spec.d.ts.map +1 -0
- package/dist/esm/src/client/duck/epic-recover.spec.js +126 -0
- package/dist/esm/src/client/duck/epic-recover.spec.js.map +1 -0
- package/dist/esm/src/client/duck/epics.d.ts +4 -0
- package/dist/esm/src/client/duck/epics.d.ts.map +1 -0
- package/dist/esm/src/client/duck/epics.js +33 -0
- package/dist/esm/src/client/duck/epics.js.map +1 -0
- package/dist/esm/src/client/duck/mod.d.ts +29 -0
- package/dist/esm/src/client/duck/mod.d.ts.map +1 -0
- package/dist/esm/src/client/duck/mod.js +29 -0
- package/dist/esm/src/client/duck/mod.js.map +1 -0
- package/dist/esm/src/client/duck/operations.d.ts +23 -0
- package/dist/esm/src/client/duck/operations.d.ts.map +1 -0
- package/dist/esm/src/client/duck/operations.js +4 -0
- package/dist/esm/src/client/duck/operations.js.map +1 -0
- package/dist/esm/src/client/duck/reducers.d.ts +59 -0
- package/dist/esm/src/client/duck/reducers.d.ts.map +1 -0
- package/dist/esm/src/client/duck/reducers.js +26 -0
- package/dist/esm/src/client/duck/reducers.js.map +1 -0
- package/dist/esm/src/client/duck/selectors.d.ts +21 -0
- package/dist/esm/src/client/duck/selectors.d.ts.map +1 -0
- package/dist/esm/src/client/duck/selectors.js +22 -0
- package/dist/esm/src/client/duck/selectors.js.map +1 -0
- package/dist/esm/src/client/duck/tests.spec.d.ts +3 -0
- package/dist/esm/src/client/duck/tests.spec.d.ts.map +1 -0
- package/dist/esm/src/client/duck/tests.spec.js +24 -0
- package/dist/esm/src/client/duck/tests.spec.js.map +1 -0
- package/dist/esm/src/client/duck/types.d.ts +21 -0
- package/dist/esm/src/client/duck/types.d.ts.map +1 -0
- package/dist/esm/src/client/duck/types.js +21 -0
- package/dist/esm/src/client/duck/types.js.map +1 -0
- package/dist/esm/src/client/duck/utils.d.ts +21 -0
- package/dist/esm/src/client/duck/utils.d.ts.map +1 -0
- package/dist/esm/src/client/duck/utils.js +2 -0
- package/dist/esm/src/client/duck/utils.js.map +1 -0
- package/dist/esm/src/client/grpc-manager.d.ts +29 -0
- package/dist/esm/src/client/grpc-manager.d.ts.map +1 -0
- package/dist/esm/src/client/grpc-manager.js +353 -0
- package/dist/esm/src/client/grpc-manager.js.map +1 -0
- package/dist/esm/src/client/grpc-manager.spec.d.ts +3 -0
- package/dist/esm/src/client/grpc-manager.spec.d.ts.map +1 -0
- package/dist/esm/src/client/grpc-manager.spec.js +17 -0
- package/dist/esm/src/client/grpc-manager.spec.js.map +1 -0
- package/dist/esm/src/client/payload-store.d.ts +26 -0
- package/dist/esm/src/client/payload-store.d.ts.map +1 -0
- package/dist/esm/src/client/payload-store.js +112 -0
- package/dist/esm/src/client/payload-store.js.map +1 -0
- package/dist/esm/src/client/payload-store.spec.d.ts +3 -0
- package/dist/esm/src/client/payload-store.spec.d.ts.map +1 -0
- package/dist/esm/src/client/payload-store.spec.js +15 -0
- package/dist/esm/src/client/payload-store.spec.js.map +1 -0
- package/dist/esm/src/client/puppet-service.d.ts +161 -0
- package/dist/esm/src/client/puppet-service.d.ts.map +1 -0
- package/dist/esm/src/client/puppet-service.js +1357 -0
- package/dist/esm/src/client/puppet-service.js.map +1 -0
- package/dist/esm/src/client/puppet-service.spec.d.ts +3 -0
- package/dist/esm/src/client/puppet-service.spec.d.ts.map +1 -0
- package/dist/esm/src/client/puppet-service.spec.js +50 -0
- package/dist/esm/src/client/puppet-service.spec.js.map +1 -0
- package/dist/esm/src/config.d.ts +20 -0
- package/dist/esm/src/config.d.ts.map +1 -0
- package/dist/esm/src/config.js +20 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/deprecated/chunk-pb.d.ts +15 -0
- package/dist/esm/src/deprecated/chunk-pb.d.ts.map +1 -0
- package/dist/esm/src/deprecated/chunk-pb.js +56 -0
- package/dist/esm/src/deprecated/chunk-pb.js.map +1 -0
- package/dist/esm/src/deprecated/chunk-pb.spec.d.ts +3 -0
- package/dist/esm/src/deprecated/chunk-pb.spec.d.ts.map +1 -0
- package/dist/esm/src/deprecated/chunk-pb.spec.js +142 -0
- package/dist/esm/src/deprecated/chunk-pb.spec.js.map +1 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.d.ts +21 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.d.ts.map +1 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.js +39 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.js.map +1 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts +3 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.d.ts.map +1 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.js +92 -0
- package/dist/esm/src/deprecated/conversation-id-file-box.spec.js.map +1 -0
- package/dist/esm/src/deprecated/file-box-chunk.d.ts +14 -0
- package/dist/esm/src/deprecated/file-box-chunk.d.ts.map +1 -0
- package/dist/esm/src/deprecated/file-box-chunk.js +63 -0
- package/dist/esm/src/deprecated/file-box-chunk.js.map +1 -0
- package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts +3 -0
- package/dist/esm/src/deprecated/file-box-chunk.spec.d.ts.map +1 -0
- package/dist/esm/src/deprecated/file-box-chunk.spec.js +132 -0
- package/dist/esm/src/deprecated/file-box-chunk.spec.js.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.d.ts +15 -0
- package/dist/esm/src/deprecated/file-box-pb.d.ts.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.js +22 -0
- package/dist/esm/src/deprecated/file-box-pb.js.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.spec.d.ts +3 -0
- package/dist/esm/src/deprecated/file-box-pb.spec.d.ts.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.spec.js +16 -0
- package/dist/esm/src/deprecated/file-box-pb.spec.js.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.type.d.ts +15 -0
- package/dist/esm/src/deprecated/file-box-pb.type.d.ts.map +1 -0
- package/dist/esm/src/deprecated/file-box-pb.type.js +2 -0
- package/dist/esm/src/deprecated/file-box-pb.type.js.map +1 -0
- package/dist/esm/src/deprecated/mod.d.ts +3 -0
- package/dist/esm/src/deprecated/mod.d.ts.map +1 -0
- package/dist/esm/src/deprecated/mod.js +3 -0
- package/dist/esm/src/deprecated/mod.js.map +1 -0
- package/dist/esm/src/deprecated/next-data.d.ts +7 -0
- package/dist/esm/src/deprecated/next-data.d.ts.map +1 -0
- package/dist/esm/src/deprecated/next-data.js +23 -0
- package/dist/esm/src/deprecated/next-data.js.map +1 -0
- package/dist/esm/src/deprecated/serialize-file-box.d.ts +6 -0
- package/dist/esm/src/deprecated/serialize-file-box.d.ts.map +1 -0
- package/dist/esm/src/deprecated/serialize-file-box.js +18 -0
- package/dist/esm/src/deprecated/serialize-file-box.js.map +1 -0
- package/dist/esm/src/env-vars.d.ts +5 -0
- package/dist/esm/src/env-vars.d.ts.map +1 -0
- package/dist/esm/src/env-vars.js +83 -0
- package/dist/esm/src/env-vars.js.map +1 -0
- package/dist/esm/src/env-vars.spec.d.ts +3 -0
- package/dist/esm/src/env-vars.spec.d.ts.map +1 -0
- package/dist/esm/src/env-vars.spec.js +19 -0
- package/dist/esm/src/env-vars.spec.js.map +1 -0
- package/dist/esm/src/event-type-rev.d.ts +11 -0
- package/dist/esm/src/event-type-rev.d.ts.map +1 -0
- package/dist/esm/src/event-type-rev.js +14 -0
- package/dist/esm/src/event-type-rev.js.map +1 -0
- package/dist/esm/src/file-box-helper/mod.d.ts +4 -0
- package/dist/esm/src/file-box-helper/mod.d.ts.map +1 -0
- package/dist/esm/src/file-box-helper/mod.js +4 -0
- package/dist/esm/src/file-box-helper/mod.js.map +1 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.d.ts +6 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.d.ts.map +1 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.js +72 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.js.map +1 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.spec.d.ts +3 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.spec.d.ts.map +1 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.spec.js +33 -0
- package/dist/esm/src/file-box-helper/normalize-filebox.spec.js.map +1 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.d.ts +6 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.d.ts.map +1 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.js +42 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-grpc.js.map +1 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-local.d.ts +5 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-local.d.ts.map +1 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-local.js +16 -0
- package/dist/esm/src/file-box-helper/uuidify-file-box-local.js.map +1 -0
- package/dist/esm/src/mod.d.ts +8 -0
- package/dist/esm/src/mod.d.ts.map +1 -0
- package/dist/esm/src/mod.js +7 -0
- package/dist/esm/src/mod.js.map +1 -0
- package/dist/esm/src/mod.spec.d.ts +3 -0
- package/dist/esm/src/mod.spec.d.ts.map +1 -0
- package/dist/esm/src/mod.spec.js +7 -0
- package/dist/esm/src/mod.spec.js.map +1 -0
- package/dist/esm/src/package-json.d.ts +6 -0
- package/dist/esm/src/package-json.d.ts.map +1 -0
- package/dist/esm/src/package-json.js +98 -0
- package/dist/esm/src/package-json.js.map +1 -0
- package/dist/esm/src/package-json.spec.d.ts +3 -0
- package/dist/esm/src/package-json.spec.d.ts.map +1 -0
- package/dist/esm/src/package-json.spec.js +8 -0
- package/dist/esm/src/package-json.spec.js.map +1 -0
- package/dist/esm/src/pure-functions/timestamp.d.ts +8 -0
- package/dist/esm/src/pure-functions/timestamp.d.ts.map +1 -0
- package/dist/esm/src/pure-functions/timestamp.js +19 -0
- package/dist/esm/src/pure-functions/timestamp.js.map +1 -0
- package/dist/esm/src/server/event-stream-manager.d.ts +40 -0
- package/dist/esm/src/server/event-stream-manager.d.ts.map +1 -0
- package/dist/esm/src/server/event-stream-manager.js +318 -0
- package/dist/esm/src/server/event-stream-manager.js.map +1 -0
- package/dist/esm/src/server/grpc-error.d.ts +5 -0
- package/dist/esm/src/server/grpc-error.d.ts.map +1 -0
- package/dist/esm/src/server/grpc-error.js +8 -0
- package/dist/esm/src/server/grpc-error.js.map +1 -0
- package/dist/esm/src/server/health-implementation.d.ts +5 -0
- package/dist/esm/src/server/health-implementation.d.ts.map +1 -0
- package/dist/esm/src/server/health-implementation.js +52 -0
- package/dist/esm/src/server/health-implementation.js.map +1 -0
- package/dist/esm/src/server/puppet-implementation.d.ts +6 -0
- package/dist/esm/src/server/puppet-implementation.d.ts.map +1 -0
- package/dist/esm/src/server/puppet-implementation.js +1200 -0
- package/dist/esm/src/server/puppet-implementation.js.map +1 -0
- package/dist/esm/src/server/puppet-server.d.ts +23 -0
- package/dist/esm/src/server/puppet-server.d.ts.map +1 -0
- package/dist/esm/src/server/puppet-server.js +152 -0
- package/dist/esm/src/server/puppet-server.js.map +1 -0
- package/dist/esm/src/server/puppet-server.spec.d.ts +3 -0
- package/dist/esm/src/server/puppet-server.spec.d.ts.map +1 -0
- package/dist/esm/src/server/puppet-server.spec.js +13 -0
- package/dist/esm/src/server/puppet-server.spec.js.map +1 -0
- package/dist/esm/tests/grpc-client.spec.d.ts +3 -0
- package/dist/esm/tests/grpc-client.spec.d.ts.map +1 -0
- package/dist/esm/tests/grpc-client.spec.js +132 -0
- package/dist/esm/tests/grpc-client.spec.js.map +1 -0
- package/dist/esm/tests/grpc-stream.spec.d.ts +15 -0
- package/dist/esm/tests/grpc-stream.spec.d.ts.map +1 -0
- package/dist/esm/tests/grpc-stream.spec.js +62 -0
- package/dist/esm/tests/grpc-stream.spec.js.map +1 -0
- package/dist/esm/tests/integration.spec.d.ts +3 -0
- package/dist/esm/tests/integration.spec.d.ts.map +1 -0
- package/dist/esm/tests/integration.spec.js +65 -0
- package/dist/esm/tests/integration.spec.js.map +1 -0
- package/dist/esm/tests/performance.spec.d.ts +14 -0
- package/dist/esm/tests/performance.spec.d.ts.map +1 -0
- package/dist/esm/tests/performance.spec.js +104 -0
- package/dist/esm/tests/performance.spec.js.map +1 -0
- package/dist/esm/tests/ready-event.spec.d.ts +3 -0
- package/dist/esm/tests/ready-event.spec.d.ts.map +1 -0
- package/dist/esm/tests/ready-event.spec.js +52 -0
- package/dist/esm/tests/ready-event.spec.js.map +1 -0
- package/dist/esm/tests/uuid-file-box.spec.d.ts +3 -0
- package/dist/esm/tests/uuid-file-box.spec.d.ts.map +1 -0
- package/dist/esm/tests/uuid-file-box.spec.js +49 -0
- package/dist/esm/tests/uuid-file-box.spec.js.map +1 -0
- package/package.json +97 -0
- package/src/auth/README.md +10 -0
- package/src/auth/auth-impl-token.spec.ts +81 -0
- package/src/auth/auth-impl-token.ts +108 -0
- package/src/auth/ca.spec.ts +116 -0
- package/src/auth/ca.ts +137 -0
- package/src/auth/call-cred.spec.ts +25 -0
- package/src/auth/call-cred.ts +22 -0
- package/src/auth/env-vars.ts +32 -0
- package/src/auth/grpc-js.ts +29 -0
- package/src/auth/mod.ts +9 -0
- package/src/auth/mokey-patch-header-authorization.ts +45 -0
- package/src/auth/monkey-patch-header-authorization.spec.ts +26 -0
- package/src/client/duck/actions.ts +31 -0
- package/src/client/duck/epic-recover.spec.ts +180 -0
- package/src/client/duck/epic-recover.ts +109 -0
- package/src/client/duck/epics.ts +53 -0
- package/src/client/duck/mod.ts +38 -0
- package/src/client/duck/operations.ts +28 -0
- package/src/client/duck/reducers.ts +36 -0
- package/src/client/duck/selectors.ts +27 -0
- package/src/client/duck/tests.spec.ts +25 -0
- package/src/client/duck/types.ts +20 -0
- package/src/client/duck/utils.ts +20 -0
- package/src/client/grpc-manager.spec.ts +20 -0
- package/src/client/grpc-manager.ts +440 -0
- package/src/client/payload-store.spec.ts +19 -0
- package/src/client/payload-store.ts +153 -0
- package/src/client/puppet-service.spec.ts +59 -0
- package/src/client/puppet-service.ts +1938 -0
- package/src/config.ts +31 -0
- package/src/deprecated/chunk-pb.spec.ts +210 -0
- package/src/deprecated/chunk-pb.ts +75 -0
- package/src/deprecated/conversation-id-file-box.spec.ts +131 -0
- package/src/deprecated/conversation-id-file-box.ts +72 -0
- package/src/deprecated/file-box-chunk.spec.ts +184 -0
- package/src/deprecated/file-box-chunk.ts +87 -0
- package/src/deprecated/file-box-pb.spec.ts +31 -0
- package/src/deprecated/file-box-pb.ts +41 -0
- package/src/deprecated/file-box-pb.type.ts +16 -0
- package/src/deprecated/mod.ts +8 -0
- package/src/deprecated/next-data.ts +35 -0
- package/src/deprecated/serialize-file-box.ts +24 -0
- package/src/env-vars.spec.ts +23 -0
- package/src/env-vars.ts +100 -0
- package/src/event-type-rev.ts +19 -0
- package/src/file-box-helper/mod.ts +11 -0
- package/src/file-box-helper/normalize-filebox.spec.ts +47 -0
- package/src/file-box-helper/normalize-filebox.ts +90 -0
- package/src/file-box-helper/uuidify-file-box-grpc.ts +83 -0
- package/src/file-box-helper/uuidify-file-box-local.ts +31 -0
- package/src/mod.spec.ts +9 -0
- package/src/mod.ts +25 -0
- package/src/package-json.spec.ts +10 -0
- package/src/package-json.ts +101 -0
- package/src/pure-functions/timestamp.ts +28 -0
- package/src/server/event-stream-manager.ts +383 -0
- package/src/server/grpc-error.ts +23 -0
- package/src/server/health-implementation.ts +78 -0
- package/src/server/puppet-implementation.ts +1539 -0
- package/src/server/puppet-server.spec.ts +21 -0
- package/src/server/puppet-server.ts +239 -0
- package/src/typings.d.ts +68 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tstest_1 = require("tstest");
|
|
8
|
+
const wechaty_puppet_mock_1 = require("wechaty-puppet-mock");
|
|
9
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
10
|
+
const mod_js_1 = require("../src/mod.js");
|
|
11
|
+
const NIL_UUID_V4 = '00000000-0000-0000-0000-000000000000';
|
|
12
|
+
(0, tstest_1.test)('Integration testing', async (t) => {
|
|
13
|
+
const PORT = await (0, get_port_1.default)();
|
|
14
|
+
const TOKEN = `insecure_${NIL_UUID_V4}`;
|
|
15
|
+
const ENDPOINT = `0.0.0.0:${PORT}`;
|
|
16
|
+
const DING = '__ding_data__';
|
|
17
|
+
/**
|
|
18
|
+
* Puppet in Service
|
|
19
|
+
*/
|
|
20
|
+
const puppet = new wechaty_puppet_mock_1.PuppetMock();
|
|
21
|
+
const spyStart = tstest_1.sinon.spy(puppet, 'start');
|
|
22
|
+
const spyOn = tstest_1.sinon.spy(puppet, 'on');
|
|
23
|
+
const spyDing = tstest_1.sinon.spy(puppet, 'ding');
|
|
24
|
+
/**
|
|
25
|
+
* Puppet Server
|
|
26
|
+
*/
|
|
27
|
+
const serverOptions = {
|
|
28
|
+
endpoint: ENDPOINT,
|
|
29
|
+
puppet: puppet,
|
|
30
|
+
token: TOKEN,
|
|
31
|
+
};
|
|
32
|
+
const puppetServer = new mod_js_1.PuppetServer(serverOptions);
|
|
33
|
+
await puppetServer.start();
|
|
34
|
+
/**
|
|
35
|
+
* Puppet Service Client
|
|
36
|
+
*/
|
|
37
|
+
const puppetOptions = {
|
|
38
|
+
endpoint: ENDPOINT,
|
|
39
|
+
token: TOKEN,
|
|
40
|
+
};
|
|
41
|
+
const puppetService = new mod_js_1.PuppetService(puppetOptions);
|
|
42
|
+
await puppetService.start();
|
|
43
|
+
t.ok(spyStart.called, 'should called the puppet server start() function');
|
|
44
|
+
const future = new Promise((resolve, reject) => {
|
|
45
|
+
const offError = () => puppetService.off('error', reject);
|
|
46
|
+
puppetService.once('dong', payload => {
|
|
47
|
+
resolve(payload.data || '');
|
|
48
|
+
offError();
|
|
49
|
+
});
|
|
50
|
+
puppetService.once('error', e => {
|
|
51
|
+
reject(e);
|
|
52
|
+
offError();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
puppetService.ding(DING);
|
|
56
|
+
const result = await future;
|
|
57
|
+
t.ok(spyOn.called, 'should called the puppet server on() function');
|
|
58
|
+
t.ok(spyDing.called, 'should called the puppet server ding() function');
|
|
59
|
+
t.equal(result, DING, 'should get a successful roundtrip for ding');
|
|
60
|
+
/**
|
|
61
|
+
* Stop
|
|
62
|
+
* 1. Puppet in Service
|
|
63
|
+
* 2. Puppet Service Server
|
|
64
|
+
* 3. Puppet Service Client
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
await puppetService.stop();
|
|
68
|
+
await puppetServer.stop();
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=integration.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.spec.js","sourceRoot":"","sources":["../../../tests/integration.spec.ts"],"names":[],"mappings":";;;;;;AAEA,mCAG2B;AAK3B,6DAE4C;AAC5C,wDAA8B;AAE9B,0CAIoD;AAEpD,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAE1D,IAAA,aAAI,EAAC,qBAAqB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACpC,MAAM,IAAI,GAAO,MAAM,IAAA,kBAAO,GAAE,CAAA;IAChC,MAAM,KAAK,GAAM,YAAY,WAAW,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,WAAW,IAAI,EAAE,CAAA;IAElC,MAAM,IAAI,GAAO,eAAe,CAAA;IAEhC;;OAEG;IACH,MAAM,MAAM,GAAG,IAAI,gCAAU,EAAS,CAAA;IACtC,MAAM,QAAQ,GAAG,cAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAM,cAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,OAAO,GAAI,cAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE1C;;OAEG;IACH,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAG,QAAQ;QACnB,MAAM,EAAK,MAAM;QACjB,KAAK,EAAM,KAAK;KACM,CAAA;IAExB,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;IAE1B;;OAEG;IACH,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAG,QAAQ;QACnB,KAAK,EAAM,KAAK;KACA,CAAA;IAElB,MAAM,aAAa,GAAG,IAAI,sBAAa,CAAC,aAAa,CAAC,CAAA;IACtD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAA;IAE3B,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAA;IAEzE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAEzD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YACnC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;YAC3B,QAAQ,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;QACF,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;YAC9B,MAAM,CAAC,CAAC,CAAC,CAAA;YACT,QAAQ,EAAE,CAAA;QACZ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAA;IAE3B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAK,+CAA+C,CAAC,CAAA;IACtE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAG,iDAAiD,CAAC,CAAA;IAExE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,4CAA4C,CAAC,CAAA;IAEnE;;;;;;OAMG;IACH,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
/**
|
|
3
|
+
* Software performance testing
|
|
4
|
+
* https://en.wikipedia.org/wiki/Software_performance_testing#Testing_types
|
|
5
|
+
*
|
|
6
|
+
* 负载测试,并发测试和压力测试,这三者之前的区别和联系?
|
|
7
|
+
* https://www.zhihu.com/question/269215477/answer/350162604
|
|
8
|
+
*
|
|
9
|
+
* NodeJS: How Is Logging Enabled for the @grpc/grpc.js Package
|
|
10
|
+
* https://stackoverflow.com/a/60935367/1123955
|
|
11
|
+
* GRPC_VERBOSITY=DEBUG GRPC_TRACE=all
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=performance.spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.spec.d.ts","sourceRoot":"","sources":["../../../tests/performance.spec.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Software performance testing
|
|
5
|
+
* https://en.wikipedia.org/wiki/Software_performance_testing#Testing_types
|
|
6
|
+
*
|
|
7
|
+
* 负载测试,并发测试和压力测试,这三者之前的区别和联系?
|
|
8
|
+
* https://www.zhihu.com/question/269215477/answer/350162604
|
|
9
|
+
*
|
|
10
|
+
* NodeJS: How Is Logging Enabled for the @grpc/grpc.js Package
|
|
11
|
+
* https://stackoverflow.com/a/60935367/1123955
|
|
12
|
+
* GRPC_VERBOSITY=DEBUG GRPC_TRACE=all
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
const tstest_1 = require("tstest");
|
|
39
|
+
const PUPPET = __importStar(require("@juzi/wechaty-puppet"));
|
|
40
|
+
const wechaty_puppet_mock_1 = require("wechaty-puppet-mock");
|
|
41
|
+
const mod_js_1 = require("../src/mod.js");
|
|
42
|
+
const config_js_1 = require("../src/config.js");
|
|
43
|
+
const idToName = (id) => {
|
|
44
|
+
return `name of ${id}`;
|
|
45
|
+
};
|
|
46
|
+
class PuppetTest extends wechaty_puppet_mock_1.PuppetMock {
|
|
47
|
+
constructor(...args) {
|
|
48
|
+
super(...args);
|
|
49
|
+
}
|
|
50
|
+
async contactRawPayload(id) {
|
|
51
|
+
config_js_1.log.verbose('PuppetTest', 'contactRawPayload(%s)', id);
|
|
52
|
+
const rawPayload = {
|
|
53
|
+
avatar: '',
|
|
54
|
+
gender: PUPPET.types.ContactGender.Male,
|
|
55
|
+
id,
|
|
56
|
+
name: idToName(id),
|
|
57
|
+
phone: [],
|
|
58
|
+
type: PUPPET.types.Contact.Individual,
|
|
59
|
+
};
|
|
60
|
+
await new Promise(resolve => {
|
|
61
|
+
process.stdout.write(',');
|
|
62
|
+
setTimeout(() => {
|
|
63
|
+
process.stdout.write('.');
|
|
64
|
+
resolve();
|
|
65
|
+
}, 1000);
|
|
66
|
+
});
|
|
67
|
+
return rawPayload;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
tstest_1.test.skip('stress testing', async (t) => {
|
|
71
|
+
const TOKEN = 'test_token';
|
|
72
|
+
const ENDPOINT = '0.0.0.0:8788';
|
|
73
|
+
// const DING = 'ding_data'
|
|
74
|
+
/**
|
|
75
|
+
* Puppet in Service
|
|
76
|
+
*/
|
|
77
|
+
const puppet = new PuppetTest();
|
|
78
|
+
const spy = tstest_1.sinon.spy(puppet, 'contactRawPayload');
|
|
79
|
+
/**
|
|
80
|
+
* Puppet Server
|
|
81
|
+
*/
|
|
82
|
+
const serverOptions = {
|
|
83
|
+
endpoint: ENDPOINT,
|
|
84
|
+
puppet: puppet,
|
|
85
|
+
token: TOKEN,
|
|
86
|
+
};
|
|
87
|
+
const puppetServer = new mod_js_1.PuppetServer(serverOptions);
|
|
88
|
+
await puppetServer.start();
|
|
89
|
+
/**
|
|
90
|
+
* Puppet Service Client
|
|
91
|
+
*/
|
|
92
|
+
const puppetOptions = {
|
|
93
|
+
endpoint: ENDPOINT,
|
|
94
|
+
token: TOKEN,
|
|
95
|
+
};
|
|
96
|
+
const puppetService = new mod_js_1.PuppetService(puppetOptions);
|
|
97
|
+
await puppetService.start();
|
|
98
|
+
let COUNTER = 0;
|
|
99
|
+
const dongList = [];
|
|
100
|
+
puppetService.on('dong', payload => {
|
|
101
|
+
dongList.push(payload.data || '');
|
|
102
|
+
});
|
|
103
|
+
const timer = setInterval(() => {
|
|
104
|
+
puppetService.ding(`interval ${COUNTER++}`);
|
|
105
|
+
}, 10);
|
|
106
|
+
const CONCURRENCY = 1000;
|
|
107
|
+
const concurrencyList = [
|
|
108
|
+
...Array(CONCURRENCY).keys(),
|
|
109
|
+
].map(String);
|
|
110
|
+
const resultList = await Promise.all(concurrencyList.map(id => puppetService.contactPayload(id)));
|
|
111
|
+
console.info();
|
|
112
|
+
clearInterval(timer);
|
|
113
|
+
const actualNameList = resultList.map(payload => payload.name);
|
|
114
|
+
const EXPECTED_RESULT_LIST = concurrencyList.map(idToName);
|
|
115
|
+
t.equal(spy.callCount, CONCURRENCY, `should be called ${CONCURRENCY} times`);
|
|
116
|
+
t.same(actualNameList, EXPECTED_RESULT_LIST, `should get the right result with a huge concurrency ${CONCURRENCY}`);
|
|
117
|
+
t.ok(dongList.length > 10, `dongList should receive many dong data (actual: ${dongList.length})`);
|
|
118
|
+
t.equal(dongList[0], 'interval 0', 'dongList should get the first response from counter 0');
|
|
119
|
+
/**
|
|
120
|
+
* Stop
|
|
121
|
+
* 1. Puppet in Service
|
|
122
|
+
* 2. Puppet Service Server
|
|
123
|
+
* 3. Puppet Service Client
|
|
124
|
+
*
|
|
125
|
+
*/
|
|
126
|
+
await puppetService.stop();
|
|
127
|
+
await puppetServer.stop();
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=performance.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.spec.js","sourceRoot":"","sources":["../../../tests/performance.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ready-event.spec.d.ts","sourceRoot":"","sources":["../../../tests/ready-event.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const tstest_1 = require("tstest");
|
|
31
|
+
const wechaty_puppet_mock_1 = __importDefault(require("wechaty-puppet-mock"));
|
|
32
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
33
|
+
const mod_js_1 = __importStar(require("../src/mod.js"));
|
|
34
|
+
const NIL_UUID_V4 = '00000000-0000-0000-0000-000000000000';
|
|
35
|
+
(0, tstest_1.test)('ready event test', async (t) => {
|
|
36
|
+
const PORT = await (0, get_port_1.default)();
|
|
37
|
+
const TOKEN = `insecure_${NIL_UUID_V4}`;
|
|
38
|
+
const ENDPOINT = `0.0.0.0:${PORT}`;
|
|
39
|
+
/**
|
|
40
|
+
* Puppet Server
|
|
41
|
+
*/
|
|
42
|
+
const puppet = new wechaty_puppet_mock_1.default();
|
|
43
|
+
// set ready to true before service starts
|
|
44
|
+
puppet.readyIndicator.value(true);
|
|
45
|
+
puppet.__currentUserId = 'logged in';
|
|
46
|
+
const serverOptions = {
|
|
47
|
+
endpoint: ENDPOINT,
|
|
48
|
+
puppet: puppet,
|
|
49
|
+
token: TOKEN,
|
|
50
|
+
};
|
|
51
|
+
const puppetServer = new mod_js_1.PuppetServer(serverOptions);
|
|
52
|
+
await puppetServer.start();
|
|
53
|
+
/**
|
|
54
|
+
* Puppet Service Client
|
|
55
|
+
*/
|
|
56
|
+
const puppetOptions = {
|
|
57
|
+
endpoint: ENDPOINT,
|
|
58
|
+
token: TOKEN,
|
|
59
|
+
};
|
|
60
|
+
// check if ready event is emited on this ready-ed puppet
|
|
61
|
+
const puppetService = new mod_js_1.default(puppetOptions);
|
|
62
|
+
const eventList = [];
|
|
63
|
+
const loginFuture = new Promise(resolve => puppetService.once('login', () => {
|
|
64
|
+
eventList.push('login');
|
|
65
|
+
resolve();
|
|
66
|
+
}));
|
|
67
|
+
const readyFuture = new Promise(resolve => puppetService.once('ready', () => {
|
|
68
|
+
eventList.push('ready');
|
|
69
|
+
resolve();
|
|
70
|
+
}));
|
|
71
|
+
await Promise.all([
|
|
72
|
+
puppetService.start(),
|
|
73
|
+
loginFuture,
|
|
74
|
+
readyFuture,
|
|
75
|
+
]);
|
|
76
|
+
t.same(eventList, ['login', 'ready'], 'should have `login` event first then `ready`');
|
|
77
|
+
await puppetService.stop();
|
|
78
|
+
await puppetServer.stop();
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=ready-event.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ready-event.spec.js","sourceRoot":"","sources":["../../../tests/ready-event.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mCAA6B;AAI7B,8EAA4C;AAC5C,wDAA8B;AAE9B,wDAGsB;AAEtB,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAE1D,IAAA,aAAI,EAAC,kBAAkB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACjC,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,YAAY,WAAW,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,WAAW,IAAI,EAAE,CAAA;IAElC;;OAEG;IACH,MAAM,MAAM,GAAG,IAAI,6BAAU,EAAS,CAAA;IAEtC,0CAA0C;IAC1C,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAChC;IAAC,MAAc,CAAC,eAAe,GAAG,WAAW,CAAA;IAC9C,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACU,CAAA;IAExB,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,aAAa,CAAC,CAAA;IAEpD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;IAE1B;;OAEG;IACH,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,KAAK;KACI,CAAA;IAElB,yDAAyD;IACzD,MAAM,aAAa,GAAG,IAAI,gBAAa,CAAC,aAAa,CAAC,CAAA;IACtD,MAAM,SAAS,GAAU,EAAE,CAAA;IAE3B,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QAChF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAC,CAAA;IACH,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QAChF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAC,CAAA;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,aAAa,CAAC,KAAK,EAAE;QACrB,WAAW;QACX,WAAW;KACZ,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,8CAA8C,CAAC,CAAA;IAErF,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid-file-box.spec.d.ts","sourceRoot":"","sources":["../../../tests/uuid-file-box.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const tstest_1 = require("tstest");
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const fs = __importStar(require("fs"));
|
|
33
|
+
const wechaty_puppet_mock_1 = __importDefault(require("wechaty-puppet-mock"));
|
|
34
|
+
const get_port_1 = __importDefault(require("get-port"));
|
|
35
|
+
const temp_1 = __importDefault(require("temp"));
|
|
36
|
+
const file_box_1 = require("file-box");
|
|
37
|
+
const mod_js_1 = __importStar(require("../src/mod.js"));
|
|
38
|
+
const NIL_UUID_V4 = '00000000-0000-0000-0000-000000000000';
|
|
39
|
+
const __dirname = path.resolve();
|
|
40
|
+
(0, tstest_1.test)('message file test', async (t) => {
|
|
41
|
+
const PORT = await (0, get_port_1.default)();
|
|
42
|
+
const TOKEN = `insecure_${NIL_UUID_V4}`;
|
|
43
|
+
const ENDPOINT = `0.0.0.0:${PORT}`;
|
|
44
|
+
const FILE = path.join(__dirname, 'tests', 'fixtures', 'smoke-testing.ts');
|
|
45
|
+
const EXPECTED_SIZE = fs.statSync(FILE).size;
|
|
46
|
+
/**
|
|
47
|
+
* Puppet Server
|
|
48
|
+
*/
|
|
49
|
+
const puppet = new wechaty_puppet_mock_1.default();
|
|
50
|
+
puppet.messageFile = async () => file_box_1.FileBox.fromFile(FILE);
|
|
51
|
+
const serverOptions = {
|
|
52
|
+
endpoint: ENDPOINT,
|
|
53
|
+
puppet: puppet,
|
|
54
|
+
token: TOKEN,
|
|
55
|
+
};
|
|
56
|
+
const puppetServer = new mod_js_1.PuppetServer(serverOptions);
|
|
57
|
+
await puppetServer.start();
|
|
58
|
+
/**
|
|
59
|
+
* Puppet Service Client
|
|
60
|
+
*/
|
|
61
|
+
const puppetOptions = {
|
|
62
|
+
endpoint: ENDPOINT,
|
|
63
|
+
token: TOKEN,
|
|
64
|
+
};
|
|
65
|
+
const puppetService = new mod_js_1.default(puppetOptions);
|
|
66
|
+
await puppetService.start();
|
|
67
|
+
const file = await puppetService.messageFile('sb');
|
|
68
|
+
const tmpFolder = temp_1.default.mkdirSync('test');
|
|
69
|
+
const tmpFile = path.join(tmpFolder, 'uuid-file.dat');
|
|
70
|
+
await file.toFile(tmpFile);
|
|
71
|
+
const fileSize = fs.statSync(tmpFile).size;
|
|
72
|
+
t.equal(fileSize, EXPECTED_SIZE, 'should save file with the correct size');
|
|
73
|
+
fs.rmSync(tmpFile);
|
|
74
|
+
await puppetService.stop();
|
|
75
|
+
await puppetServer.stop();
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=uuid-file-box.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid-file-box.spec.js","sourceRoot":"","sources":["../../../tests/uuid-file-box.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,mCAA6C;AAC7C,2CAA2C;AAC3C,uCAAyC;AAEzC,8EAA0D;AAC1D,wDAA+C;AAC/C,gDAA2C;AAC3C,uCAA+C;AAE/C,wDAAgF;AAEhF,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;AAEhC,IAAA,aAAI,EAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClC,MAAM,IAAI,GAAG,MAAM,IAAA,kBAAO,GAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,YAAY,WAAW,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,WAAW,IAAI,EAAE,CAAA;IAElC,MAAM,IAAI,GAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAA;IACnF,MAAM,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA;IAE5C;;OAEG;IACH,MAAM,MAAM,GAAG,IAAI,6BAAU,EAAS,CAAA;IACtC,MAAM,CAAC,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,kBAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEvD,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACU,CAAA;IAExB,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAA;IAE1B;;OAEG;IACH,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,KAAK;KACI,CAAA;IAElB,MAAM,aAAa,GAAG,IAAI,gBAAa,CAAC,aAAa,CAAC,CAAA;IACtD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAA;IAE3B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAElD,MAAM,SAAS,GAAG,cAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IAErD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAA;IAE1C,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,wCAAwC,CAAC,CAAA;IAE1E,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,aAAa,CAAC,IAAI,EAAE,CAAA;IAC1B,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ding-dong-bot.d.ts","sourceRoot":"","sources":["../../../examples/ding-dong-bot.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import * as PUPPET from '@juzi/wechaty-puppet';
|
|
2
|
+
import { FileBox } from 'file-box';
|
|
3
|
+
import { PuppetService } from '../src/mod.js';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* 1. Declare your Bot!
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
const puppet = new PuppetService();
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* 2. Register event handlers for Bot
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
puppet
|
|
16
|
+
.on('logout', onLogout)
|
|
17
|
+
.on('login', onLogin)
|
|
18
|
+
.on('scan', onScan)
|
|
19
|
+
.on('error', onError)
|
|
20
|
+
.on('message', onMessage);
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* 3. Start the bot!
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
puppet.start()
|
|
27
|
+
.catch(async (e) => {
|
|
28
|
+
console.error('Bot start() fail:', e);
|
|
29
|
+
await puppet.stop();
|
|
30
|
+
process.exit(-1);
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* 4. You are all set. ;-]
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* 5. Define Event Handler Functions for:
|
|
40
|
+
* `scan`, `login`, `logout`, `error`, and `message`
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
function onScan(payload) {
|
|
44
|
+
if (payload.qrcode) {
|
|
45
|
+
const qrcodeImageUrl = [
|
|
46
|
+
'https://wechaty.js.org/qrcode/',
|
|
47
|
+
encodeURIComponent(payload.qrcode),
|
|
48
|
+
].join('');
|
|
49
|
+
console.info(`[${payload.status}] ${qrcodeImageUrl}\nScan QR Code above to log in: `);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.info(`[${payload.status}] `, PUPPET.types.ScanStatus[payload.status]);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function onLogin(payload) {
|
|
56
|
+
console.info(`${payload.contactId} login`);
|
|
57
|
+
const contactPayload = await puppet.contactPayload(payload.contactId);
|
|
58
|
+
console.info(`contact payload: ${JSON.stringify(contactPayload)}`);
|
|
59
|
+
puppet.messageSendText(payload.contactId, 'Wechaty login').catch(console.error);
|
|
60
|
+
}
|
|
61
|
+
function onLogout(payload) {
|
|
62
|
+
console.info(`${payload.contactId} logouted`);
|
|
63
|
+
}
|
|
64
|
+
function onError(payload) {
|
|
65
|
+
console.error('Bot error:', payload.data);
|
|
66
|
+
/*
|
|
67
|
+
if (bot.isLoggedIn) {
|
|
68
|
+
bot.say('Wechaty error: ' + e.message).catch(console.error)
|
|
69
|
+
}
|
|
70
|
+
*/
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
* 6. The most important handler is for:
|
|
75
|
+
* dealing with Messages.
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
async function onMessage(payload) {
|
|
79
|
+
console.info(`onMessage(${payload.messageId})`);
|
|
80
|
+
// const DEBUG: boolean = true
|
|
81
|
+
// if (DEBUG) {
|
|
82
|
+
// return
|
|
83
|
+
// }
|
|
84
|
+
const messagePayload = await puppet.messagePayload(payload.messageId);
|
|
85
|
+
console.info('messagePayload:', JSON.stringify(messagePayload));
|
|
86
|
+
if (messagePayload.talkerId) {
|
|
87
|
+
const contactPayload = await puppet.contactPayload(messagePayload.talkerId);
|
|
88
|
+
console.info(`contactPayload(talkerId:${messagePayload.talkerId}):`, JSON.stringify(contactPayload));
|
|
89
|
+
}
|
|
90
|
+
if (messagePayload.roomId) {
|
|
91
|
+
const roomPayload = await puppet.roomPayload(messagePayload.roomId);
|
|
92
|
+
console.info('roomPayload:', JSON.stringify(roomPayload));
|
|
93
|
+
}
|
|
94
|
+
if (messagePayload.listenerId) {
|
|
95
|
+
const contactPayload = await puppet.contactPayload(messagePayload.listenerId);
|
|
96
|
+
console.info(`contactPayload(listenerId:${messagePayload.listenerId}):`, JSON.stringify(contactPayload));
|
|
97
|
+
}
|
|
98
|
+
if (messagePayload.talkerId === puppet.currentUserId) {
|
|
99
|
+
console.info('skip self message');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (messagePayload.type === PUPPET.types.Message.Text
|
|
103
|
+
&& /^ding$/i.test(messagePayload.text || '')) {
|
|
104
|
+
const conversationId = messagePayload.roomId || messagePayload.talkerId;
|
|
105
|
+
if (!conversationId) {
|
|
106
|
+
throw new Error('no conversation id');
|
|
107
|
+
}
|
|
108
|
+
await puppet.messageSendText(conversationId, 'dong');
|
|
109
|
+
const fileBox = FileBox.fromUrl('https://wechaty.github.io/wechaty/images/bot-qr-code.png');
|
|
110
|
+
await puppet.messageSendFile(conversationId, fileBox);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
*
|
|
115
|
+
* 7. Output the Welcome Message
|
|
116
|
+
*
|
|
117
|
+
*/
|
|
118
|
+
const welcome = `
|
|
119
|
+
Puppet Version: ${puppet}@${puppet.version()}
|
|
120
|
+
|
|
121
|
+
Please wait... I'm trying to login in...
|
|
122
|
+
|
|
123
|
+
`;
|
|
124
|
+
console.info(welcome);
|
|
125
|
+
// async function loop () {
|
|
126
|
+
// while (true) {
|
|
127
|
+
// await new Promise(resolve => setTimeout(resolve, 1000))
|
|
128
|
+
// }
|
|
129
|
+
// }
|
|
130
|
+
// loop()
|
|
131
|
+
//# sourceMappingURL=ding-dong-bot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ding-dong-bot.js","sourceRoot":"","sources":["../../../examples/ding-dong-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-impl-token.d.ts","sourceRoot":"","sources":["../../../../src/auth/auth-impl-token.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,4BAA4B,EAC7B,MAAsC,cAAc,CAAA;AAmFrD,QAAA,MAAM,aAAa,uDAAwD,MAAM,0BAUhF,CAAA;AAED,OAAO,EACL,aAAa,GACd,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { log } from '@juzi/wechaty-puppet';
|
|
2
|
+
import { StatusBuilder, Metadata, GrpcStatus, } from './grpc-js.js';
|
|
3
|
+
import { monkeyPatchMetadataFromHttp2Headers } from './mokey-patch-header-authorization.js';
|
|
4
|
+
/**
|
|
5
|
+
* Huan(202108): Monkey patch to support
|
|
6
|
+
* copy `:authority` from header to metadata
|
|
7
|
+
*/
|
|
8
|
+
monkeyPatchMetadataFromHttp2Headers(Metadata);
|
|
9
|
+
/**
|
|
10
|
+
* Huan(202108): wrap handle calls with authorization
|
|
11
|
+
*
|
|
12
|
+
* See:
|
|
13
|
+
* https://grpc.io/docs/guides/auth/#with-server-authentication-ssltls-and-a-custom-header-with-token
|
|
14
|
+
*/
|
|
15
|
+
const authWrapHandlerToken = (validToken) => (handler) => {
|
|
16
|
+
log.verbose('wechaty-puppet-service', 'auth/auth-impl-token.ts authWrapHandlerToken(%s)(%s)', validToken, handler.name);
|
|
17
|
+
return function (call, cb) {
|
|
18
|
+
// console.info('wrapAuthHandler internal')
|
|
19
|
+
const authorization = call.metadata.get('authorization')[0];
|
|
20
|
+
// console.info('authorization', authorization)
|
|
21
|
+
let errMsg = '';
|
|
22
|
+
if (typeof authorization === 'string') {
|
|
23
|
+
if (authorization.startsWith('Wechaty ')) {
|
|
24
|
+
const token = authorization.substring(8 /* 'Wechaty '.length */);
|
|
25
|
+
if (token === validToken) {
|
|
26
|
+
return handler(call, cb);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
errMsg = `Invalid Wechaty TOKEN "${token}"`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const type = authorization.split(/\s+/)[0];
|
|
34
|
+
errMsg = `Invalid authorization type: "${type}"`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
errMsg = 'No Authorization found.';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Not authorized
|
|
42
|
+
*/
|
|
43
|
+
const error = new StatusBuilder()
|
|
44
|
+
.withCode(GrpcStatus.UNAUTHENTICATED)
|
|
45
|
+
.withDetails(errMsg)
|
|
46
|
+
.withMetadata(call.metadata)
|
|
47
|
+
.build();
|
|
48
|
+
if (cb) {
|
|
49
|
+
/**
|
|
50
|
+
* Callback:
|
|
51
|
+
* handleUnaryCall
|
|
52
|
+
* handleClientStreamingCall
|
|
53
|
+
*/
|
|
54
|
+
cb(error);
|
|
55
|
+
}
|
|
56
|
+
else if ('emit' in call) {
|
|
57
|
+
/**
|
|
58
|
+
* Stream:
|
|
59
|
+
* handleServerStreamingCall
|
|
60
|
+
* handleBidiStreamingCall
|
|
61
|
+
*/
|
|
62
|
+
call.emit('error', error);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
throw new Error('no callback and call is not emit-able');
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const authImplToken = (validToken) => (serviceImpl) => {
|
|
70
|
+
log.verbose('wechaty-puppet-service', 'authImplToken()');
|
|
71
|
+
for (const [key, val] of Object.entries(serviceImpl)) {
|
|
72
|
+
// any: https://stackoverflow.com/q/59572522/1123955
|
|
73
|
+
serviceImpl[key] = authWrapHandlerToken(validToken)(val);
|
|
74
|
+
}
|
|
75
|
+
return serviceImpl;
|
|
76
|
+
};
|
|
77
|
+
export { authImplToken, };
|
|
78
|
+
//# sourceMappingURL=auth-impl-token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-impl-token.js","sourceRoot":"","sources":["../../../../src/auth/auth-impl-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EACL,aAAa,EAGb,QAAQ,EAER,UAAU,GAEX,MAAsC,cAAc,CAAA;AAErD,OAAO,EAAE,mCAAmC,EAAE,MAAO,uCAAuC,CAAA;AAE5F;;;GAGG;AACH,mCAAmC,CAAC,QAAQ,CAAC,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,OAA0B,EAAE,EAAE;IAClF,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAClC,sDAAsD,EACtD,UAAU,EACV,OAAO,CAAC,IAAI,CACb,CAAA;IAED,OAAO,UACL,IAA+B,EAC/B,EAAuB;QAEvB,2CAA2C;QAE3C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,+CAA+C;QAE/C,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACrC,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBACxC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAA;gBAChE,IAAI,KAAK,KAAK,UAAU,EAAE;oBAExB,OAAO,OAAO,CACZ,IAAW,EACX,EAAS,CACV,CAAA;iBAEF;qBAAM;oBACL,MAAM,GAAG,0BAA0B,KAAK,GAAG,CAAA;iBAC5C;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC1C,MAAM,GAAG,gCAAgC,IAAI,GAAG,CAAA;aACjD;SACF;aAAM;YACL,MAAM,GAAG,yBAAyB,CAAA;SACnC;QAED;;WAEG;QACH,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE;aAC9B,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC;aACpC,WAAW,CAAC,MAAM,CAAC;aACnB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC3B,KAAK,EAAE,CAAA;QAEV,IAAI,EAAE,EAAE;YACN;;;;gBAII;YACJ,EAAE,CAAC,KAAK,CAAC,CAAA;SACV;aAAM,IAAI,MAAM,IAAI,IAAI,EAAE;YACzB;;;;gBAII;YACJ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;SAC1B;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;SACzD;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAyC,UAAkB,EAAE,EAAE,CAAC,CACpF,WAAc,EACd,EAAE;IACF,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAA;IAExD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACpD,oDAAoD;QACnD,WAAmB,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;KAClE;IACD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,OAAO,EACL,aAAa,GACd,CAAA"}
|