retoolrpc 0.1.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/.prettierignore +2 -0
- package/.prettierrc +6 -0
- package/.yarn/cache/@babel-code-frame-npm-7.12.13-fb5ba5a992-d0491bb59f.zip +0 -0
- package/.yarn/cache/@babel-compat-data-npm-7.14.4-2d95ac42cf-38f6388bb5.zip +0 -0
- package/.yarn/cache/@babel-core-npm-7.14.3-9181aae4d9-b91ed6adc7.zip +0 -0
- package/.yarn/cache/@babel-generator-npm-7.14.3-3bb0a82750-2c104bbe53.zip +0 -0
- package/.yarn/cache/@babel-helper-compilation-targets-npm-7.14.4-cf321ee7be-0a6a3215d6.zip +0 -0
- package/.yarn/cache/@babel-helper-function-name-npm-7.14.2-52642340ac-70365d36ad.zip +0 -0
- package/.yarn/cache/@babel-helper-get-function-arity-npm-7.12.13-7d8bcf34b7-847ef9f4d4.zip +0 -0
- package/.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.13.12-0092ecd45c-76a5ad6ae6.zip +0 -0
- package/.yarn/cache/@babel-helper-module-imports-npm-7.13.12-6f45f76073-9abb5e3acb.zip +0 -0
- package/.yarn/cache/@babel-helper-module-transforms-npm-7.14.2-81e49440fe-cb6930cb45.zip +0 -0
- package/.yarn/cache/@babel-helper-optimise-call-expression-npm-7.12.13-52e64fc268-9925679d67.zip +0 -0
- package/.yarn/cache/@babel-helper-plugin-utils-npm-7.13.0-5266a343c1-24f7a44e94.zip +0 -0
- package/.yarn/cache/@babel-helper-replace-supers-npm-7.14.4-cc29bf55f9-017dc1af59.zip +0 -0
- package/.yarn/cache/@babel-helper-simple-access-npm-7.13.12-038331126e-afd0a8d1c7.zip +0 -0
- package/.yarn/cache/@babel-helper-split-export-declaration-npm-7.12.13-bb30c88575-adc8954a0b.zip +0 -0
- package/.yarn/cache/@babel-helper-string-parser-npm-7.19.4-0db110dc3a-b2f8a3920b.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.14.0-88c0d4b395-6276d57677.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-identifier-npm-7.19.1-d84f19e1dc-0eca5e86a7.zip +0 -0
- package/.yarn/cache/@babel-helper-validator-option-npm-7.12.17-098722d989-940e7b78dc.zip +0 -0
- package/.yarn/cache/@babel-helpers-npm-7.14.0-37cb1e5143-276716f77c.zip +0 -0
- package/.yarn/cache/@babel-highlight-npm-7.14.0-54986133d5-5aae226c0d.zip +0 -0
- package/.yarn/cache/@babel-parser-npm-7.14.4-c39adeee10-b96ba7f3e9.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-7ed1c1d9b9.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-3a10849d83.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.12.13-002ee9d930-24f34b196d.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-166ac1125d.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-bf5aea1f31.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-aff3357703.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-87aca49189.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-01ec5547bd.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-fddcf581a5.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-910d90e72b.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-eef94d53a1.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.12.13-6ac12f7c33-74cf8c8b87.zip +0 -0
- package/.yarn/cache/@babel-plugin-syntax-typescript-npm-7.12.13-17e8d888d4-3bd08315a8.zip +0 -0
- package/.yarn/cache/@babel-template-npm-7.12.13-069e9c8875-e037731631.zip +0 -0
- package/.yarn/cache/@babel-traverse-npm-7.14.2-5dffae5dce-054d5e4442.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.14.4-e879643fd2-52ae21c824.zip +0 -0
- package/.yarn/cache/@babel-types-npm-7.21.4-ee756f419d-587bc55a91.zip +0 -0
- package/.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-850f930553.zip +0 -0
- package/.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip +0 -0
- package/.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-d578da5e2e.zip +0 -0
- package/.yarn/cache/@istanbuljs-schema-npm-0.1.3-466bd3eaaa-5282759d96.zip +0 -0
- package/.yarn/cache/@jest-console-npm-27.0.2-3f0dc49490-71b812a49c.zip +0 -0
- package/.yarn/cache/@jest-core-npm-27.0.4-ffa396ed48-5b550925c0.zip +0 -0
- package/.yarn/cache/@jest-environment-npm-27.0.3-02985c658c-53914eb4b0.zip +0 -0
- package/.yarn/cache/@jest-fake-timers-npm-27.0.3-5d90fdb420-8994639f84.zip +0 -0
- package/.yarn/cache/@jest-globals-npm-27.0.3-cac79a361c-d1aa1e3b74.zip +0 -0
- package/.yarn/cache/@jest-reporters-npm-27.0.4-13f50d68df-2ffa36ae5a.zip +0 -0
- package/.yarn/cache/@jest-source-map-npm-27.0.1-b1fbee8f81-32a83be9c8.zip +0 -0
- package/.yarn/cache/@jest-test-result-npm-27.0.2-4add172036-2522808ff4.zip +0 -0
- package/.yarn/cache/@jest-test-sequencer-npm-27.0.4-438adff1f0-f1f1296158.zip +0 -0
- package/.yarn/cache/@jest-transform-npm-27.0.2-6839550ac0-a232fcaa16.zip +0 -0
- package/.yarn/cache/@jest-types-npm-27.0.2-11212898dc-22cbc02d5d.zip +0 -0
- package/.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip +0 -0
- package/.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip +0 -0
- package/.yarn/cache/@rollup-plugin-typescript-npm-8.2.0-33c0b5170f-d50240a9b3.zip +0 -0
- package/.yarn/cache/@rollup-pluginutils-npm-3.1.0-b44b222e7d-8be16e2786.zip +0 -0
- package/.yarn/cache/@sinonjs-commons-npm-1.8.3-30cf78d93f-6159726db5.zip +0 -0
- package/.yarn/cache/@sinonjs-fake-timers-npm-7.1.2-2a6b119ac7-c84773d797.zip +0 -0
- package/.yarn/cache/@tootallnate-once-npm-1.1.2-0517220057-e1fb1bbbc1.zip +0 -0
- package/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip +0 -0
- package/.yarn/cache/@tsconfig-node10-npm-1.0.7-06be8de131-54c3d90a93.zip +0 -0
- package/.yarn/cache/@tsconfig-node12-npm-1.0.7-3bbdd844d7-e58704bf51.zip +0 -0
- package/.yarn/cache/@tsconfig-node14-npm-1.0.0-cf320499dc-a6e564b91e.zip +0 -0
- package/.yarn/cache/@tsconfig-node16-npm-1.0.1-0fb4cd7d44-5fdfd91e48.zip +0 -0
- package/.yarn/cache/@types-babel__core-npm-7.1.14-a93ee22530-de4a1a4905.zip +0 -0
- package/.yarn/cache/@types-babel__generator-npm-7.6.2-13c77730f7-b7764309e5.zip +0 -0
- package/.yarn/cache/@types-babel__template-npm-7.4.0-e906ff43dc-5262dc75e6.zip +0 -0
- package/.yarn/cache/@types-babel__traverse-npm-7.11.1-b9c64a2aa7-7bcf7fd0c8.zip +0 -0
- package/.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip +0 -0
- package/.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip +0 -0
- package/.yarn/cache/@types-cors-npm-2.8.13-4b8ac1068f-7ef197ea19.zip +0 -0
- package/.yarn/cache/@types-estree-npm-0.0.39-f898500e96-412fb5b986.zip +0 -0
- package/.yarn/cache/@types-express-npm-4.17.17-46fe8173db-0196dacc27.zip +0 -0
- package/.yarn/cache/@types-express-serve-static-core-npm-4.17.33-0366bd5654-dce580d16b.zip +0 -0
- package/.yarn/cache/@types-graceful-fs-npm-4.1.5-91d62e1050-d076bb61f4.zip +0 -0
- package/.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-0650cba4be.zip +0 -0
- package/.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-656398b62d.zip +0 -0
- package/.yarn/cache/@types-istanbul-reports-npm-3.0.1-770e825002-f1ad54bc68.zip +0 -0
- package/.yarn/cache/@types-mime-npm-3.0.1-dec03536dc-4040fac73f.zip +0 -0
- package/.yarn/cache/@types-node-npm-15.12.1-149da5b459-a8eb7b5bbd.zip +0 -0
- package/.yarn/cache/@types-prettier-npm-2.2.3-6036e6d94a-78f1d731f9.zip +0 -0
- package/.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip +0 -0
- package/.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip +0 -0
- package/.yarn/cache/@types-serve-static-npm-1.15.1-27b3deb72c-2e078bdc1e.zip +0 -0
- package/.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-b3fbae25b0.zip +0 -0
- package/.yarn/cache/@types-yargs-npm-16.0.3-b6f52df1c2-0968b06d2f.zip +0 -0
- package/.yarn/cache/@types-yargs-parser-npm-20.2.0-4ca5b35c4e-54cf3f8d2c.zip +0 -0
- package/.yarn/cache/abab-npm-2.0.5-ae8d5b629e-0ec951b46d.zip +0 -0
- package/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip +0 -0
- package/.yarn/cache/accepts-npm-1.3.8-9a812371c9-50c43d32e7.zip +0 -0
- package/.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-72d95e5b5e.zip +0 -0
- package/.yarn/cache/acorn-npm-7.4.1-f450b4646c-1860f23c21.zip +0 -0
- package/.yarn/cache/acorn-npm-8.3.0-cf97a23822-9217542382.zip +0 -0
- package/.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-9252158a79.zip +0 -0
- package/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip +0 -0
- package/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip +0 -0
- package/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip +0 -0
- package/.yarn/cache/ansi-escapes-npm-4.3.2-3ad173702f-93111c4218.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-b1bb4e992a.zip +0 -0
- package/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip +0 -0
- package/.yarn/cache/ansi-styles-npm-5.2.0-72fc7003e3-d7f4e97ce0.zip +0 -0
- package/.yarn/cache/anymatch-npm-3.1.2-1d5471acfa-985163db22.zip +0 -0
- package/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip +0 -0
- package/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip +0 -0
- package/.yarn/cache/arg-npm-4.1.3-1748b966a8-544af8dd3f.zip +0 -0
- package/.yarn/cache/argparse-npm-1.0.10-528934e59d-7ca6e45583.zip +0 -0
- package/.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-a9925bf351.zip +0 -0
- package/.yarn/cache/asynckit-npm-0.4.0-c718858525-7b78c451df.zip +0 -0
- package/.yarn/cache/babel-jest-npm-27.0.2-760775130b-ff2bd3c6bf.zip +0 -0
- package/.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-bc586cf088.zip +0 -0
- package/.yarn/cache/babel-plugin-jest-hoist-npm-27.0.1-a04d3c5add-488905f748.zip +0 -0
- package/.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-d118c27424.zip +0 -0
- package/.yarn/cache/babel-preset-jest-npm-27.0.1-9446ad2444-141c11dce5.zip +0 -0
- package/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip +0 -0
- package/.yarn/cache/body-parser-npm-1.20.1-759fd14db9-f1050dbac3.zip +0 -0
- package/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip +0 -0
- package/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip +0 -0
- package/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip +0 -0
- package/.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-e30f868cdb.zip +0 -0
- package/.yarn/cache/browserslist-npm-4.16.6-a20cef1ca7-3dffc86892.zip +0 -0
- package/.yarn/cache/bs-logger-npm-0.2.6-7670f88b66-d34bdaf68c.zip +0 -0
- package/.yarn/cache/bser-npm-2.1.1-cc902055ce-9ba4dc58ce.zip +0 -0
- package/.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-ccc53b6973.zip +0 -0
- package/.yarn/cache/bytes-npm-3.1.2-28b8643004-e4bcd3948d.zip +0 -0
- package/.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip +0 -0
- package/.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip +0 -0
- package/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip +0 -0
- package/.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-e6effce26b.zip +0 -0
- package/.yarn/cache/camelcase-npm-6.2.0-69f8c130ac-8335cfd0ec.zip +0 -0
- package/.yarn/cache/caniuse-lite-npm-1.0.30001235-56c9d2c91e-4703293ada.zip +0 -0
- package/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip +0 -0
- package/.yarn/cache/chalk-npm-4.1.1-f1ce6bae57-036e973e66.zip +0 -0
- package/.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-b563e4b603.zip +0 -0
- package/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip +0 -0
- package/.yarn/cache/ci-info-npm-3.2.0-90f4cf0660-c68995a94e.zip +0 -0
- package/.yarn/cache/cjs-module-lexer-npm-1.2.1-11eb01eaf4-9e9905e3f5.zip +0 -0
- package/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip +0 -0
- package/.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-ce2e8f578a.zip +0 -0
- package/.yarn/cache/co-npm-4.6.0-03f2d1feb6-5210d92230.zip +0 -0
- package/.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-4efe0a1fcc.zip +0 -0
- package/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip +0 -0
- package/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip +0 -0
- package/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip +0 -0
- package/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip +0 -0
- package/.yarn/cache/colorette-npm-1.2.2-da75bd0b32-69fec14dda.zip +0 -0
- package/.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zip +0 -0
- package/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip +0 -0
- package/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip +0 -0
- package/.yarn/cache/content-disposition-npm-0.5.4-2d93678616-afb9d545e2.zip +0 -0
- package/.yarn/cache/content-type-npm-1.0.4-3b1a5ca16b-3d93585fda.zip +0 -0
- package/.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-bcd2e3ea7d.zip +0 -0
- package/.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip +0 -0
- package/.yarn/cache/cookie-signature-npm-1.0.6-93f325f7f0-f4e1b0a98a.zip +0 -0
- package/.yarn/cache/cors-npm-2.8.5-c9935a2d12-ced838404c.zip +0 -0
- package/.yarn/cache/create-require-npm-1.1.1-839884ca2e-a9a1503d43.zip +0 -0
- package/.yarn/cache/cross-env-npm-7.0.3-96d81820f4-26f2f3ea2a.zip +0 -0
- package/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip +0 -0
- package/.yarn/cache/cssom-npm-0.3.8-a9291d36ff-24beb3087c.zip +0 -0
- package/.yarn/cache/cssom-npm-0.4.4-818f01a6e3-e3bc1076e7.zip +0 -0
- package/.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-5f05e6fd2e.zip +0 -0
- package/.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip +0 -0
- package/.yarn/cache/debug-npm-2.6.9-7d4cb597dc-d2f51589ca.zip +0 -0
- package/.yarn/cache/debug-npm-4.3.1-22e08d605e-2c3352e37d.zip +0 -0
- package/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip +0 -0
- package/.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-d2421adf20.zip +0 -0
- package/.yarn/cache/dedent-npm-0.7.0-2dbb45a4c5-87de191050.zip +0 -0
- package/.yarn/cache/deep-is-npm-0.1.3-0941784645-c15b04c384.zip +0 -0
- package/.yarn/cache/deepmerge-npm-4.2.2-112165ced2-a8c43a1ed8.zip +0 -0
- package/.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zip +0 -0
- package/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip +0 -0
- package/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip +0 -0
- package/.yarn/cache/destroy-npm-1.2.0-6a511802e2-0acb300b74.zip +0 -0
- package/.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-ae6cd429c4.zip +0 -0
- package/.yarn/cache/diff-npm-4.0.2-73133c7102-f2c09b0ce4.zip +0 -0
- package/.yarn/cache/diff-sequences-npm-27.0.1-65556e2cb7-013d0f5461.zip +0 -0
- package/.yarn/cache/domexception-npm-2.0.1-81b20626ae-d638e9cb05.zip +0 -0
- package/.yarn/cache/ee-first-npm-1.1.1-33f8535b39-1b4cac778d.zip +0 -0
- package/.yarn/cache/electron-to-chromium-npm-1.3.749-321060d087-f15c327e86.zip +0 -0
- package/.yarn/cache/emittery-npm-0.8.1-9771f0f260-2457e8c7b0.zip +0 -0
- package/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip +0 -0
- package/.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-e50e3d508c.zip +0 -0
- package/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip +0 -0
- package/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip +0 -0
- package/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip +0 -0
- package/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip +0 -0
- package/.yarn/cache/escape-html-npm-1.0.3-376c22ee74-6213ca9ae0.zip +0 -0
- package/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip +0 -0
- package/.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-9f8a2d5743.zip +0 -0
- package/.yarn/cache/escodegen-npm-2.0.0-6450b02925-5aa6b2966f.zip +0 -0
- package/.yarn/cache/esprima-npm-4.0.1-1084e98778-b45bc805a6.zip +0 -0
- package/.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-ec11b70d94.zip +0 -0
- package/.yarn/cache/estree-walker-npm-1.0.1-e916593b23-7e70da5396.zip +0 -0
- package/.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip +0 -0
- package/.yarn/cache/etag-npm-1.8.1-54a3b989d9-571aeb3dbe.zip +0 -0
- package/.yarn/cache/execa-npm-5.1.1-191347acf5-fba9022c8c.zip +0 -0
- package/.yarn/cache/exit-npm-0.1.2-ef3761a67d-abc407f07a.zip +0 -0
- package/.yarn/cache/expect-npm-27.0.2-d2be5f87e0-50fa15906d.zip +0 -0
- package/.yarn/cache/express-npm-4.18.2-bb15ff679a-3c4b9b0768.zip +0 -0
- package/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip +0 -0
- package/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-92cfec0a8d.zip +0 -0
- package/.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-8510230778.zip +0 -0
- package/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip +0 -0
- package/.yarn/cache/finalhandler-npm-1.2.0-593d001463-92effbfd32.zip +0 -0
- package/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip +0 -0
- package/.yarn/cache/form-data-npm-3.0.1-d080d436e0-b019e8d35c.zip +0 -0
- package/.yarn/cache/forwarded-npm-0.2.0-6473dabe35-fd27e2394d.zip +0 -0
- package/.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-13ea8b08f9.zip +0 -0
- package/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip +0 -0
- package/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip +0 -0
- package/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip +0 -0
- package/.yarn/cache/fsevents-patch-3340e2eb10-8.zip +0 -0
- package/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip +0 -0
- package/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip +0 -0
- package/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-a7437e58c6.zip +0 -0
- package/.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-b9769a836d.zip +0 -0
- package/.yarn/cache/get-intrinsic-npm-1.2.0-eb08ea9b1d-78fc0487b7.zip +0 -0
- package/.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-bba0811116.zip +0 -0
- package/.yarn/cache/get-stream-npm-6.0.1-83e51a4642-e04ecece32.zip +0 -0
- package/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip +0 -0
- package/.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip +0 -0
- package/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip +0 -0
- package/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip +0 -0
- package/.yarn/cache/graceful-fs-npm-4.2.6-535b2234f1-792e64aafd.zip +0 -0
- package/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip +0 -0
- package/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip +0 -0
- package/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip +0 -0
- package/.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip +0 -0
- package/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip +0 -0
- package/.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-bf30cce461.zip +0 -0
- package/.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-d2df2da3ad.zip +0 -0
- package/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip +0 -0
- package/.yarn/cache/http-errors-npm-2.0.0-3f1c503428-9b0a378266.zip +0 -0
- package/.yarn/cache/http-proxy-agent-npm-4.0.1-ce9ef61788-c6a5da5a19.zip +0 -0
- package/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip +0 -0
- package/.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-165bfb090b.zip +0 -0
- package/.yarn/cache/human-signals-npm-2.1.0-f75815481d-b87fd89fce.zip +0 -0
- package/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip +0 -0
- package/.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-bd9f120f5a.zip +0 -0
- package/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip +0 -0
- package/.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-c74d9f9484.zip +0 -0
- package/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip +0 -0
- package/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip +0 -0
- package/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip +0 -0
- package/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip +0 -0
- package/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip +0 -0
- package/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip +0 -0
- package/.yarn/cache/ipaddr.js-npm-1.9.1-19ae7878b4-f88d382598.zip +0 -0
- package/.yarn/cache/is-ci-npm-3.0.0-8cc50ac1f6-4b45aef32d.zip +0 -0
- package/.yarn/cache/is-core-module-npm-2.2.0-497065e3b0-61e2aff4a7.zip +0 -0
- package/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip +0 -0
- package/.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-a6ad5492cf.zip +0 -0
- package/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip +0 -0
- package/.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip +0 -0
- package/.yarn/cache/is-potential-custom-element-name-npm-1.0.1-f352f606f8-ced7bbbb64.zip +0 -0
- package/.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-4dc47738e2.zip +0 -0
- package/.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-3508c6cd0a.zip +0 -0
- package/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip +0 -0
- package/.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-ea57c24288.zip +0 -0
- package/.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-fa1171d302.zip +0 -0
- package/.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-3f29eb3f53.zip +0 -0
- package/.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-292bfb4083.zip +0 -0
- package/.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-c5da63f1f4.zip +0 -0
- package/.yarn/cache/jest-changed-files-npm-27.0.2-d43bfae442-75f12ee648.zip +0 -0
- package/.yarn/cache/jest-circus-npm-27.0.4-c2a1fe4bb5-db445e01e9.zip +0 -0
- package/.yarn/cache/jest-cli-npm-27.0.4-1c40df1857-37099bf9fc.zip +0 -0
- package/.yarn/cache/jest-config-npm-27.0.4-a3cf5198bf-f71584a091.zip +0 -0
- package/.yarn/cache/jest-diff-npm-27.0.2-10b7ae1f33-0b423e480d.zip +0 -0
- package/.yarn/cache/jest-docblock-npm-27.0.1-20d82eae71-e1d3d85b03.zip +0 -0
- package/.yarn/cache/jest-each-npm-27.0.2-e44fb469a9-e6acc2f015.zip +0 -0
- package/.yarn/cache/jest-environment-jsdom-npm-27.0.3-cf9425c76e-964c020cf7.zip +0 -0
- package/.yarn/cache/jest-environment-node-npm-27.0.3-1f3bf742d9-8cb316ef03.zip +0 -0
- package/.yarn/cache/jest-get-type-npm-27.0.1-aa40b7f8ce-22c5e04700.zip +0 -0
- package/.yarn/cache/jest-haste-map-npm-27.0.2-d6810375d3-bdb251147a.zip +0 -0
- package/.yarn/cache/jest-jasmine2-npm-27.0.4-2ee7daa2ae-a1c1b1380d.zip +0 -0
- package/.yarn/cache/jest-leak-detector-npm-27.0.2-d26b012860-22a9bd22b5.zip +0 -0
- package/.yarn/cache/jest-matcher-utils-npm-27.0.2-e0586ec40a-7c12409e42.zip +0 -0
- package/.yarn/cache/jest-message-util-npm-27.0.2-b37b426cca-b3c3733ec5.zip +0 -0
- package/.yarn/cache/jest-mock-npm-27.0.3-e7f02fb624-d783d3b3f6.zip +0 -0
- package/.yarn/cache/jest-npm-27.0.4-f6f5ed6be6-2d7800777d.zip +0 -0
- package/.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-bd85dcc0e7.zip +0 -0
- package/.yarn/cache/jest-regex-util-npm-27.0.1-d1632ee0e1-b9a73d4dc0.zip +0 -0
- package/.yarn/cache/jest-resolve-dependencies-npm-27.0.4-aa41296e81-974025f2ce.zip +0 -0
- package/.yarn/cache/jest-resolve-npm-27.0.4-1909eb3211-9d6698a824.zip +0 -0
- package/.yarn/cache/jest-runner-npm-27.0.4-2961cd612d-118084ce36.zip +0 -0
- package/.yarn/cache/jest-runtime-npm-27.0.4-614e4abe4f-d56ceea4a2.zip +0 -0
- package/.yarn/cache/jest-serializer-npm-27.0.1-aa547af7bf-de16a8e3a3.zip +0 -0
- package/.yarn/cache/jest-snapshot-npm-27.0.4-41adfef6e7-1a51fb78ac.zip +0 -0
- package/.yarn/cache/jest-util-npm-27.0.2-543ecb60f0-8751d6d97f.zip +0 -0
- package/.yarn/cache/jest-validate-npm-27.0.2-11208a2a7c-1ae6d0bc16.zip +0 -0
- package/.yarn/cache/jest-watcher-npm-27.0.2-55e546b64d-4d3ee72f74.zip +0 -0
- package/.yarn/cache/jest-worker-npm-27.0.2-256c4c36d7-ea1b72afc9.zip +0 -0
- package/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip +0 -0
- package/.yarn/cache/js-yaml-npm-3.14.1-b968c6095e-bef146085f.zip +0 -0
- package/.yarn/cache/jsdom-npm-16.6.0-f5f949a44e-4abf126bba.zip +0 -0
- package/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip +0 -0
- package/.yarn/cache/json5-npm-2.2.0-da49dc7cb5-e88fc5274b.zip +0 -0
- package/.yarn/cache/kleur-npm-3.0.3-f6f53649a4-df82cd1e17.zip +0 -0
- package/.yarn/cache/leven-npm-3.1.0-b7697736a3-638401d534.zip +0 -0
- package/.yarn/cache/levn-npm-0.3.0-48d774b1c2-0d084a5242.zip +0 -0
- package/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip +0 -0
- package/.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip +0 -0
- package/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip +0 -0
- package/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip +0 -0
- package/.yarn/cache/make-dir-npm-3.1.0-d1d7505142-484200020a.zip +0 -0
- package/.yarn/cache/make-error-npm-1.3.6-ccb85d9458-b86e5e0e25.zip +0 -0
- package/.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip +0 -0
- package/.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-9a62ec2d96.zip +0 -0
- package/.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-af1b38516c.zip +0 -0
- package/.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-5abc259d2a.zip +0 -0
- package/.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip +0 -0
- package/.yarn/cache/methods-npm-1.1.2-92f6fdb39b-0917ff4041.zip +0 -0
- package/.yarn/cache/micromatch-npm-4.0.4-9fdcbb7a0e-ef3d1c88e7.zip +0 -0
- package/.yarn/cache/mime-db-npm-1.48.0-d896dd3151-d778392e47.zip +0 -0
- package/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip +0 -0
- package/.yarn/cache/mime-npm-1.6.0-60ae95038a-fef25e3926.zip +0 -0
- package/.yarn/cache/mime-types-npm-2.1.31-fbe9a57bbf-eb1612aa96.zip +0 -0
- package/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip +0 -0
- package/.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-d2421a3444.zip +0 -0
- package/.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-66ac295f8a.zip +0 -0
- package/.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip +0 -0
- package/.yarn/cache/minimist-npm-1.2.5-ced0e1f617-86706ce5b3.zip +0 -0
- package/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip +0 -0
- package/.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip +0 -0
- package/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip +0 -0
- package/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip +0 -0
- package/.yarn/cache/minipass-npm-4.2.5-25860eb433-4f9c19af23.zip +0 -0
- package/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip +0 -0
- package/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip +0 -0
- package/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip +0 -0
- package/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip +0 -0
- package/.yarn/cache/ms-npm-2.0.0-9e1101a471-0e6a22b8b7.zip +0 -0
- package/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip +0 -0
- package/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip +0 -0
- package/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip +0 -0
- package/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip +0 -0
- package/.yarn/cache/node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip +0 -0
- package/.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-d0b30b1ee6.zip +0 -0
- package/.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-9954190353.zip +0 -0
- package/.yarn/cache/node-releases-npm-1.1.72-662e905d8e-84dacd44e6.zip +0 -0
- package/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip +0 -0
- package/.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip +0 -0
- package/.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-5374c0cea4.zip +0 -0
- package/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip +0 -0
- package/.yarn/cache/nwsapi-npm-2.2.0-8f05590043-5ef4a9bc0c.zip +0 -0
- package/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip +0 -0
- package/.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip +0 -0
- package/.yarn/cache/on-finished-npm-2.4.1-907af70f88-d20929a25e.zip +0 -0
- package/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip +0 -0
- package/.yarn/cache/onetime-npm-5.1.2-3ed148fa42-2478859ef8.zip +0 -0
- package/.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-b8695ddf3d.zip +0 -0
- package/.yarn/cache/p-each-series-npm-2.2.0-b9907a1ae6-5fbe2f1f19.zip +0 -0
- package/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip +0 -0
- package/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip +0 -0
- package/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip +0 -0
- package/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip +0 -0
- package/.yarn/cache/parse5-npm-6.0.1-70a35a494a-7d569a176c.zip +0 -0
- package/.yarn/cache/parseurl-npm-1.3.3-1542397e00-407cee8e0a.zip +0 -0
- package/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip +0 -0
- package/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip +0 -0
- package/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip +0 -0
- package/.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-962a85dd38.zip +0 -0
- package/.yarn/cache/path-to-regexp-npm-0.1.7-2605347373-69a14ea24d.zip +0 -0
- package/.yarn/cache/picomatch-npm-2.3.0-5e60e6c82d-16818720ea.zip +0 -0
- package/.yarn/cache/pirates-npm-4.0.1-377058e8fc-091e232aac.zip +0 -0
- package/.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip +0 -0
- package/.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-c4867c8748.zip +0 -0
- package/.yarn/cache/prettier-npm-2.3.1-f8593fac45-3b37731ff7.zip +0 -0
- package/.yarn/cache/pretty-format-npm-27.0.2-d193adf249-26a454f1da.zip +0 -0
- package/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip +0 -0
- package/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip +0 -0
- package/.yarn/cache/prompts-npm-2.4.1-dd3df3be17-05bf486587.zip +0 -0
- package/.yarn/cache/proxy-addr-npm-2.0.7-dae6552872-29c6990ce9.zip +0 -0
- package/.yarn/cache/psl-npm-1.8.0-226099d70e-6150048ed2.zip +0 -0
- package/.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-823bf443c6.zip +0 -0
- package/.yarn/cache/qs-npm-6.11.0-caf1bc9dea-6e1f29dd53.zip +0 -0
- package/.yarn/cache/range-parser-npm-1.2.1-1a470fa390-0a268d4fea.zip +0 -0
- package/.yarn/cache/raw-body-npm-2.5.1-9dd1d9fff9-5362adff15.zip +0 -0
- package/.yarn/cache/react-is-npm-17.0.2-091bbb8db6-9d6d111d89.zip +0 -0
- package/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip +0 -0
- package/.yarn/cache/require-directory-npm-2.1.1-8608aee50b-fb47e70bf0.zip +0 -0
- package/.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip +0 -0
- package/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-4ceeb9113e.zip +0 -0
- package/.yarn/cache/resolve-npm-1.20.0-1bc5878aa9-40cf70b2cd.zip +0 -0
- package/.yarn/cache/resolve-patch-b4a69197d3-a0dd7d16a8.zip +0 -0
- package/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip +0 -0
- package/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip +0 -0
- package/.yarn/cache/rollup-npm-2.39.0-d94e133c08-62f136bffc.zip +0 -0
- package/.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-f2f1f7943c.zip +0 -0
- package/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip +0 -0
- package/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip +0 -0
- package/.yarn/cache/saxes-npm-5.0.1-57abf031ae-5636b55cf1.zip +0 -0
- package/.yarn/cache/semver-npm-6.3.0-b3eace8bfd-1b26ecf6db.zip +0 -0
- package/.yarn/cache/semver-npm-7.3.5-618cf5db6a-5eafe6102b.zip +0 -0
- package/.yarn/cache/semver-npm-7.3.8-25a996cb4f-ba9c7cbbf2.zip +0 -0
- package/.yarn/cache/send-npm-0.18.0-faadf6353f-74fc07ebb5.zip +0 -0
- package/.yarn/cache/serve-static-npm-1.15.0-86c81879f5-af57fc13be.zip +0 -0
- package/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip +0 -0
- package/.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-be18cbbf70.zip +0 -0
- package/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip +0 -0
- package/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip +0 -0
- package/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip +0 -0
- package/.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f0169d3f12.zip +0 -0
- package/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip +0 -0
- package/.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-aba6438f46.zip +0 -0
- package/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip +0 -0
- package/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip +0 -0
- package/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip +0 -0
- package/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip +0 -0
- package/.yarn/cache/source-map-npm-0.5.7-7c3f035429-5dc2043b93.zip +0 -0
- package/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip +0 -0
- package/.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-cd24efb3b8.zip +0 -0
- package/.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-c72802fdba.zip +0 -0
- package/.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-19d79aec21.zip +0 -0
- package/.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip +0 -0
- package/.yarn/cache/stack-utils-npm-2.0.3-e255395afd-c86ac08f58.zip +0 -0
- package/.yarn/cache/statuses-npm-2.0.1-81d2b97fee-18c7623fdb.zip +0 -0
- package/.yarn/cache/string-length-npm-4.0.2-675173c7a2-ce85533ef5.zip +0 -0
- package/.yarn/cache/string-width-npm-4.2.2-aa12d6b759-343e089b0e.zip +0 -0
- package/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip +0 -0
- package/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-04c3239ede.zip +0 -0
- package/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip +0 -0
- package/.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-9dbcfbaf50.zip +0 -0
- package/.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-69412b5e25.zip +0 -0
- package/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip +0 -0
- package/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip +0 -0
- package/.yarn/cache/supports-color-npm-8.1.1-289e937149-c052193a7e.zip +0 -0
- package/.yarn/cache/supports-hyperlinks-npm-2.2.0-9b22a6271b-aef04fb41f.zip +0 -0
- package/.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-6e8fc7e148.zip +0 -0
- package/.yarn/cache/tar-npm-6.1.13-3234e72781-8a278bed12.zip +0 -0
- package/.yarn/cache/terminal-link-npm-2.1.1-de80341758-ce3d2cd3a4.zip +0 -0
- package/.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-3b34a3d771.zip +0 -0
- package/.yarn/cache/throat-npm-6.0.1-1308a37a10-782d4171ee.zip +0 -0
- package/.yarn/cache/tmpl-npm-1.0.4-35b37c2875-72c9333504.zip +0 -0
- package/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip +0 -0
- package/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip +0 -0
- package/.yarn/cache/toidentifier-npm-1.0.1-f759712599-952c29e2a8.zip +0 -0
- package/.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-0891b37eb7.zip +0 -0
- package/.yarn/cache/tr46-npm-2.1.0-00af583f4f-ffe6049b9d.zip +0 -0
- package/.yarn/cache/ts-jest-npm-27.0.2-a85e2f76a4-dbc3fb1e61.zip +0 -0
- package/.yarn/cache/ts-node-npm-10.0.0-9c3d77d0a0-96d633774e.zip +0 -0
- package/.yarn/cache/tslib-npm-2.1.0-81c9ac9b82-aa189c8179.zip +0 -0
- package/.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-dd3b149564.zip +0 -0
- package/.yarn/cache/type-detect-npm-4.0.8-8d8127b901-62b5628bff.zip +0 -0
- package/.yarn/cache/type-fest-npm-0.21.3-5ff2a9c6fd-e6b32a3b38.zip +0 -0
- package/.yarn/cache/type-is-npm-1.6.18-6dee4d4961-2c8e47675d.zip +0 -0
- package/.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-99c11aaa8f.zip +0 -0
- package/.yarn/cache/typescript-npm-5.0.3-84e500d967-3cce0576d2.zip +0 -0
- package/.yarn/cache/typescript-patch-f563c275ac-9ec0a8eed3.zip +0 -0
- package/.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip +0 -0
- package/.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip +0 -0
- package/.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-40cdc60f6e.zip +0 -0
- package/.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-4fa18d8d8d.zip +0 -0
- package/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip +0 -0
- package/.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-c810954932.zip +0 -0
- package/.yarn/cache/v8-to-istanbul-npm-7.1.2-f29c35e9aa-e52b48764f.zip +0 -0
- package/.yarn/cache/vary-npm-1.1.2-b49f70ae63-ae0123222c.zip +0 -0
- package/.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-ec3c2dacbf.zip +0 -0
- package/.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-ae25c51cf7.zip +0 -0
- package/.yarn/cache/walker-npm-1.0.7-a97443bd99-4038fcf92f.zip +0 -0
- package/.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-ccf1ec2ca7.zip +0 -0
- package/.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-1f526507aa.zip +0 -0
- package/.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-5be4efe111.zip +0 -0
- package/.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-23eb885940.zip +0 -0
- package/.yarn/cache/whatwg-url-npm-8.5.0-10be05312c-3bda9bfd98.zip +0 -0
- package/.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip +0 -0
- package/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip +0 -0
- package/.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-30b48f91fc.zip +0 -0
- package/.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-a790b846fd.zip +0 -0
- package/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip +0 -0
- package/.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-c55b24617c.zip +0 -0
- package/.yarn/cache/ws-npm-7.4.6-9c9a725604-3a990b32ed.zip +0 -0
- package/.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-b3ac459afe.zip +0 -0
- package/.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-8c70ac9407.zip +0 -0
- package/.yarn/cache/y18n-npm-5.0.8-5f3a0a7e62-54f0fb9562.zip +0 -0
- package/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip +0 -0
- package/.yarn/cache/yargs-npm-16.2.0-547873d425-b14afbb51e.zip +0 -0
- package/.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-ec0ea9e1b5.zip +0 -0
- package/.yarn/cache/yn-npm-3.1.1-8ad4259784-2c487b0e14.zip +0 -0
- package/.yarn/install-state.gz +0 -0
- package/LICENSE +21 -0
- package/README.md +31 -0
- package/dist/cjs/example.js +124 -0
- package/dist/cjs/index.js +134 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/rpc-044798c3.js +526 -0
- package/dist/cjs/rpc-0efa90dd.js +526 -0
- package/dist/cjs/rpc-25d007b6.js +537 -0
- package/dist/cjs/rpc-2ed27fc8.js +538 -0
- package/dist/cjs/rpc-39814774.js +537 -0
- package/dist/cjs/rpc-43646121.js +539 -0
- package/dist/cjs/rpc-5117881b.js +526 -0
- package/dist/cjs/rpc-5504b82e.js +514 -0
- package/dist/cjs/rpc-5628288a.js +538 -0
- package/dist/cjs/rpc-5bfe852e.js +528 -0
- package/dist/cjs/rpc-5d397af6.js +528 -0
- package/dist/cjs/rpc-ce896005.js +517 -0
- package/dist/cjs/sdk-46322c77.js +535 -0
- package/dist/cjs/sdk-a6de67bc.js +515 -0
- package/dist/cjs/sdk-c55b3e15.js +515 -0
- package/dist/cjs/sdk.js +468 -0
- package/dist/example.d.ts +1 -0
- package/dist/example.js +118 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +129 -0
- package/dist/package.json +57 -0
- package/dist/rpc-5467a71f.js +519 -0
- package/dist/rpc-6ad4d5ed.js +521 -0
- package/dist/rpc-6d9f35c6.js +510 -0
- package/dist/rpc-9139c966.js +531 -0
- package/dist/rpc-99282f71.js +519 -0
- package/dist/rpc-a007c277.js +521 -0
- package/dist/rpc-a877a316.js +529 -0
- package/dist/rpc-b3bf4c41.js +529 -0
- package/dist/rpc-d24089bc.js +532 -0
- package/dist/rpc-ddc52117.js +508 -0
- package/dist/rpc-e138a275.js +519 -0
- package/dist/rpc-fb0623fd.js +531 -0
- package/dist/scripts/bumpVersion.d.ts +1 -0
- package/dist/sdk-939066ea.js +509 -0
- package/dist/sdk-9804f7c5.js +509 -0
- package/dist/sdk-db908f37.js +510 -0
- package/dist/sdk.js +440 -0
- package/dist/src/addons/sequelize.d.ts +13 -0
- package/dist/src/example.d.ts +1 -0
- package/dist/src/rpc.d.ts +56 -0
- package/dist/src/rpc.spec.d.ts +1 -0
- package/dist/src/sdk.d.ts +57 -0
- package/dist/src/sdk.spec.d.ts +1 -0
- package/dist/src/types.d.ts +93 -0
- package/dist/src/utils/api.d.ts +43 -0
- package/dist/src/utils/errors.d.ts +8 -0
- package/dist/src/utils/helpers.d.ts +6 -0
- package/dist/src/utils/logger.d.ts +15 -0
- package/dist/src/utils/polling.d.ts +3 -0
- package/dist/src/utils/schema.d.ts +2 -0
- package/dist/src/version.d.ts +1 -0
- package/example.ts +134 -0
- package/index.ts +3 -0
- package/package.json +57 -0
- package/rollup.config.js +34 -0
- package/scripts/bumpVersion.ts +22 -0
- package/src/addons/README.md +5 -0
- package/src/addons/sequelize.ts +152 -0
- package/src/rpc.spec.ts +752 -0
- package/src/rpc.ts +262 -0
- package/src/types.ts +114 -0
- package/src/utils/api.ts +105 -0
- package/src/utils/errors.ts +53 -0
- package/src/utils/helpers.ts +41 -0
- package/src/utils/logger.ts +49 -0
- package/src/utils/polling.ts +43 -0
- package/src/utils/schema.ts +166 -0
- package/src/version.ts +1 -0
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +23 -0
package/src/rpc.spec.ts
ADDED
|
@@ -0,0 +1,752 @@
|
|
|
1
|
+
import fs from 'fs-extra'
|
|
2
|
+
import nock from 'nock'
|
|
3
|
+
import crypto from 'crypto'
|
|
4
|
+
import { dedent } from 'ts-dedent'
|
|
5
|
+
import { describe, expect, beforeEach, afterEach, test, vi } from 'vitest'
|
|
6
|
+
import { v4 as uuidv4 } from 'uuid'
|
|
7
|
+
|
|
8
|
+
import { RetoolRPC } from './rpc'
|
|
9
|
+
import { Arguments } from './types'
|
|
10
|
+
import { parseFunctionArguments } from './utils/schema'
|
|
11
|
+
import { RetoolRPCVersion } from './version'
|
|
12
|
+
|
|
13
|
+
// Expose the protected methods for testing
|
|
14
|
+
class TestRetoolRPC extends RetoolRPC {
|
|
15
|
+
public testRegisterAgent() {
|
|
16
|
+
return this.protectedRegisterAgent()
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public testFetchQueryAndExecute() {
|
|
20
|
+
return this.protectedFetchQueryAndExecute()
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
describe('RetoolRPC', () => {
|
|
25
|
+
const CURRENT_DATE = new Date(2012, 12, 21)
|
|
26
|
+
const resourceId = uuidv4()
|
|
27
|
+
const queryUuid = uuidv4()
|
|
28
|
+
const agentUuid = uuidv4()
|
|
29
|
+
const versionHash = crypto.createHash('md5').update('test-version-hash').digest('hex')
|
|
30
|
+
const environmentName = 'local'
|
|
31
|
+
const host = 'http://localhost:3001'
|
|
32
|
+
const context = {
|
|
33
|
+
userName: 'Dame Lillard',
|
|
34
|
+
userEmail: 'dame@nba.com',
|
|
35
|
+
userGroups: ['All Stars', 'Blazers', 'Bucks'],
|
|
36
|
+
organizationName: 'National Basketball Association',
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
beforeEach(() => {
|
|
40
|
+
vi.useFakeTimers()
|
|
41
|
+
vi.setSystemTime(CURRENT_DATE)
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
afterEach(() => {
|
|
45
|
+
nock.cleanAll()
|
|
46
|
+
vi.useRealTimers()
|
|
47
|
+
vi.resetAllMocks()
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const rpcAgent = new TestRetoolRPC({
|
|
51
|
+
apiToken: 'secret-api-token',
|
|
52
|
+
host,
|
|
53
|
+
resourceId,
|
|
54
|
+
environmentName,
|
|
55
|
+
agentUuid,
|
|
56
|
+
pollingIntervalMs: 1000,
|
|
57
|
+
version: '0.0.1',
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
rpcAgent.register({
|
|
61
|
+
name: 'plusTwoNumbers',
|
|
62
|
+
arguments: {
|
|
63
|
+
number1: {
|
|
64
|
+
type: 'number',
|
|
65
|
+
description: 'first number',
|
|
66
|
+
required: true,
|
|
67
|
+
},
|
|
68
|
+
number2: {
|
|
69
|
+
type: 'number',
|
|
70
|
+
description: 'second number',
|
|
71
|
+
required: true,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
implementation: async (functionArguments) => {
|
|
75
|
+
return functionArguments.number1 + functionArguments.number2
|
|
76
|
+
},
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
rpcAgent.register({
|
|
80
|
+
name: 'asyncGetCurrentDate',
|
|
81
|
+
arguments: {},
|
|
82
|
+
implementation: async () => {
|
|
83
|
+
vi.useRealTimers()
|
|
84
|
+
await new Promise((resolve) => setTimeout(resolve, 0))
|
|
85
|
+
vi.useFakeTimers()
|
|
86
|
+
return CURRENT_DATE
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
rpcAgent.register({
|
|
91
|
+
name: 'throwsError',
|
|
92
|
+
arguments: {},
|
|
93
|
+
implementation: async () => {
|
|
94
|
+
throw 'This is the error message.'
|
|
95
|
+
},
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
describe('fetchQueryAndExecute', () => {
|
|
99
|
+
const popQueryRequestBody = {
|
|
100
|
+
resourceId,
|
|
101
|
+
environmentName,
|
|
102
|
+
agentUuid,
|
|
103
|
+
versionHash,
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
beforeEach(async () => {
|
|
107
|
+
nock(host).post('/api/v1/retoolrpc/registerAgent').reply(200, { versionHash })
|
|
108
|
+
|
|
109
|
+
await rpcAgent.testRegisterAgent()
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
test('should "continue" if popQuery has no query', async () => {
|
|
113
|
+
const nockScope = nock(host)
|
|
114
|
+
.post('/api/v1/retoolrpc/popQuery', JSON.stringify(popQueryRequestBody))
|
|
115
|
+
.reply(200, { query: null })
|
|
116
|
+
|
|
117
|
+
const result = await rpcAgent.testFetchQueryAndExecute()
|
|
118
|
+
|
|
119
|
+
expect(nockScope.isDone()).toBe(true)
|
|
120
|
+
expect(result).toEqual('continue')
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
test('should "continue" after returning a successful result that adds 2 numbers', async () => {
|
|
124
|
+
const popQueryResponse = {
|
|
125
|
+
query: {
|
|
126
|
+
queryUuid,
|
|
127
|
+
queryInfo: {
|
|
128
|
+
resourceId,
|
|
129
|
+
environmentName,
|
|
130
|
+
context: {
|
|
131
|
+
userEmail: 'admin@seed.retool.com',
|
|
132
|
+
organizationName: 'seed.retool.com',
|
|
133
|
+
},
|
|
134
|
+
method: 'plusTwoNumbers',
|
|
135
|
+
parameters: {
|
|
136
|
+
number1: 1,
|
|
137
|
+
number2: 2,
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
}
|
|
142
|
+
const nockScope1 = nock(host)
|
|
143
|
+
.post('/api/v1/retoolrpc/popQuery', JSON.stringify(popQueryRequestBody))
|
|
144
|
+
.reply(200, popQueryResponse)
|
|
145
|
+
|
|
146
|
+
const nockScope2 = nock(host)
|
|
147
|
+
.post(
|
|
148
|
+
'/api/v1/retoolrpc/postQueryResponse',
|
|
149
|
+
JSON.stringify({
|
|
150
|
+
resourceId,
|
|
151
|
+
environmentName,
|
|
152
|
+
versionHash,
|
|
153
|
+
agentUuid,
|
|
154
|
+
queryUuid,
|
|
155
|
+
status: 'success',
|
|
156
|
+
data: 3,
|
|
157
|
+
metadata: {
|
|
158
|
+
packageLanguage: 'javascript',
|
|
159
|
+
packageVersion: RetoolRPCVersion,
|
|
160
|
+
agentReceivedQueryAt: CURRENT_DATE.toISOString(),
|
|
161
|
+
agentFinishedQueryAt: CURRENT_DATE.toISOString(),
|
|
162
|
+
parameters: {
|
|
163
|
+
number1: 1,
|
|
164
|
+
number2: 2,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
}),
|
|
168
|
+
)
|
|
169
|
+
.reply(200, { success: true })
|
|
170
|
+
|
|
171
|
+
const result = await rpcAgent.testFetchQueryAndExecute()
|
|
172
|
+
|
|
173
|
+
expect(nockScope1.isDone()).toBe(true)
|
|
174
|
+
expect(nockScope2.isDone()).toBe(true)
|
|
175
|
+
expect(result).toEqual('continue')
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
test('should "continue" after returning an error result from an exception', async () => {
|
|
179
|
+
const popQueryResponse = {
|
|
180
|
+
query: {
|
|
181
|
+
queryUuid,
|
|
182
|
+
queryInfo: {
|
|
183
|
+
resourceId,
|
|
184
|
+
environmentName,
|
|
185
|
+
context: {
|
|
186
|
+
userEmail: 'admin@seed.retool.com',
|
|
187
|
+
organizationName: 'seed.retool.com',
|
|
188
|
+
},
|
|
189
|
+
method: 'throwsError',
|
|
190
|
+
parameters: {},
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
}
|
|
194
|
+
const nockScope1 = nock(host)
|
|
195
|
+
.post('/api/v1/retoolrpc/popQuery', JSON.stringify(popQueryRequestBody))
|
|
196
|
+
.reply(200, popQueryResponse)
|
|
197
|
+
|
|
198
|
+
const nockScope2 = nock(host)
|
|
199
|
+
.post(
|
|
200
|
+
'/api/v1/retoolrpc/postQueryResponse',
|
|
201
|
+
JSON.stringify({
|
|
202
|
+
resourceId,
|
|
203
|
+
environmentName,
|
|
204
|
+
versionHash,
|
|
205
|
+
agentUuid,
|
|
206
|
+
queryUuid,
|
|
207
|
+
status: 'error',
|
|
208
|
+
metadata: {
|
|
209
|
+
packageLanguage: 'javascript',
|
|
210
|
+
packageVersion: RetoolRPCVersion,
|
|
211
|
+
agentReceivedQueryAt: CURRENT_DATE.toISOString(),
|
|
212
|
+
agentFinishedQueryAt: CURRENT_DATE.toISOString(),
|
|
213
|
+
parameters: undefined, // error thrown, no parameters
|
|
214
|
+
},
|
|
215
|
+
error: {
|
|
216
|
+
name: 'AgentServerError',
|
|
217
|
+
message: 'This is the error message.',
|
|
218
|
+
},
|
|
219
|
+
}),
|
|
220
|
+
)
|
|
221
|
+
.reply(200, { success: true })
|
|
222
|
+
|
|
223
|
+
const result = await rpcAgent.testFetchQueryAndExecute()
|
|
224
|
+
|
|
225
|
+
expect(nockScope1.isDone()).toBe(true)
|
|
226
|
+
expect(nockScope2.isDone()).toBe(true)
|
|
227
|
+
expect(result).toEqual('continue')
|
|
228
|
+
})
|
|
229
|
+
})
|
|
230
|
+
|
|
231
|
+
describe('executeFunction', () => {
|
|
232
|
+
test('should return a successful result that adds 2 numbers', async () => {
|
|
233
|
+
const { result } = await rpcAgent.executeFunction(
|
|
234
|
+
'plusTwoNumbers',
|
|
235
|
+
{
|
|
236
|
+
number1: 1,
|
|
237
|
+
number2: 2,
|
|
238
|
+
},
|
|
239
|
+
context,
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
expect(result).toEqual(3)
|
|
243
|
+
})
|
|
244
|
+
|
|
245
|
+
test('should run async function', async () => {
|
|
246
|
+
const { result } = await rpcAgent.executeFunction('asyncGetCurrentDate', {}, context)
|
|
247
|
+
|
|
248
|
+
expect(result).toEqual(CURRENT_DATE)
|
|
249
|
+
})
|
|
250
|
+
|
|
251
|
+
test('should throw a FunctionNotFoundError if the function doesnt exist', async () => {
|
|
252
|
+
await expect(
|
|
253
|
+
rpcAgent.executeFunction(
|
|
254
|
+
'doesNotExist',
|
|
255
|
+
{
|
|
256
|
+
number1: 1,
|
|
257
|
+
number2: 2,
|
|
258
|
+
},
|
|
259
|
+
context,
|
|
260
|
+
),
|
|
261
|
+
).rejects.toThrowError('Function "doesNotExist" not found on remote agent server.')
|
|
262
|
+
})
|
|
263
|
+
|
|
264
|
+
test('should throw a InvalidArgumentsError if required fields or typings are incorrect', async () => {
|
|
265
|
+
await expect(
|
|
266
|
+
rpcAgent.executeFunction(
|
|
267
|
+
'plusTwoNumbers',
|
|
268
|
+
{
|
|
269
|
+
number1: 'one',
|
|
270
|
+
number3: 3,
|
|
271
|
+
},
|
|
272
|
+
context,
|
|
273
|
+
),
|
|
274
|
+
).rejects.toThrowError(
|
|
275
|
+
dedent`
|
|
276
|
+
Invalid parameter(s) found:
|
|
277
|
+
Argument "number1" should be of type "number".
|
|
278
|
+
Argument "number2" is required but missing.
|
|
279
|
+
`,
|
|
280
|
+
)
|
|
281
|
+
})
|
|
282
|
+
})
|
|
283
|
+
|
|
284
|
+
describe('parseFunctionArguments', () => {
|
|
285
|
+
test('should return empty functionArguments if no functionArguments are passed in', () => {
|
|
286
|
+
const functionArguments = {}
|
|
287
|
+
const spec: Arguments = {}
|
|
288
|
+
|
|
289
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual({})
|
|
290
|
+
})
|
|
291
|
+
|
|
292
|
+
test('should handle primitives', () => {
|
|
293
|
+
const functionArguments = {
|
|
294
|
+
booleanArg: true,
|
|
295
|
+
numberArg: 1,
|
|
296
|
+
stringArg: 'hello',
|
|
297
|
+
dictArg: { foo: { bar: 'baz' } },
|
|
298
|
+
jsonArg: { a: 1 },
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
const spec: Arguments = {
|
|
302
|
+
booleanArg: {
|
|
303
|
+
type: 'boolean',
|
|
304
|
+
description: 'A boolean arg',
|
|
305
|
+
required: true,
|
|
306
|
+
},
|
|
307
|
+
numberArg: {
|
|
308
|
+
type: 'number',
|
|
309
|
+
description: 'A number arg',
|
|
310
|
+
required: true,
|
|
311
|
+
},
|
|
312
|
+
stringArg: {
|
|
313
|
+
type: 'string',
|
|
314
|
+
description: 'A string arg',
|
|
315
|
+
required: true,
|
|
316
|
+
},
|
|
317
|
+
dictArg: {
|
|
318
|
+
type: 'dict',
|
|
319
|
+
description: 'A dict arg',
|
|
320
|
+
required: true,
|
|
321
|
+
},
|
|
322
|
+
jsonArg: {
|
|
323
|
+
type: 'json',
|
|
324
|
+
description: 'A json arg',
|
|
325
|
+
required: true,
|
|
326
|
+
},
|
|
327
|
+
optionalArg: {
|
|
328
|
+
type: 'string',
|
|
329
|
+
description: 'An optional arg',
|
|
330
|
+
required: false,
|
|
331
|
+
},
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual(functionArguments)
|
|
335
|
+
})
|
|
336
|
+
|
|
337
|
+
test('should strip unused arguments', () => {
|
|
338
|
+
const functionArguments = {
|
|
339
|
+
booleanArg: true,
|
|
340
|
+
unusedArg: 'unused',
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
const spec: Arguments = {
|
|
344
|
+
booleanArg: {
|
|
345
|
+
type: 'boolean',
|
|
346
|
+
description: 'A boolean arg',
|
|
347
|
+
required: true,
|
|
348
|
+
},
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual({
|
|
352
|
+
booleanArg: true,
|
|
353
|
+
})
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
test('should accept different types of json arguments', () => {
|
|
357
|
+
const functionArguments = {
|
|
358
|
+
json1: true,
|
|
359
|
+
json2: 'string',
|
|
360
|
+
json3: 123,
|
|
361
|
+
json4: { a: 1 },
|
|
362
|
+
json5: [1, 2, 3],
|
|
363
|
+
json6: [4, null, false],
|
|
364
|
+
json7: null,
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
const spec: Arguments = {
|
|
368
|
+
json1: {
|
|
369
|
+
type: 'json',
|
|
370
|
+
},
|
|
371
|
+
json2: {
|
|
372
|
+
type: 'json',
|
|
373
|
+
},
|
|
374
|
+
json3: {
|
|
375
|
+
type: 'json',
|
|
376
|
+
},
|
|
377
|
+
json4: {
|
|
378
|
+
type: 'json',
|
|
379
|
+
},
|
|
380
|
+
json5: {
|
|
381
|
+
type: 'json',
|
|
382
|
+
},
|
|
383
|
+
json6: {
|
|
384
|
+
type: 'json',
|
|
385
|
+
},
|
|
386
|
+
json7: {
|
|
387
|
+
type: 'json',
|
|
388
|
+
},
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual(functionArguments)
|
|
392
|
+
})
|
|
393
|
+
|
|
394
|
+
test('should not accept invalid json arguments', () => {
|
|
395
|
+
const functionArguments = {
|
|
396
|
+
invalidJson: () => {},
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
const spec: Arguments = {
|
|
400
|
+
invalidJson: {
|
|
401
|
+
type: 'json',
|
|
402
|
+
},
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
expect(() => parseFunctionArguments(functionArguments, spec)).toThrowError(
|
|
406
|
+
dedent`
|
|
407
|
+
Invalid parameter(s) found:
|
|
408
|
+
Argument "invalidJson" should be of type "json".
|
|
409
|
+
`,
|
|
410
|
+
)
|
|
411
|
+
})
|
|
412
|
+
|
|
413
|
+
test('should not accept invalid dict arguments', () => {
|
|
414
|
+
const functionArguments = {
|
|
415
|
+
invalidDict1: 123,
|
|
416
|
+
invalidDict2: 'hello',
|
|
417
|
+
invalidDict3: true,
|
|
418
|
+
invalidDict4: null,
|
|
419
|
+
invalidDict5: undefined,
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
const spec: Arguments = {
|
|
423
|
+
invalidDict1: {
|
|
424
|
+
type: 'dict',
|
|
425
|
+
required: true,
|
|
426
|
+
},
|
|
427
|
+
invalidDict2: {
|
|
428
|
+
type: 'dict',
|
|
429
|
+
required: true,
|
|
430
|
+
},
|
|
431
|
+
invalidDict3: {
|
|
432
|
+
type: 'dict',
|
|
433
|
+
required: true,
|
|
434
|
+
},
|
|
435
|
+
invalidDict4: {
|
|
436
|
+
type: 'dict',
|
|
437
|
+
required: true,
|
|
438
|
+
},
|
|
439
|
+
invalidDict5: {
|
|
440
|
+
type: 'dict',
|
|
441
|
+
required: true,
|
|
442
|
+
},
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
expect(() => parseFunctionArguments(functionArguments, spec)).toThrowError(
|
|
446
|
+
dedent`
|
|
447
|
+
Invalid parameter(s) found:
|
|
448
|
+
Argument "invalidDict1" should be of type "dict".
|
|
449
|
+
Argument "invalidDict2" should be of type "dict".
|
|
450
|
+
Argument "invalidDict3" should be of type "dict".
|
|
451
|
+
Argument "invalidDict4" is required but missing.
|
|
452
|
+
Argument "invalidDict5" is required but missing.
|
|
453
|
+
`,
|
|
454
|
+
)
|
|
455
|
+
})
|
|
456
|
+
|
|
457
|
+
test('should handle arrays of diferent types', () => {
|
|
458
|
+
const functionArguments = {
|
|
459
|
+
stringArrayArg: ['hello', 'world'],
|
|
460
|
+
booleanArrayArg: [true, false],
|
|
461
|
+
numberArrayArg: [1, 2],
|
|
462
|
+
dictArrayArg: [{ foo: null }, { foo: { bar: 'baz' } }],
|
|
463
|
+
jsonArrayArg1: [{ a: { b: 100 } }, { a: { b: 200 } }],
|
|
464
|
+
jsonArrayArg2: [1, 'hello', true],
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
const spec: Arguments = {
|
|
468
|
+
stringArrayArg: {
|
|
469
|
+
type: 'string',
|
|
470
|
+
description: 'A string array arg',
|
|
471
|
+
array: true,
|
|
472
|
+
required: true,
|
|
473
|
+
},
|
|
474
|
+
booleanArrayArg: {
|
|
475
|
+
type: 'boolean',
|
|
476
|
+
description: 'A boolean array arg',
|
|
477
|
+
array: true,
|
|
478
|
+
required: true,
|
|
479
|
+
},
|
|
480
|
+
numberArrayArg: {
|
|
481
|
+
type: 'number',
|
|
482
|
+
description: 'A number array arg',
|
|
483
|
+
array: true,
|
|
484
|
+
required: true,
|
|
485
|
+
},
|
|
486
|
+
dictArrayArg: {
|
|
487
|
+
type: 'dict',
|
|
488
|
+
description: 'A dict array arg',
|
|
489
|
+
array: true,
|
|
490
|
+
required: true,
|
|
491
|
+
},
|
|
492
|
+
jsonArrayArg1: {
|
|
493
|
+
type: 'json',
|
|
494
|
+
description: 'A json array arg',
|
|
495
|
+
array: true,
|
|
496
|
+
required: true,
|
|
497
|
+
},
|
|
498
|
+
jsonArrayArg2: {
|
|
499
|
+
type: 'json',
|
|
500
|
+
description: 'A another json array arg',
|
|
501
|
+
array: true,
|
|
502
|
+
required: true,
|
|
503
|
+
},
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual(functionArguments)
|
|
507
|
+
})
|
|
508
|
+
|
|
509
|
+
test('should throw if there are missing required fields', () => {
|
|
510
|
+
const functionArguments = {
|
|
511
|
+
unusedArg: 'unused',
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
const spec: Arguments = {
|
|
515
|
+
booleanArg: {
|
|
516
|
+
type: 'boolean',
|
|
517
|
+
description: 'A boolean arg',
|
|
518
|
+
required: false,
|
|
519
|
+
},
|
|
520
|
+
stringArg: {
|
|
521
|
+
type: 'string',
|
|
522
|
+
description: 'A string arg',
|
|
523
|
+
required: true,
|
|
524
|
+
},
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
expect(() => parseFunctionArguments(functionArguments, spec)).toThrowError(
|
|
528
|
+
dedent`
|
|
529
|
+
Invalid parameter(s) found:
|
|
530
|
+
Argument "stringArg" is required but missing.
|
|
531
|
+
`,
|
|
532
|
+
)
|
|
533
|
+
})
|
|
534
|
+
|
|
535
|
+
test('should throw if there are missing required fields and invalid typed fields', () => {
|
|
536
|
+
const functionArguments = {
|
|
537
|
+
booleanArg: 'maybe',
|
|
538
|
+
numberArg: 'one',
|
|
539
|
+
unusedArg: 'unused',
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
const spec: Arguments = {
|
|
543
|
+
booleanArg: {
|
|
544
|
+
type: 'boolean',
|
|
545
|
+
description: 'A boolean arg',
|
|
546
|
+
required: false,
|
|
547
|
+
},
|
|
548
|
+
numberArg: {
|
|
549
|
+
type: 'number',
|
|
550
|
+
description: 'A number arg',
|
|
551
|
+
required: false,
|
|
552
|
+
},
|
|
553
|
+
stringArg: {
|
|
554
|
+
type: 'string',
|
|
555
|
+
description: 'A string arg',
|
|
556
|
+
required: true,
|
|
557
|
+
},
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
expect(() => parseFunctionArguments(functionArguments, spec)).toThrowError(
|
|
561
|
+
dedent`
|
|
562
|
+
Invalid parameter(s) found:
|
|
563
|
+
Argument "booleanArg" should be of type "boolean".
|
|
564
|
+
Argument "numberArg" should be of type "number".
|
|
565
|
+
Argument "stringArg" is required but missing.
|
|
566
|
+
`,
|
|
567
|
+
)
|
|
568
|
+
})
|
|
569
|
+
|
|
570
|
+
test('should convert different primitives to strings', () => {
|
|
571
|
+
const functionArguments = {
|
|
572
|
+
stringArg: 'hello',
|
|
573
|
+
stringArrayArg: ['hello', 'world'],
|
|
574
|
+
booleanArg: true,
|
|
575
|
+
booleanArrayArg: [true, false],
|
|
576
|
+
numberArg: 123,
|
|
577
|
+
numberArrayArg: [-123, 456, 7.89],
|
|
578
|
+
dictArg: { foo: { bar: 'baz' } },
|
|
579
|
+
dictArrayArg: [{ foo: null }, { foo: { bar: 'baz' } }],
|
|
580
|
+
jsonArg: { a: 1 },
|
|
581
|
+
jsonArrayArg: [{ a: 1 }, 123, 'hello', null, undefined],
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
const transformedArguments = {
|
|
585
|
+
stringArg: 'hello',
|
|
586
|
+
stringArrayArg: ['hello', 'world'],
|
|
587
|
+
booleanArg: 'true',
|
|
588
|
+
booleanArrayArg: ['true', 'false'],
|
|
589
|
+
numberArg: '123',
|
|
590
|
+
numberArrayArg: ['-123', '456', '7.89'],
|
|
591
|
+
dictArg: '{"foo":{"bar":"baz"}}',
|
|
592
|
+
dictArrayArg: ['{"foo":null}', '{"foo":{"bar":"baz"}}'],
|
|
593
|
+
jsonArg: '{"a":1}',
|
|
594
|
+
jsonArrayArg: ['{"a":1}', '123', 'hello', 'null', 'undefined'],
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
const spec: Arguments = {
|
|
598
|
+
stringArg: {
|
|
599
|
+
type: 'string',
|
|
600
|
+
description: 'A string arg from a string',
|
|
601
|
+
required: true,
|
|
602
|
+
},
|
|
603
|
+
stringArrayArg: {
|
|
604
|
+
type: 'string',
|
|
605
|
+
array: true,
|
|
606
|
+
description: 'A string array arg from a string array',
|
|
607
|
+
required: true,
|
|
608
|
+
},
|
|
609
|
+
booleanArg: {
|
|
610
|
+
type: 'string',
|
|
611
|
+
description: 'A string arg from a boolean',
|
|
612
|
+
required: true,
|
|
613
|
+
},
|
|
614
|
+
booleanArrayArg: {
|
|
615
|
+
type: 'string',
|
|
616
|
+
array: true,
|
|
617
|
+
description: 'A string array arg from a boolean array',
|
|
618
|
+
required: true,
|
|
619
|
+
},
|
|
620
|
+
numberArg: {
|
|
621
|
+
type: 'string',
|
|
622
|
+
description: 'A string arg from a number',
|
|
623
|
+
required: true,
|
|
624
|
+
},
|
|
625
|
+
numberArrayArg: {
|
|
626
|
+
type: 'string',
|
|
627
|
+
array: true,
|
|
628
|
+
description: 'A string array arg from a number array',
|
|
629
|
+
required: true,
|
|
630
|
+
},
|
|
631
|
+
dictArg: {
|
|
632
|
+
type: 'string',
|
|
633
|
+
description: 'A string arg from a dict',
|
|
634
|
+
required: true,
|
|
635
|
+
},
|
|
636
|
+
dictArrayArg: {
|
|
637
|
+
type: 'string',
|
|
638
|
+
array: true,
|
|
639
|
+
description: 'A string array arg from a dict array',
|
|
640
|
+
required: true,
|
|
641
|
+
},
|
|
642
|
+
jsonArg: {
|
|
643
|
+
type: 'string',
|
|
644
|
+
description: 'A string arg from a json',
|
|
645
|
+
required: true,
|
|
646
|
+
},
|
|
647
|
+
jsonArrayArg: {
|
|
648
|
+
type: 'string',
|
|
649
|
+
array: true,
|
|
650
|
+
description: 'A string array arg from a json array',
|
|
651
|
+
required: true,
|
|
652
|
+
},
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual(transformedArguments)
|
|
656
|
+
})
|
|
657
|
+
|
|
658
|
+
test('should convert string values to numbers and booleans if specified', () => {
|
|
659
|
+
const functionArguments = {
|
|
660
|
+
booleanArg: 'true',
|
|
661
|
+
booleanArrayArg: ['true', 'false'],
|
|
662
|
+
numberArg: '123',
|
|
663
|
+
numberArrayArg: ['-123', '456', '7.89'],
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
const transformedArguments = {
|
|
667
|
+
booleanArg: true,
|
|
668
|
+
booleanArrayArg: [true, false],
|
|
669
|
+
numberArg: 123,
|
|
670
|
+
numberArrayArg: [-123, 456, 7.89],
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
const spec: Arguments = {
|
|
674
|
+
booleanArg: {
|
|
675
|
+
type: 'boolean',
|
|
676
|
+
description: 'A boolean arg',
|
|
677
|
+
required: true,
|
|
678
|
+
},
|
|
679
|
+
booleanArrayArg: {
|
|
680
|
+
type: 'boolean',
|
|
681
|
+
array: true,
|
|
682
|
+
description: 'A boolean array arg',
|
|
683
|
+
required: true,
|
|
684
|
+
},
|
|
685
|
+
numberArg: {
|
|
686
|
+
type: 'number',
|
|
687
|
+
description: 'A number arg',
|
|
688
|
+
required: true,
|
|
689
|
+
},
|
|
690
|
+
numberArrayArg: {
|
|
691
|
+
type: 'number',
|
|
692
|
+
array: true,
|
|
693
|
+
description: 'A number array arg',
|
|
694
|
+
required: true,
|
|
695
|
+
},
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
expect(parseFunctionArguments(functionArguments, spec)).toEqual(transformedArguments)
|
|
699
|
+
})
|
|
700
|
+
|
|
701
|
+
test('should throw number is string values for numbers and booleans are invalid', () => {
|
|
702
|
+
const functionArguments = {
|
|
703
|
+
booleanArg: 'true1',
|
|
704
|
+
booleanArrayArg: ['true1', 'false'],
|
|
705
|
+
numberArg: '123e',
|
|
706
|
+
numberArrayArg: ['-123', '456', '7.89e'],
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
const spec: Arguments = {
|
|
710
|
+
booleanArg: {
|
|
711
|
+
type: 'boolean',
|
|
712
|
+
description: 'A boolean arg',
|
|
713
|
+
required: true,
|
|
714
|
+
},
|
|
715
|
+
booleanArrayArg: {
|
|
716
|
+
type: 'boolean',
|
|
717
|
+
array: true,
|
|
718
|
+
description: 'A boolean array arg',
|
|
719
|
+
required: true,
|
|
720
|
+
},
|
|
721
|
+
numberArg: {
|
|
722
|
+
type: 'number',
|
|
723
|
+
description: 'A number arg',
|
|
724
|
+
required: true,
|
|
725
|
+
},
|
|
726
|
+
numberArrayArg: {
|
|
727
|
+
type: 'number',
|
|
728
|
+
array: true,
|
|
729
|
+
description: 'A number array arg',
|
|
730
|
+
required: true,
|
|
731
|
+
},
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
expect(() => parseFunctionArguments(functionArguments, spec)).toThrowError(
|
|
735
|
+
dedent`
|
|
736
|
+
Invalid parameter(s) found:
|
|
737
|
+
Argument "booleanArg" should be of type "boolean".
|
|
738
|
+
Argument "booleanArrayArg" should be an array of type "boolean".
|
|
739
|
+
Argument "numberArg" should be of type "number".
|
|
740
|
+
Argument "numberArrayArg" should be an array of type "number".
|
|
741
|
+
`,
|
|
742
|
+
)
|
|
743
|
+
})
|
|
744
|
+
})
|
|
745
|
+
})
|
|
746
|
+
|
|
747
|
+
describe('RetoolRPCVersion', () => {
|
|
748
|
+
test('should return the current version', () => {
|
|
749
|
+
const packageJson = fs.readJsonSync('./package.json')
|
|
750
|
+
expect(RetoolRPCVersion).toEqual(packageJson.version)
|
|
751
|
+
})
|
|
752
|
+
})
|