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