cdk-common 0.0.68 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1016) hide show
  1. package/.gitattributes +21 -21
  2. package/.jsii +2662 -552
  3. package/API.md +27 -64
  4. package/README.md +9 -2
  5. package/lib/integ-default.d.ts +3 -3
  6. package/lib/integ-default.js +6 -5
  7. package/lib/main.d.ts +4 -4
  8. package/lib/main.js +7 -6
  9. package/node_modules/@aws-cdk/assert/BUILD.md +15 -0
  10. package/node_modules/@aws-cdk/assert/LICENSE +201 -0
  11. package/node_modules/@aws-cdk/assert/NOTICE +2 -0
  12. package/node_modules/@aws-cdk/assert/README.md +229 -0
  13. package/node_modules/@aws-cdk/assert/clone.sh +29 -0
  14. package/node_modules/@aws-cdk/assert/jest.d.ts +14 -0
  15. package/node_modules/@aws-cdk/assert/jest.js +57 -0
  16. package/node_modules/@aws-cdk/assert/lib/assertion.d.ts +17 -0
  17. package/node_modules/@aws-cdk/assert/lib/assertion.js +31 -0
  18. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.d.ts +10 -0
  19. package/node_modules/@aws-cdk/assert/lib/assertions/and-assertion.js +21 -0
  20. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.d.ts +10 -0
  21. package/node_modules/@aws-cdk/assert/lib/assertions/count-resources.js +54 -0
  22. package/node_modules/@aws-cdk/assert/lib/assertions/exist.d.ts +3 -0
  23. package/node_modules/@aws-cdk/assert/lib/assertions/exist.js +18 -0
  24. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.d.ts +29 -0
  25. package/node_modules/@aws-cdk/assert/lib/assertions/have-output.js +78 -0
  26. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.d.ts +123 -0
  27. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource-matchers.js +404 -0
  28. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.d.ts +69 -0
  29. package/node_modules/@aws-cdk/assert/lib/assertions/have-resource.js +131 -0
  30. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.d.ts +3 -0
  31. package/node_modules/@aws-cdk/assert/lib/assertions/have-type.js +22 -0
  32. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.d.ts +19 -0
  33. package/node_modules/@aws-cdk/assert/lib/assertions/match-template.js +98 -0
  34. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.d.ts +8 -0
  35. package/node_modules/@aws-cdk/assert/lib/assertions/negated-assertion.js +18 -0
  36. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.d.ts +11 -0
  37. package/node_modules/@aws-cdk/assert/lib/canonicalize-assets.js +70 -0
  38. package/node_modules/@aws-cdk/assert/lib/expect.d.ts +4 -0
  39. package/node_modules/@aws-cdk/assert/lib/expect.js +16 -0
  40. package/node_modules/@aws-cdk/assert/lib/index.d.ts +14 -0
  41. package/node_modules/@aws-cdk/assert/lib/index.js +27 -0
  42. package/node_modules/@aws-cdk/assert/lib/inspector.d.ts +31 -0
  43. package/node_modules/@aws-cdk/assert/lib/inspector.js +69 -0
  44. package/node_modules/@aws-cdk/assert/lib/synth-utils.d.ts +30 -0
  45. package/node_modules/@aws-cdk/assert/lib/synth-utils.js +93 -0
  46. package/node_modules/@aws-cdk/assert/package.json +77 -0
  47. package/node_modules/@aws-cdk/cfnspec/CHANGELOG.md +9353 -0
  48. package/node_modules/@aws-cdk/cfnspec/LICENSE +201 -0
  49. package/node_modules/@aws-cdk/cfnspec/NOTICE +2 -0
  50. package/node_modules/@aws-cdk/cfnspec/README.md +14 -0
  51. package/node_modules/@aws-cdk/cfnspec/build-tools/build.d.ts +1 -0
  52. package/node_modules/@aws-cdk/cfnspec/build-tools/build.js +83 -0
  53. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.d.ts +6 -0
  54. package/node_modules/@aws-cdk/cfnspec/build-tools/create-missing-libraries.js +308 -0
  55. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.d.ts +14 -0
  56. package/node_modules/@aws-cdk/cfnspec/build-tools/massage-spec.js +130 -0
  57. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.d.ts +12 -0
  58. package/node_modules/@aws-cdk/cfnspec/build-tools/scrutiny.js +85 -0
  59. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.d.ts +1 -0
  60. package/node_modules/@aws-cdk/cfnspec/build-tools/spec-diff.js +237 -0
  61. package/node_modules/@aws-cdk/cfnspec/build-tools/template/LICENSE +201 -0
  62. package/node_modules/@aws-cdk/cfnspec/build-tools/template/NOTICE +2 -0
  63. package/node_modules/@aws-cdk/cfnspec/build-tools/update-cfnlint.sh +18 -0
  64. package/node_modules/@aws-cdk/cfnspec/build-tools/update-metrics.sh +13 -0
  65. package/node_modules/@aws-cdk/cfnspec/build-tools/update.sh +81 -0
  66. package/node_modules/@aws-cdk/cfnspec/cfn.version +1 -0
  67. package/node_modules/@aws-cdk/cfnspec/coverage/base.css +224 -0
  68. package/node_modules/@aws-cdk/cfnspec/coverage/block-navigation.js +79 -0
  69. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/index.html +126 -0
  70. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/massage-spec.ts.html +443 -0
  71. package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/scrutiny.ts.html +344 -0
  72. package/node_modules/@aws-cdk/cfnspec/coverage/favicon.png +0 -0
  73. package/node_modules/@aws-cdk/cfnspec/coverage/index.html +156 -0
  74. package/node_modules/@aws-cdk/cfnspec/coverage/junit.xml +31181 -0
  75. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/base.css +224 -0
  76. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/block-navigation.js +79 -0
  77. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/index.html +126 -0
  78. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/massage-spec.ts.html +443 -0
  79. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/scrutiny.ts.html +344 -0
  80. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/favicon.png +0 -0
  81. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/index.html +156 -0
  82. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/canned-metrics-schema.ts.html +299 -0
  83. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/index.html +111 -0
  84. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics.ts.html +440 -0
  85. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.html +126 -0
  86. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.ts.html +557 -0
  87. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/augmentation.ts.html +371 -0
  88. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/base-types.ts.html +167 -0
  89. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.html +186 -0
  90. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.ts.html +98 -0
  91. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/property.ts.html +965 -0
  92. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/resource-type.ts.html +572 -0
  93. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/specification.ts.html +248 -0
  94. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/prettify.css +1 -0
  95. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/prettify.js +2 -0
  96. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  97. package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/sorter.js +170 -0
  98. package/node_modules/@aws-cdk/cfnspec/coverage/lcov.info +709 -0
  99. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/canned-metrics-schema.ts.html +299 -0
  100. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/index.html +111 -0
  101. package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics.ts.html +440 -0
  102. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.html +126 -0
  103. package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.ts.html +557 -0
  104. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/augmentation.ts.html +371 -0
  105. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/base-types.ts.html +167 -0
  106. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.html +186 -0
  107. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.ts.html +98 -0
  108. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/property.ts.html +965 -0
  109. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/resource-type.ts.html +572 -0
  110. package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/specification.ts.html +248 -0
  111. package/node_modules/@aws-cdk/cfnspec/coverage/prettify.css +1 -0
  112. package/node_modules/@aws-cdk/cfnspec/coverage/prettify.js +2 -0
  113. package/node_modules/@aws-cdk/cfnspec/coverage/sort-arrow-sprite.png +0 -0
  114. package/node_modules/@aws-cdk/cfnspec/coverage/sorter.js +170 -0
  115. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.d.ts +24 -0
  116. package/node_modules/@aws-cdk/cfnspec/lib/_private_schema/cfn-lint.js +3 -0
  117. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_EC2_VPNConnection.json +27 -0
  118. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_Lambda_Function.json +27 -0
  119. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBCluster.json +70 -0
  120. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_RDS_DBInstance.json +37 -0
  121. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SNS_Topic.json +52 -0
  122. package/node_modules/@aws-cdk/cfnspec/lib/augmentations/AWS_SQS_Queue.json +53 -0
  123. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/README.md +163 -0
  124. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.d.ts +60 -0
  125. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/canned-metrics-schema.js +12 -0
  126. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics/services.json +22175 -0
  127. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.d.ts +41 -0
  128. package/node_modules/@aws-cdk/cfnspec/lib/canned-metrics.js +77 -0
  129. package/node_modules/@aws-cdk/cfnspec/lib/index.d.ts +55 -0
  130. package/node_modules/@aws-cdk/cfnspec/lib/index.js +171 -0
  131. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.d.ts +87 -0
  132. package/node_modules/@aws-cdk/cfnspec/lib/schema/augmentation.js +28 -0
  133. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.d.ts +14 -0
  134. package/node_modules/@aws-cdk/cfnspec/lib/schema/base-types.js +29 -0
  135. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.d.ts +13 -0
  136. package/node_modules/@aws-cdk/cfnspec/lib/schema/cfn-lint.js +3 -0
  137. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.d.ts +6 -0
  138. package/node_modules/@aws-cdk/cfnspec/lib/schema/index.js +19 -0
  139. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.d.ts +174 -0
  140. package/node_modules/@aws-cdk/cfnspec/lib/schema/property.js +161 -0
  141. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.d.ts +117 -0
  142. package/node_modules/@aws-cdk/cfnspec/lib/schema/resource-type.js +99 -0
  143. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.d.ts +56 -0
  144. package/node_modules/@aws-cdk/cfnspec/lib/schema/specification.js +11 -0
  145. package/node_modules/@aws-cdk/cfnspec/package.json +61 -0
  146. package/node_modules/@aws-cdk/cfnspec/spec/cfn-lint.json +34 -0
  147. package/node_modules/@aws-cdk/cfnspec/spec/specification.json +110800 -0
  148. package/node_modules/@aws-cdk/cfnspec/tsconfig.json +24 -0
  149. package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +4584 -0
  150. package/node_modules/@aws-cdk/cloudformation-diff/LICENSE +201 -0
  151. package/node_modules/@aws-cdk/cloudformation-diff/NOTICE +2 -0
  152. package/node_modules/@aws-cdk/cloudformation-diff/README.md +12 -0
  153. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.d.ts +9 -0
  154. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/index.js +94 -0
  155. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.d.ts +326 -0
  156. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/types.js +456 -0
  157. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.d.ts +41 -0
  158. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff/util.js +165 -0
  159. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.d.ts +21 -0
  160. package/node_modules/@aws-cdk/cloudformation-diff/lib/diff-template.js +166 -0
  161. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.d.ts +22 -0
  162. package/node_modules/@aws-cdk/cloudformation-diff/lib/diffable.js +47 -0
  163. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.d.ts +6 -0
  164. package/node_modules/@aws-cdk/cloudformation-diff/lib/format-table.js +109 -0
  165. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.d.ts +23 -0
  166. package/node_modules/@aws-cdk/cloudformation-diff/lib/format.js +414 -0
  167. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.d.ts +62 -0
  168. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/iam-changes.js +246 -0
  169. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.d.ts +18 -0
  170. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/managed-policy.js +29 -0
  171. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.d.ts +127 -0
  172. package/node_modules/@aws-cdk/cloudformation-diff/lib/iam/statement.js +266 -0
  173. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.d.ts +4 -0
  174. package/node_modules/@aws-cdk/cloudformation-diff/lib/index.js +18 -0
  175. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.d.ts +32 -0
  176. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-changes.js +95 -0
  177. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.d.ts +50 -0
  178. package/node_modules/@aws-cdk/cloudformation-diff/lib/network/security-group-rule.js +91 -0
  179. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.d.ts +21 -0
  180. package/node_modules/@aws-cdk/cloudformation-diff/lib/render-intrinsics.js +79 -0
  181. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.d.ts +7 -0
  182. package/node_modules/@aws-cdk/cloudformation-diff/lib/util.js +63 -0
  183. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/LICENSE +21 -0
  184. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/README.md +16 -0
  185. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/assert.d.ts +99 -0
  186. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/async_hooks.d.ts +144 -0
  187. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/base.d.ts +19 -0
  188. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/buffer.d.ts +16 -0
  189. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/child_process.d.ts +369 -0
  190. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/cluster.d.ts +260 -0
  191. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/console.d.ts +3 -0
  192. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/constants.d.ts +449 -0
  193. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/crypto.d.ts +613 -0
  194. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/dgram.d.ts +97 -0
  195. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/dns.d.ts +366 -0
  196. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/domain.d.ts +16 -0
  197. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/events.d.ts +30 -0
  198. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/fs.d.ts +2302 -0
  199. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/globals.d.ts +1066 -0
  200. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/http.d.ts +274 -0
  201. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/http2.d.ts +859 -0
  202. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/https.d.ts +51 -0
  203. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/index.d.ts +41 -0
  204. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/inspector.d.ts +3162 -0
  205. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/module.d.ts +3 -0
  206. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/net.d.ts +251 -0
  207. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/os.d.ts +254 -0
  208. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/package.json +181 -0
  209. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/path.d.ts +159 -0
  210. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/perf_hooks.d.ts +169 -0
  211. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/process.d.ts +3 -0
  212. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/punycode.d.ts +68 -0
  213. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/querystring.d.ts +17 -0
  214. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/readline.d.ts +143 -0
  215. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/repl.d.ts +380 -0
  216. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/stream.d.ts +313 -0
  217. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/string_decoder.d.ts +9 -0
  218. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/timers.d.ts +16 -0
  219. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/tls.d.ts +459 -0
  220. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/trace_events.d.ts +61 -0
  221. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/ts3.6/assert.d.ts +73 -0
  222. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/ts3.6/base.d.ts +54 -0
  223. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/ts3.6/index.d.ts +6 -0
  224. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/tty.d.ts +17 -0
  225. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/url.d.ts +104 -0
  226. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/util.d.ts +187 -0
  227. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/v8.d.ts +28 -0
  228. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/vm.d.ts +81 -0
  229. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/worker_threads.d.ts +124 -0
  230. package/node_modules/@aws-cdk/cloudformation-diff/node_modules/@types/node/zlib.d.ts +327 -0
  231. package/node_modules/@aws-cdk/cloudformation-diff/package.json +61 -0
  232. package/node_modules/ansi-regex/index.d.ts +37 -0
  233. package/node_modules/ansi-regex/index.js +10 -0
  234. package/node_modules/ansi-regex/license +9 -0
  235. package/node_modules/ansi-regex/package.json +55 -0
  236. package/node_modules/ansi-regex/readme.md +78 -0
  237. package/node_modules/ansi-styles/index.d.ts +345 -0
  238. package/node_modules/ansi-styles/index.js +163 -0
  239. package/node_modules/ansi-styles/license +9 -0
  240. package/node_modules/ansi-styles/package.json +56 -0
  241. package/node_modules/ansi-styles/readme.md +152 -0
  242. package/node_modules/astral-regex/index.d.ts +28 -0
  243. package/node_modules/astral-regex/index.js +6 -0
  244. package/node_modules/astral-regex/license +9 -0
  245. package/node_modules/astral-regex/package.json +33 -0
  246. package/node_modules/astral-regex/readme.md +46 -0
  247. package/node_modules/at-least-node/LICENSE +6 -0
  248. package/node_modules/at-least-node/README.md +25 -0
  249. package/node_modules/at-least-node/index.js +5 -0
  250. package/node_modules/at-least-node/package.json +32 -0
  251. package/node_modules/charenc/LICENSE.mkd +27 -0
  252. package/node_modules/charenc/README.js +1 -0
  253. package/node_modules/charenc/charenc.js +33 -0
  254. package/node_modules/charenc/package.json +24 -0
  255. package/node_modules/color-convert/CHANGELOG.md +54 -0
  256. package/node_modules/color-convert/LICENSE +21 -0
  257. package/node_modules/color-convert/README.md +68 -0
  258. package/node_modules/color-convert/conversions.js +839 -0
  259. package/node_modules/color-convert/index.js +81 -0
  260. package/node_modules/color-convert/package.json +48 -0
  261. package/node_modules/color-convert/route.js +97 -0
  262. package/node_modules/color-name/LICENSE +8 -0
  263. package/node_modules/color-name/README.md +11 -0
  264. package/node_modules/color-name/index.js +152 -0
  265. package/node_modules/color-name/package.json +28 -0
  266. package/node_modules/colors/LICENSE +25 -0
  267. package/node_modules/colors/README.md +221 -0
  268. package/node_modules/colors/examples/normal-usage.js +82 -0
  269. package/node_modules/colors/examples/safe-string.js +79 -0
  270. package/node_modules/colors/index.d.ts +136 -0
  271. package/node_modules/colors/lib/colors.js +211 -0
  272. package/node_modules/colors/lib/custom/trap.js +46 -0
  273. package/node_modules/colors/lib/custom/zalgo.js +110 -0
  274. package/node_modules/colors/lib/extendStringPrototype.js +110 -0
  275. package/node_modules/colors/lib/index.js +13 -0
  276. package/node_modules/colors/lib/maps/america.js +10 -0
  277. package/node_modules/colors/lib/maps/rainbow.js +12 -0
  278. package/node_modules/colors/lib/maps/random.js +11 -0
  279. package/node_modules/colors/lib/maps/zebra.js +5 -0
  280. package/node_modules/colors/lib/styles.js +95 -0
  281. package/node_modules/colors/lib/system/has-flag.js +35 -0
  282. package/node_modules/colors/lib/system/supports-colors.js +151 -0
  283. package/node_modules/colors/package.json +45 -0
  284. package/node_modules/colors/safe.d.ts +48 -0
  285. package/node_modules/colors/safe.js +10 -0
  286. package/node_modules/colors/themes/generic-logging.js +12 -0
  287. package/node_modules/crypt/LICENSE.mkd +27 -0
  288. package/node_modules/crypt/README.mkd +1 -0
  289. package/node_modules/crypt/crypt.js +96 -0
  290. package/node_modules/crypt/package.json +22 -0
  291. package/node_modules/diff/CONTRIBUTING.md +39 -0
  292. package/node_modules/diff/LICENSE +31 -0
  293. package/node_modules/diff/README.md +208 -0
  294. package/node_modules/diff/dist/diff.js +1582 -0
  295. package/node_modules/diff/lib/convert/dmp.js +32 -0
  296. package/node_modules/diff/lib/convert/xml.js +42 -0
  297. package/node_modules/diff/lib/diff/array.js +45 -0
  298. package/node_modules/diff/lib/diff/base.js +304 -0
  299. package/node_modules/diff/lib/diff/character.js +37 -0
  300. package/node_modules/diff/lib/diff/css.js +41 -0
  301. package/node_modules/diff/lib/diff/json.js +163 -0
  302. package/node_modules/diff/lib/diff/line.js +89 -0
  303. package/node_modules/diff/lib/diff/sentence.js +41 -0
  304. package/node_modules/diff/lib/diff/word.js +108 -0
  305. package/node_modules/diff/lib/index.es6.js +1553 -0
  306. package/node_modules/diff/lib/index.js +216 -0
  307. package/node_modules/diff/lib/index.mjs +1553 -0
  308. package/node_modules/diff/lib/patch/apply.js +238 -0
  309. package/node_modules/diff/lib/patch/create.js +267 -0
  310. package/node_modules/diff/lib/patch/merge.js +613 -0
  311. package/node_modules/diff/lib/patch/parse.js +167 -0
  312. package/node_modules/diff/lib/util/array.js +32 -0
  313. package/node_modules/diff/lib/util/distance-iterator.js +57 -0
  314. package/node_modules/diff/lib/util/params.js +24 -0
  315. package/node_modules/diff/package.json +87 -0
  316. package/node_modules/diff/release-notes.md +303 -0
  317. package/node_modules/diff/runtime.js +3 -0
  318. package/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  319. package/node_modules/emoji-regex/README.md +73 -0
  320. package/node_modules/emoji-regex/es2015/index.js +6 -0
  321. package/node_modules/emoji-regex/es2015/text.js +6 -0
  322. package/node_modules/emoji-regex/index.d.ts +23 -0
  323. package/node_modules/emoji-regex/index.js +6 -0
  324. package/node_modules/emoji-regex/package.json +50 -0
  325. package/node_modules/emoji-regex/text.js +6 -0
  326. package/node_modules/fast-deep-equal/LICENSE +21 -0
  327. package/node_modules/fast-deep-equal/README.md +96 -0
  328. package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
  329. package/node_modules/fast-deep-equal/es6/index.js +72 -0
  330. package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
  331. package/node_modules/fast-deep-equal/es6/react.js +79 -0
  332. package/node_modules/fast-deep-equal/index.d.ts +4 -0
  333. package/node_modules/fast-deep-equal/index.js +46 -0
  334. package/node_modules/fast-deep-equal/package.json +61 -0
  335. package/node_modules/fast-deep-equal/react.d.ts +2 -0
  336. package/node_modules/fast-deep-equal/react.js +53 -0
  337. package/node_modules/fs-extra/CHANGELOG.md +902 -0
  338. package/node_modules/fs-extra/LICENSE +15 -0
  339. package/node_modules/fs-extra/README.md +264 -0
  340. package/node_modules/fs-extra/lib/copy/copy.js +232 -0
  341. package/node_modules/fs-extra/lib/copy/index.js +6 -0
  342. package/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
  343. package/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
  344. package/node_modules/fs-extra/lib/empty/index.js +48 -0
  345. package/node_modules/fs-extra/lib/ensure/file.js +69 -0
  346. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  347. package/node_modules/fs-extra/lib/ensure/link.js +61 -0
  348. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  349. package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  350. package/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
  351. package/node_modules/fs-extra/lib/fs/index.js +130 -0
  352. package/node_modules/fs-extra/lib/index.js +27 -0
  353. package/node_modules/fs-extra/lib/json/index.js +16 -0
  354. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  355. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  356. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  357. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  358. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
  359. package/node_modules/fs-extra/lib/move/index.js +6 -0
  360. package/node_modules/fs-extra/lib/move/move.js +65 -0
  361. package/node_modules/fs-extra/lib/move-sync/index.js +5 -0
  362. package/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
  363. package/node_modules/fs-extra/lib/output/index.js +40 -0
  364. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  365. package/node_modules/fs-extra/lib/remove/index.js +9 -0
  366. package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  367. package/node_modules/fs-extra/lib/util/stat.js +139 -0
  368. package/node_modules/fs-extra/lib/util/utimes.js +26 -0
  369. package/node_modules/fs-extra/package.json +70 -0
  370. package/node_modules/graceful-fs/LICENSE +15 -0
  371. package/node_modules/graceful-fs/README.md +143 -0
  372. package/node_modules/graceful-fs/clone.js +23 -0
  373. package/node_modules/graceful-fs/graceful-fs.js +429 -0
  374. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  375. package/node_modules/graceful-fs/package.json +50 -0
  376. package/node_modules/graceful-fs/polyfills.js +346 -0
  377. package/node_modules/is-buffer/LICENSE +21 -0
  378. package/node_modules/is-buffer/README.md +53 -0
  379. package/node_modules/is-buffer/index.js +21 -0
  380. package/node_modules/is-buffer/package.json +51 -0
  381. package/node_modules/is-buffer/test/basic.js +24 -0
  382. package/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  383. package/node_modules/is-fullwidth-code-point/index.js +50 -0
  384. package/node_modules/is-fullwidth-code-point/license +9 -0
  385. package/node_modules/is-fullwidth-code-point/package.json +42 -0
  386. package/node_modules/is-fullwidth-code-point/readme.md +39 -0
  387. package/node_modules/jsonfile/CHANGELOG.md +171 -0
  388. package/node_modules/jsonfile/LICENSE +15 -0
  389. package/node_modules/jsonfile/README.md +230 -0
  390. package/node_modules/jsonfile/index.js +88 -0
  391. package/node_modules/jsonfile/package.json +40 -0
  392. package/node_modules/jsonfile/utils.js +14 -0
  393. package/node_modules/lodash.truncate/LICENSE +47 -0
  394. package/node_modules/lodash.truncate/README.md +18 -0
  395. package/node_modules/lodash.truncate/index.js +632 -0
  396. package/node_modules/lodash.truncate/package.json +17 -0
  397. package/node_modules/md5/.travis.yml +7 -0
  398. package/node_modules/md5/LICENSE +27 -0
  399. package/node_modules/md5/README.md +111 -0
  400. package/node_modules/md5/demo/index.html +48 -0
  401. package/node_modules/md5/dist/md5.min.js +7 -0
  402. package/node_modules/md5/md5.js +160 -0
  403. package/node_modules/md5/package.json +38 -0
  404. package/node_modules/md5/test.js +75 -0
  405. package/node_modules/md5/webpack.config.js +13 -0
  406. package/node_modules/punycode/LICENSE-MIT.txt +20 -0
  407. package/node_modules/punycode/README.md +122 -0
  408. package/node_modules/punycode/package.json +58 -0
  409. package/node_modules/punycode/punycode.es6.js +441 -0
  410. package/node_modules/punycode/punycode.js +440 -0
  411. package/node_modules/require-from-string/index.js +34 -0
  412. package/node_modules/require-from-string/license +21 -0
  413. package/node_modules/require-from-string/package.json +28 -0
  414. package/node_modules/require-from-string/readme.md +56 -0
  415. package/node_modules/slice-ansi/index.js +103 -0
  416. package/node_modules/slice-ansi/license +10 -0
  417. package/node_modules/slice-ansi/package.json +52 -0
  418. package/node_modules/slice-ansi/readme.md +66 -0
  419. package/node_modules/string-width/index.d.ts +29 -0
  420. package/node_modules/string-width/index.js +47 -0
  421. package/node_modules/string-width/license +9 -0
  422. package/node_modules/string-width/package.json +56 -0
  423. package/node_modules/string-width/readme.md +50 -0
  424. package/node_modules/strip-ansi/index.d.ts +17 -0
  425. package/node_modules/strip-ansi/index.js +4 -0
  426. package/node_modules/strip-ansi/license +9 -0
  427. package/node_modules/strip-ansi/package.json +54 -0
  428. package/node_modules/strip-ansi/readme.md +46 -0
  429. package/node_modules/table/LICENSE +24 -0
  430. package/node_modules/table/README.md +759 -0
  431. package/node_modules/table/dist/src/alignString.d.ts +6 -0
  432. package/node_modules/table/dist/src/alignString.js +60 -0
  433. package/node_modules/table/dist/src/alignTableData.d.ts +2 -0
  434. package/node_modules/table/dist/src/alignTableData.js +14 -0
  435. package/node_modules/table/dist/src/calculateCellHeight.d.ts +4 -0
  436. package/node_modules/table/dist/src/calculateCellHeight.js +12 -0
  437. package/node_modules/table/dist/src/calculateCellWidths.d.ts +5 -0
  438. package/node_modules/table/dist/src/calculateCellWidths.js +17 -0
  439. package/node_modules/table/dist/src/calculateColumnWidths.d.ts +6 -0
  440. package/node_modules/table/dist/src/calculateColumnWidths.js +17 -0
  441. package/node_modules/table/dist/src/calculateRowHeights.d.ts +5 -0
  442. package/node_modules/table/dist/src/calculateRowHeights.js +19 -0
  443. package/node_modules/table/dist/src/createStream.d.ts +2 -0
  444. package/node_modules/table/dist/src/createStream.js +73 -0
  445. package/node_modules/table/dist/src/drawBorder.d.ts +26 -0
  446. package/node_modules/table/dist/src/drawBorder.js +101 -0
  447. package/node_modules/table/dist/src/drawContent.d.ts +9 -0
  448. package/node_modules/table/dist/src/drawContent.js +27 -0
  449. package/node_modules/table/dist/src/drawHeader.d.ts +2 -0
  450. package/node_modules/table/dist/src/drawHeader.js +30 -0
  451. package/node_modules/table/dist/src/drawRow.d.ts +6 -0
  452. package/node_modules/table/dist/src/drawRow.js +21 -0
  453. package/node_modules/table/dist/src/drawTable.d.ts +2 -0
  454. package/node_modules/table/dist/src/drawTable.js +39 -0
  455. package/node_modules/table/dist/src/generated/validators.d.ts +13 -0
  456. package/node_modules/table/dist/src/generated/validators.js +2171 -0
  457. package/node_modules/table/dist/src/getBorderCharacters.d.ts +2 -0
  458. package/node_modules/table/dist/src/getBorderCharacters.js +89 -0
  459. package/node_modules/table/dist/src/index.d.ts +5 -0
  460. package/node_modules/table/dist/src/index.js +21 -0
  461. package/node_modules/table/dist/src/makeStreamConfig.d.ts +7 -0
  462. package/node_modules/table/dist/src/makeStreamConfig.js +43 -0
  463. package/node_modules/table/dist/src/makeTableConfig.d.ts +7 -0
  464. package/node_modules/table/dist/src/makeTableConfig.js +65 -0
  465. package/node_modules/table/dist/src/mapDataUsingRowHeights.d.ts +2 -0
  466. package/node_modules/table/dist/src/mapDataUsingRowHeights.js +45 -0
  467. package/node_modules/table/dist/src/padTableData.d.ts +3 -0
  468. package/node_modules/table/dist/src/padTableData.js +17 -0
  469. package/node_modules/table/dist/src/stringifyTableData.d.ts +2 -0
  470. package/node_modules/table/dist/src/stringifyTableData.js +13 -0
  471. package/node_modules/table/dist/src/table.d.ts +2 -0
  472. package/node_modules/table/dist/src/table.js +27 -0
  473. package/node_modules/table/dist/src/truncateTableData.d.ts +6 -0
  474. package/node_modules/table/dist/src/truncateTableData.js +24 -0
  475. package/node_modules/table/dist/src/types/api.d.ts +114 -0
  476. package/node_modules/table/dist/src/types/api.js +3 -0
  477. package/node_modules/table/dist/src/types/internal.d.ts +1 -0
  478. package/node_modules/table/dist/src/types/internal.js +3 -0
  479. package/node_modules/table/dist/src/utils.d.ts +1 -0
  480. package/node_modules/table/dist/src/utils.js +93 -0
  481. package/node_modules/table/dist/src/validateConfig.d.ts +2 -0
  482. package/node_modules/table/dist/src/validateConfig.js +27 -0
  483. package/node_modules/table/dist/src/validateTableData.d.ts +1 -0
  484. package/node_modules/table/dist/src/validateTableData.js +32 -0
  485. package/node_modules/table/dist/src/wrapCell.d.ts +8 -0
  486. package/node_modules/table/dist/src/wrapCell.js +33 -0
  487. package/node_modules/table/dist/src/wrapString.d.ts +9 -0
  488. package/node_modules/table/dist/src/wrapString.js +27 -0
  489. package/node_modules/table/dist/src/wrapWord.d.ts +1 -0
  490. package/node_modules/table/dist/src/wrapWord.js +42 -0
  491. package/node_modules/table/node_modules/ajv/.runkit_example.js +23 -0
  492. package/node_modules/table/node_modules/ajv/LICENSE +22 -0
  493. package/node_modules/table/node_modules/ajv/README.md +192 -0
  494. package/node_modules/table/node_modules/ajv/dist/2019.d.ts +17 -0
  495. package/node_modules/table/node_modules/ajv/dist/2019.js +55 -0
  496. package/node_modules/table/node_modules/ajv/dist/2019.js.map +1 -0
  497. package/node_modules/table/node_modules/ajv/dist/2020.d.ts +17 -0
  498. package/node_modules/table/node_modules/ajv/dist/2020.js +49 -0
  499. package/node_modules/table/node_modules/ajv/dist/2020.js.map +1 -0
  500. package/node_modules/table/node_modules/ajv/dist/ajv.d.ts +16 -0
  501. package/node_modules/table/node_modules/ajv/dist/ajv.js +44 -0
  502. package/node_modules/table/node_modules/ajv/dist/ajv.js.map +1 -0
  503. package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.d.ts +39 -0
  504. package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.js +147 -0
  505. package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  506. package/node_modules/table/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
  507. package/node_modules/table/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  508. package/node_modules/table/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  509. package/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
  510. package/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  511. package/node_modules/table/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  512. package/node_modules/table/node_modules/ajv/dist/compile/errors.d.ts +13 -0
  513. package/node_modules/table/node_modules/ajv/dist/compile/errors.js +123 -0
  514. package/node_modules/table/node_modules/ajv/dist/compile/errors.js.map +1 -0
  515. package/node_modules/table/node_modules/ajv/dist/compile/index.d.ts +80 -0
  516. package/node_modules/table/node_modules/ajv/dist/compile/index.js +243 -0
  517. package/node_modules/table/node_modules/ajv/dist/compile/index.js.map +1 -0
  518. package/node_modules/table/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
  519. package/node_modules/table/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
  520. package/node_modules/table/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
  521. package/node_modules/table/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
  522. package/node_modules/table/node_modules/ajv/dist/compile/jtd/serialize.js +218 -0
  523. package/node_modules/table/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
  524. package/node_modules/table/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
  525. package/node_modules/table/node_modules/ajv/dist/compile/jtd/types.js +14 -0
  526. package/node_modules/table/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
  527. package/node_modules/table/node_modules/ajv/dist/compile/names.d.ts +20 -0
  528. package/node_modules/table/node_modules/ajv/dist/compile/names.js +28 -0
  529. package/node_modules/table/node_modules/ajv/dist/compile/names.js.map +1 -0
  530. package/node_modules/table/node_modules/ajv/dist/compile/ref_error.d.ts +5 -0
  531. package/node_modules/table/node_modules/ajv/dist/compile/ref_error.js +12 -0
  532. package/node_modules/table/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  533. package/node_modules/table/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
  534. package/node_modules/table/node_modules/ajv/dist/compile/resolve.js +153 -0
  535. package/node_modules/table/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  536. package/node_modules/table/node_modules/ajv/dist/compile/rules.d.ts +28 -0
  537. package/node_modules/table/node_modules/ajv/dist/compile/rules.js +26 -0
  538. package/node_modules/table/node_modules/ajv/dist/compile/rules.js.map +1 -0
  539. package/node_modules/table/node_modules/ajv/dist/compile/util.d.ts +40 -0
  540. package/node_modules/table/node_modules/ajv/dist/compile/util.js +178 -0
  541. package/node_modules/table/node_modules/ajv/dist/compile/util.js.map +1 -0
  542. package/node_modules/table/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
  543. package/node_modules/table/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  544. package/node_modules/table/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  545. package/node_modules/table/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
  546. package/node_modules/table/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  547. package/node_modules/table/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  548. package/node_modules/table/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
  549. package/node_modules/table/node_modules/ajv/dist/compile/validate/dataType.js +202 -0
  550. package/node_modules/table/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  551. package/node_modules/table/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
  552. package/node_modules/table/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  553. package/node_modules/table/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  554. package/node_modules/table/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
  555. package/node_modules/table/node_modules/ajv/dist/compile/validate/index.js +510 -0
  556. package/node_modules/table/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  557. package/node_modules/table/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
  558. package/node_modules/table/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  559. package/node_modules/table/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  560. package/node_modules/table/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
  561. package/node_modules/table/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  562. package/node_modules/table/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  563. package/node_modules/table/node_modules/ajv/dist/core.d.ts +171 -0
  564. package/node_modules/table/node_modules/ajv/dist/core.js +614 -0
  565. package/node_modules/table/node_modules/ajv/dist/core.js.map +1 -0
  566. package/node_modules/table/node_modules/ajv/dist/jtd.d.ts +45 -0
  567. package/node_modules/table/node_modules/ajv/dist/jtd.js +66 -0
  568. package/node_modules/table/node_modules/ajv/dist/jtd.js.map +1 -0
  569. package/node_modules/table/node_modules/ajv/dist/refs/data.json +13 -0
  570. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
  571. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
  572. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
  573. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
  574. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
  575. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
  576. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
  577. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  578. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
  579. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
  580. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
  581. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  582. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
  583. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  584. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  585. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  586. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  587. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  588. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  589. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  590. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  591. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
  592. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  593. package/node_modules/table/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
  594. package/node_modules/table/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
  595. package/node_modules/table/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
  596. package/node_modules/table/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
  597. package/node_modules/table/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
  598. package/node_modules/table/node_modules/ajv/dist/runtime/equal.js +7 -0
  599. package/node_modules/table/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  600. package/node_modules/table/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
  601. package/node_modules/table/node_modules/ajv/dist/runtime/parseJson.js +184 -0
  602. package/node_modules/table/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
  603. package/node_modules/table/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
  604. package/node_modules/table/node_modules/ajv/dist/runtime/quote.js +30 -0
  605. package/node_modules/table/node_modules/ajv/dist/runtime/quote.js.map +1 -0
  606. package/node_modules/table/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
  607. package/node_modules/table/node_modules/ajv/dist/runtime/re2.js +6 -0
  608. package/node_modules/table/node_modules/ajv/dist/runtime/re2.js.map +1 -0
  609. package/node_modules/table/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
  610. package/node_modules/table/node_modules/ajv/dist/runtime/timestamp.js +42 -0
  611. package/node_modules/table/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
  612. package/node_modules/table/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
  613. package/node_modules/table/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  614. package/node_modules/table/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  615. package/node_modules/table/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
  616. package/node_modules/table/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  617. package/node_modules/table/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  618. package/node_modules/table/node_modules/ajv/dist/standalone/index.d.ts +6 -0
  619. package/node_modules/table/node_modules/ajv/dist/standalone/index.js +83 -0
  620. package/node_modules/table/node_modules/ajv/dist/standalone/index.js.map +1 -0
  621. package/node_modules/table/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
  622. package/node_modules/table/node_modules/ajv/dist/standalone/instance.js +35 -0
  623. package/node_modules/table/node_modules/ajv/dist/standalone/instance.js.map +1 -0
  624. package/node_modules/table/node_modules/ajv/dist/types/index.d.ts +177 -0
  625. package/node_modules/table/node_modules/ajv/dist/types/index.js +3 -0
  626. package/node_modules/table/node_modules/ajv/dist/types/index.js.map +1 -0
  627. package/node_modules/table/node_modules/ajv/dist/types/json-schema.d.ts +124 -0
  628. package/node_modules/table/node_modules/ajv/dist/types/json-schema.js +3 -0
  629. package/node_modules/table/node_modules/ajv/dist/types/json-schema.js.map +1 -0
  630. package/node_modules/table/node_modules/ajv/dist/types/jtd-schema.d.ts +168 -0
  631. package/node_modules/table/node_modules/ajv/dist/types/jtd-schema.js +3 -0
  632. package/node_modules/table/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
  633. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
  634. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  635. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  636. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
  637. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  638. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  639. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
  640. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  641. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  642. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
  643. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  644. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  645. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
  646. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  647. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  648. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
  649. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  650. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  651. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
  652. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  653. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
  654. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
  655. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  656. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  657. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
  658. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  659. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  660. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
  661. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  662. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  663. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
  664. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  665. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  666. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
  667. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  668. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  669. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
  670. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  671. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  672. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
  673. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  674. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  675. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
  676. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  677. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  678. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
  679. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  680. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  681. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
  682. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  683. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  684. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
  685. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  686. package/node_modules/table/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  687. package/node_modules/table/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
  688. package/node_modules/table/node_modules/ajv/dist/vocabularies/code.js +131 -0
  689. package/node_modules/table/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  690. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
  691. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  692. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  693. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
  694. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  695. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  696. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
  697. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  698. package/node_modules/table/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  699. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
  700. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.js +93 -0
  701. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  702. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
  703. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  704. package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  705. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
  706. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  707. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
  708. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
  709. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  710. package/node_modules/table/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  711. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
  712. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  713. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
  714. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
  715. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  716. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
  717. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
  718. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  719. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
  720. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
  721. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  722. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
  723. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
  724. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  725. package/node_modules/table/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
  726. package/node_modules/table/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
  727. package/node_modules/table/node_modules/ajv/dist/vocabularies/errors.js +3 -0
  728. package/node_modules/table/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
  729. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
  730. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  731. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  732. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
  733. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  734. package/node_modules/table/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  735. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
  736. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
  737. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
  738. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
  739. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
  740. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
  741. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
  742. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
  743. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
  744. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
  745. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
  746. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
  747. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
  748. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
  749. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
  750. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
  751. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
  752. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
  753. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
  754. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
  755. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
  756. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
  757. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
  758. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
  759. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
  760. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.js +146 -0
  761. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
  762. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
  763. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/ref.js +66 -0
  764. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
  765. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
  766. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
  767. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
  768. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
  769. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
  770. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
  771. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
  772. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.js +48 -0
  773. package/node_modules/table/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
  774. package/node_modules/table/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
  775. package/node_modules/table/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  776. package/node_modules/table/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  777. package/node_modules/table/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
  778. package/node_modules/table/node_modules/ajv/dist/vocabularies/next.js +8 -0
  779. package/node_modules/table/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
  780. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
  781. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  782. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
  783. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
  784. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  785. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
  786. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
  787. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  788. package/node_modules/table/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
  789. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
  790. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  791. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  792. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
  793. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  794. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
  795. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
  796. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/enum.js +47 -0
  797. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  798. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
  799. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  800. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  801. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
  802. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  803. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
  804. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
  805. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  806. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  807. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
  808. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  809. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  810. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
  811. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  812. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  813. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
  814. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  815. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  816. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
  817. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  818. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  819. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
  820. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
  821. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  822. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
  823. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  824. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  825. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
  826. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  827. package/node_modules/table/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  828. package/node_modules/table/node_modules/ajv/lib/2019.ts +78 -0
  829. package/node_modules/table/node_modules/ajv/lib/2020.ts +72 -0
  830. package/node_modules/table/node_modules/ajv/lib/ajv.ts +67 -0
  831. package/node_modules/table/node_modules/ajv/lib/compile/codegen/code.ts +160 -0
  832. package/node_modules/table/node_modules/ajv/lib/compile/codegen/index.ts +832 -0
  833. package/node_modules/table/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
  834. package/node_modules/table/node_modules/ajv/lib/compile/errors.ts +184 -0
  835. package/node_modules/table/node_modules/ajv/lib/compile/index.ts +324 -0
  836. package/node_modules/table/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
  837. package/node_modules/table/node_modules/ajv/lib/compile/jtd/serialize.ts +260 -0
  838. package/node_modules/table/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
  839. package/node_modules/table/node_modules/ajv/lib/compile/names.ts +27 -0
  840. package/node_modules/table/node_modules/ajv/lib/compile/ref_error.ts +12 -0
  841. package/node_modules/table/node_modules/ajv/lib/compile/resolve.ts +146 -0
  842. package/node_modules/table/node_modules/ajv/lib/compile/rules.ts +50 -0
  843. package/node_modules/table/node_modules/ajv/lib/compile/util.ts +213 -0
  844. package/node_modules/table/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
  845. package/node_modules/table/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
  846. package/node_modules/table/node_modules/ajv/lib/compile/validate/dataType.ts +229 -0
  847. package/node_modules/table/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
  848. package/node_modules/table/node_modules/ajv/lib/compile/validate/index.ts +573 -0
  849. package/node_modules/table/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
  850. package/node_modules/table/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
  851. package/node_modules/table/node_modules/ajv/lib/core.ts +880 -0
  852. package/node_modules/table/node_modules/ajv/lib/jtd.ts +129 -0
  853. package/node_modules/table/node_modules/ajv/lib/refs/data.json +13 -0
  854. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
  855. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
  856. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
  857. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
  858. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
  859. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
  860. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
  861. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
  862. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
  863. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
  864. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
  865. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
  866. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  867. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  868. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  869. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
  870. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
  871. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
  872. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
  873. package/node_modules/table/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
  874. package/node_modules/table/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
  875. package/node_modules/table/node_modules/ajv/lib/runtime/equal.ts +7 -0
  876. package/node_modules/table/node_modules/ajv/lib/runtime/parseJson.ts +176 -0
  877. package/node_modules/table/node_modules/ajv/lib/runtime/quote.ts +31 -0
  878. package/node_modules/table/node_modules/ajv/lib/runtime/re2.ts +6 -0
  879. package/node_modules/table/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
  880. package/node_modules/table/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
  881. package/node_modules/table/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
  882. package/node_modules/table/node_modules/ajv/lib/standalone/index.ts +93 -0
  883. package/node_modules/table/node_modules/ajv/lib/standalone/instance.ts +36 -0
  884. package/node_modules/table/node_modules/ajv/lib/types/index.ts +233 -0
  885. package/node_modules/table/node_modules/ajv/lib/types/json-schema.ts +189 -0
  886. package/node_modules/table/node_modules/ajv/lib/types/jtd-schema.ts +264 -0
  887. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
  888. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
  889. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
  890. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
  891. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
  892. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
  893. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
  894. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
  895. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
  896. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
  897. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
  898. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
  899. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
  900. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
  901. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
  902. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
  903. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
  904. package/node_modules/table/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
  905. package/node_modules/table/node_modules/ajv/lib/vocabularies/code.ts +168 -0
  906. package/node_modules/table/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
  907. package/node_modules/table/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
  908. package/node_modules/table/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
  909. package/node_modules/table/node_modules/ajv/lib/vocabularies/discriminator/index.ts +102 -0
  910. package/node_modules/table/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
  911. package/node_modules/table/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
  912. package/node_modules/table/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
  913. package/node_modules/table/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
  914. package/node_modules/table/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
  915. package/node_modules/table/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
  916. package/node_modules/table/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
  917. package/node_modules/table/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
  918. package/node_modules/table/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
  919. package/node_modules/table/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
  920. package/node_modules/table/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
  921. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
  922. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
  923. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
  924. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
  925. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
  926. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
  927. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
  928. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
  929. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/properties.ts +177 -0
  930. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/ref.ts +74 -0
  931. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
  932. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
  933. package/node_modules/table/node_modules/ajv/lib/vocabularies/jtd/values.ts +55 -0
  934. package/node_modules/table/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
  935. package/node_modules/table/node_modules/ajv/lib/vocabularies/next.ts +8 -0
  936. package/node_modules/table/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
  937. package/node_modules/table/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
  938. package/node_modules/table/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
  939. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
  940. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
  941. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/enum.ts +52 -0
  942. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
  943. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
  944. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
  945. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
  946. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
  947. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
  948. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
  949. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/pattern.ts +28 -0
  950. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
  951. package/node_modules/table/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
  952. package/node_modules/table/node_modules/ajv/package.json +124 -0
  953. package/node_modules/table/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  954. package/node_modules/table/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
  955. package/node_modules/table/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
  956. package/node_modules/table/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
  957. package/node_modules/table/node_modules/json-schema-traverse/LICENSE +21 -0
  958. package/node_modules/table/node_modules/json-schema-traverse/README.md +95 -0
  959. package/node_modules/table/node_modules/json-schema-traverse/index.d.ts +40 -0
  960. package/node_modules/table/node_modules/json-schema-traverse/index.js +93 -0
  961. package/node_modules/table/node_modules/json-schema-traverse/package.json +43 -0
  962. package/node_modules/table/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  963. package/node_modules/table/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  964. package/node_modules/table/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  965. package/node_modules/table/package.json +78 -0
  966. package/node_modules/universalify/LICENSE +20 -0
  967. package/node_modules/universalify/README.md +76 -0
  968. package/node_modules/universalify/index.js +24 -0
  969. package/node_modules/universalify/package.json +34 -0
  970. package/node_modules/uri-js/LICENSE +11 -0
  971. package/node_modules/uri-js/README.md +203 -0
  972. package/node_modules/uri-js/dist/es5/uri.all.d.ts +59 -0
  973. package/node_modules/uri-js/dist/es5/uri.all.js +1443 -0
  974. package/node_modules/uri-js/dist/es5/uri.all.js.map +1 -0
  975. package/node_modules/uri-js/dist/es5/uri.all.min.d.ts +59 -0
  976. package/node_modules/uri-js/dist/es5/uri.all.min.js +3 -0
  977. package/node_modules/uri-js/dist/es5/uri.all.min.js.map +1 -0
  978. package/node_modules/uri-js/dist/esnext/index.d.ts +1 -0
  979. package/node_modules/uri-js/dist/esnext/index.js +17 -0
  980. package/node_modules/uri-js/dist/esnext/index.js.map +1 -0
  981. package/node_modules/uri-js/dist/esnext/regexps-iri.d.ts +3 -0
  982. package/node_modules/uri-js/dist/esnext/regexps-iri.js +3 -0
  983. package/node_modules/uri-js/dist/esnext/regexps-iri.js.map +1 -0
  984. package/node_modules/uri-js/dist/esnext/regexps-uri.d.ts +4 -0
  985. package/node_modules/uri-js/dist/esnext/regexps-uri.js +42 -0
  986. package/node_modules/uri-js/dist/esnext/regexps-uri.js.map +1 -0
  987. package/node_modules/uri-js/dist/esnext/schemes/http.d.ts +3 -0
  988. package/node_modules/uri-js/dist/esnext/schemes/http.js +28 -0
  989. package/node_modules/uri-js/dist/esnext/schemes/http.js.map +1 -0
  990. package/node_modules/uri-js/dist/esnext/schemes/https.d.ts +3 -0
  991. package/node_modules/uri-js/dist/esnext/schemes/https.js +9 -0
  992. package/node_modules/uri-js/dist/esnext/schemes/https.js.map +1 -0
  993. package/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts +12 -0
  994. package/node_modules/uri-js/dist/esnext/schemes/mailto.js +148 -0
  995. package/node_modules/uri-js/dist/esnext/schemes/mailto.js.map +1 -0
  996. package/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts +7 -0
  997. package/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js +23 -0
  998. package/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map +1 -0
  999. package/node_modules/uri-js/dist/esnext/schemes/urn.d.ts +10 -0
  1000. package/node_modules/uri-js/dist/esnext/schemes/urn.js +49 -0
  1001. package/node_modules/uri-js/dist/esnext/schemes/urn.js.map +1 -0
  1002. package/node_modules/uri-js/dist/esnext/schemes/ws.d.ts +7 -0
  1003. package/node_modules/uri-js/dist/esnext/schemes/ws.js +41 -0
  1004. package/node_modules/uri-js/dist/esnext/schemes/ws.js.map +1 -0
  1005. package/node_modules/uri-js/dist/esnext/schemes/wss.d.ts +3 -0
  1006. package/node_modules/uri-js/dist/esnext/schemes/wss.js +9 -0
  1007. package/node_modules/uri-js/dist/esnext/schemes/wss.js.map +1 -0
  1008. package/node_modules/uri-js/dist/esnext/uri.d.ts +59 -0
  1009. package/node_modules/uri-js/dist/esnext/uri.js +480 -0
  1010. package/node_modules/uri-js/dist/esnext/uri.js.map +1 -0
  1011. package/node_modules/uri-js/dist/esnext/util.d.ts +6 -0
  1012. package/node_modules/uri-js/dist/esnext/util.js +36 -0
  1013. package/node_modules/uri-js/dist/esnext/util.js.map +1 -0
  1014. package/node_modules/uri-js/package.json +77 -0
  1015. package/node_modules/uri-js/yarn.lock +2558 -0
  1016. package/package.json +8 -14
@@ -0,0 +1,832 @@
1
+ import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from "./scope"
2
+ import {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from "./code"
3
+ import {Scope, varKinds} from "./scope"
4
+
5
+ export {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from "./code"
6
+ export {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from "./scope"
7
+
8
+ // type for expressions that can be safely inserted in code without quotes
9
+ export type SafeExpr = Code | number | boolean | null
10
+
11
+ // type that is either Code of function that adds code to CodeGen instance using its methods
12
+ export type Block = Code | (() => void)
13
+
14
+ export const operators = {
15
+ GT: new _Code(">"),
16
+ GTE: new _Code(">="),
17
+ LT: new _Code("<"),
18
+ LTE: new _Code("<="),
19
+ EQ: new _Code("==="),
20
+ NEQ: new _Code("!=="),
21
+ NOT: new _Code("!"),
22
+ OR: new _Code("||"),
23
+ AND: new _Code("&&"),
24
+ ADD: new _Code("+"),
25
+ }
26
+
27
+ abstract class Node {
28
+ abstract readonly names: UsedNames
29
+
30
+ optimizeNodes(): this | ChildNode | ChildNode[] | undefined {
31
+ return this
32
+ }
33
+
34
+ optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {
35
+ return this
36
+ }
37
+
38
+ // get count(): number {
39
+ // return 1
40
+ // }
41
+ }
42
+
43
+ class Def extends Node {
44
+ constructor(private readonly varKind: Name, private readonly name: Name, private rhs?: SafeExpr) {
45
+ super()
46
+ }
47
+
48
+ render({es5, _n}: CGOptions): string {
49
+ const varKind = es5 ? varKinds.var : this.varKind
50
+ const rhs = this.rhs === undefined ? "" : ` = ${this.rhs}`
51
+ return `${varKind} ${this.name}${rhs};` + _n
52
+ }
53
+
54
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
55
+ if (!names[this.name.str]) return
56
+ if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)
57
+ return this
58
+ }
59
+
60
+ get names(): UsedNames {
61
+ return this.rhs instanceof _CodeOrName ? this.rhs.names : {}
62
+ }
63
+ }
64
+
65
+ class Assign extends Node {
66
+ constructor(readonly lhs: Code, public rhs: SafeExpr, private readonly sideEffects?: boolean) {
67
+ super()
68
+ }
69
+
70
+ render({_n}: CGOptions): string {
71
+ return `${this.lhs} = ${this.rhs};` + _n
72
+ }
73
+
74
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
75
+ if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return
76
+ this.rhs = optimizeExpr(this.rhs, names, constants)
77
+ return this
78
+ }
79
+
80
+ get names(): UsedNames {
81
+ const names = this.lhs instanceof Name ? {} : {...this.lhs.names}
82
+ return addExprNames(names, this.rhs)
83
+ }
84
+ }
85
+
86
+ class AssignOp extends Assign {
87
+ constructor(lhs: Code, private readonly op: Code, rhs: SafeExpr, sideEffects?: boolean) {
88
+ super(lhs, rhs, sideEffects)
89
+ }
90
+
91
+ render({_n}: CGOptions): string {
92
+ return `${this.lhs} ${this.op}= ${this.rhs};` + _n
93
+ }
94
+ }
95
+
96
+ class Label extends Node {
97
+ readonly names: UsedNames = {}
98
+ constructor(readonly label: Name) {
99
+ super()
100
+ }
101
+
102
+ render({_n}: CGOptions): string {
103
+ return `${this.label}:` + _n
104
+ }
105
+ }
106
+
107
+ class Break extends Node {
108
+ readonly names: UsedNames = {}
109
+ constructor(readonly label?: Code) {
110
+ super()
111
+ }
112
+
113
+ render({_n}: CGOptions): string {
114
+ const label = this.label ? ` ${this.label}` : ""
115
+ return `break${label};` + _n
116
+ }
117
+ }
118
+
119
+ class Throw extends Node {
120
+ constructor(readonly error: Code) {
121
+ super()
122
+ }
123
+
124
+ render({_n}: CGOptions): string {
125
+ return `throw ${this.error};` + _n
126
+ }
127
+
128
+ get names(): UsedNames {
129
+ return this.error.names
130
+ }
131
+ }
132
+
133
+ class AnyCode extends Node {
134
+ constructor(private code: SafeExpr) {
135
+ super()
136
+ }
137
+
138
+ render({_n}: CGOptions): string {
139
+ return `${this.code};` + _n
140
+ }
141
+
142
+ optimizeNodes(): this | undefined {
143
+ return `${this.code}` ? this : undefined
144
+ }
145
+
146
+ optimizeNames(names: UsedNames, constants: Constants): this {
147
+ this.code = optimizeExpr(this.code, names, constants)
148
+ return this
149
+ }
150
+
151
+ get names(): UsedNames {
152
+ return this.code instanceof _CodeOrName ? this.code.names : {}
153
+ }
154
+ }
155
+
156
+ abstract class ParentNode extends Node {
157
+ constructor(readonly nodes: ChildNode[] = []) {
158
+ super()
159
+ }
160
+
161
+ render(opts: CGOptions): string {
162
+ return this.nodes.reduce((code, n) => code + n.render(opts), "")
163
+ }
164
+
165
+ optimizeNodes(): this | ChildNode | ChildNode[] | undefined {
166
+ const {nodes} = this
167
+ let i = nodes.length
168
+ while (i--) {
169
+ const n = nodes[i].optimizeNodes()
170
+ if (Array.isArray(n)) nodes.splice(i, 1, ...n)
171
+ else if (n) nodes[i] = n
172
+ else nodes.splice(i, 1)
173
+ }
174
+ return nodes.length > 0 ? this : undefined
175
+ }
176
+
177
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
178
+ const {nodes} = this
179
+ let i = nodes.length
180
+ while (i--) {
181
+ // iterating backwards improves 1-pass optimization
182
+ const n = nodes[i]
183
+ if (n.optimizeNames(names, constants)) continue
184
+ subtractNames(names, n.names)
185
+ nodes.splice(i, 1)
186
+ }
187
+ return nodes.length > 0 ? this : undefined
188
+ }
189
+
190
+ get names(): UsedNames {
191
+ return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})
192
+ }
193
+
194
+ // get count(): number {
195
+ // return this.nodes.reduce((c, n) => c + n.count, 1)
196
+ // }
197
+ }
198
+
199
+ abstract class BlockNode extends ParentNode {
200
+ render(opts: CGOptions): string {
201
+ return "{" + opts._n + super.render(opts) + "}" + opts._n
202
+ }
203
+ }
204
+
205
+ class Root extends ParentNode {}
206
+
207
+ class Else extends BlockNode {
208
+ static readonly kind = "else"
209
+ }
210
+
211
+ class If extends BlockNode {
212
+ static readonly kind = "if"
213
+ else?: If | Else
214
+ constructor(private condition: Code | boolean, nodes?: ChildNode[]) {
215
+ super(nodes)
216
+ }
217
+
218
+ render(opts: CGOptions): string {
219
+ let code = `if(${this.condition})` + super.render(opts)
220
+ if (this.else) code += "else " + this.else.render(opts)
221
+ return code
222
+ }
223
+
224
+ optimizeNodes(): If | ChildNode[] | undefined {
225
+ super.optimizeNodes()
226
+ const cond = this.condition
227
+ if (cond === true) return this.nodes // else is ignored here
228
+ let e = this.else
229
+ if (e) {
230
+ const ns = e.optimizeNodes()
231
+ e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)
232
+ }
233
+ if (e) {
234
+ if (cond === false) return e instanceof If ? e : e.nodes
235
+ if (this.nodes.length) return this
236
+ return new If(not(cond), e instanceof If ? [e] : e.nodes)
237
+ }
238
+ if (cond === false || !this.nodes.length) return undefined
239
+ return this
240
+ }
241
+
242
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
243
+ this.else = this.else?.optimizeNames(names, constants)
244
+ if (!(super.optimizeNames(names, constants) || this.else)) return
245
+ this.condition = optimizeExpr(this.condition, names, constants)
246
+ return this
247
+ }
248
+
249
+ get names(): UsedNames {
250
+ const names = super.names
251
+ addExprNames(names, this.condition)
252
+ if (this.else) addNames(names, this.else.names)
253
+ return names
254
+ }
255
+
256
+ // get count(): number {
257
+ // return super.count + (this.else?.count || 0)
258
+ // }
259
+ }
260
+
261
+ abstract class For extends BlockNode {
262
+ static readonly kind = "for"
263
+ }
264
+
265
+ class ForLoop extends For {
266
+ constructor(private iteration: Code) {
267
+ super()
268
+ }
269
+
270
+ render(opts: CGOptions): string {
271
+ return `for(${this.iteration})` + super.render(opts)
272
+ }
273
+
274
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
275
+ if (!super.optimizeNames(names, constants)) return
276
+ this.iteration = optimizeExpr(this.iteration, names, constants)
277
+ return this
278
+ }
279
+
280
+ get names(): UsedNames {
281
+ return addNames(super.names, this.iteration.names)
282
+ }
283
+ }
284
+
285
+ class ForRange extends For {
286
+ constructor(
287
+ private readonly varKind: Name,
288
+ private readonly name: Name,
289
+ private readonly from: SafeExpr,
290
+ private readonly to: SafeExpr
291
+ ) {
292
+ super()
293
+ }
294
+
295
+ render(opts: CGOptions): string {
296
+ const varKind = opts.es5 ? varKinds.var : this.varKind
297
+ const {name, from, to} = this
298
+ return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)
299
+ }
300
+
301
+ get names(): UsedNames {
302
+ const names = addExprNames(super.names, this.from)
303
+ return addExprNames(names, this.to)
304
+ }
305
+ }
306
+
307
+ class ForIter extends For {
308
+ constructor(
309
+ private readonly loop: "of" | "in",
310
+ private readonly varKind: Name,
311
+ private readonly name: Name,
312
+ private iterable: Code
313
+ ) {
314
+ super()
315
+ }
316
+
317
+ render(opts: CGOptions): string {
318
+ return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)
319
+ }
320
+
321
+ optimizeNames(names: UsedNames, constants: Constants): this | undefined {
322
+ if (!super.optimizeNames(names, constants)) return
323
+ this.iterable = optimizeExpr(this.iterable, names, constants)
324
+ return this
325
+ }
326
+
327
+ get names(): UsedNames {
328
+ return addNames(super.names, this.iterable.names)
329
+ }
330
+ }
331
+
332
+ class Func extends BlockNode {
333
+ static readonly kind = "func"
334
+ constructor(public name: Name, public args: Code, public async?: boolean) {
335
+ super()
336
+ }
337
+
338
+ render(opts: CGOptions): string {
339
+ const _async = this.async ? "async " : ""
340
+ return `${_async}function ${this.name}(${this.args})` + super.render(opts)
341
+ }
342
+ }
343
+
344
+ class Return extends ParentNode {
345
+ static readonly kind = "return"
346
+
347
+ render(opts: CGOptions): string {
348
+ return "return " + super.render(opts)
349
+ }
350
+ }
351
+
352
+ class Try extends BlockNode {
353
+ catch?: Catch
354
+ finally?: Finally
355
+
356
+ render(opts: CGOptions): string {
357
+ let code = "try" + super.render(opts)
358
+ if (this.catch) code += this.catch.render(opts)
359
+ if (this.finally) code += this.finally.render(opts)
360
+ return code
361
+ }
362
+
363
+ optimizeNodes(): this {
364
+ super.optimizeNodes()
365
+ this.catch?.optimizeNodes() as Catch | undefined
366
+ this.finally?.optimizeNodes() as Finally | undefined
367
+ return this
368
+ }
369
+
370
+ optimizeNames(names: UsedNames, constants: Constants): this {
371
+ super.optimizeNames(names, constants)
372
+ this.catch?.optimizeNames(names, constants)
373
+ this.finally?.optimizeNames(names, constants)
374
+ return this
375
+ }
376
+
377
+ get names(): UsedNames {
378
+ const names = super.names
379
+ if (this.catch) addNames(names, this.catch.names)
380
+ if (this.finally) addNames(names, this.finally.names)
381
+ return names
382
+ }
383
+
384
+ // get count(): number {
385
+ // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)
386
+ // }
387
+ }
388
+
389
+ class Catch extends BlockNode {
390
+ static readonly kind = "catch"
391
+ constructor(readonly error: Name) {
392
+ super()
393
+ }
394
+
395
+ render(opts: CGOptions): string {
396
+ return `catch(${this.error})` + super.render(opts)
397
+ }
398
+ }
399
+
400
+ class Finally extends BlockNode {
401
+ static readonly kind = "finally"
402
+ render(opts: CGOptions): string {
403
+ return "finally" + super.render(opts)
404
+ }
405
+ }
406
+
407
+ type StartBlockNode = If | For | Func | Return | Try
408
+
409
+ type LeafNode = Def | Assign | Label | Break | Throw | AnyCode
410
+
411
+ type ChildNode = StartBlockNode | LeafNode
412
+
413
+ type EndBlockNodeType =
414
+ | typeof If
415
+ | typeof Else
416
+ | typeof For
417
+ | typeof Func
418
+ | typeof Return
419
+ | typeof Catch
420
+ | typeof Finally
421
+
422
+ type Constants = Record<string, SafeExpr | undefined>
423
+
424
+ export interface CodeGenOptions {
425
+ es5?: boolean
426
+ lines?: boolean
427
+ ownProperties?: boolean
428
+ }
429
+
430
+ interface CGOptions extends CodeGenOptions {
431
+ _n: "\n" | ""
432
+ }
433
+
434
+ export class CodeGen {
435
+ readonly _scope: Scope
436
+ readonly _extScope: ValueScope
437
+ readonly _values: ScopeValueSets = {}
438
+ private readonly _nodes: ParentNode[]
439
+ private readonly _blockStarts: number[] = []
440
+ private readonly _constants: Constants = {}
441
+ private readonly opts: CGOptions
442
+
443
+ constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {
444
+ this.opts = {...opts, _n: opts.lines ? "\n" : ""}
445
+ this._extScope = extScope
446
+ this._scope = new Scope({parent: extScope})
447
+ this._nodes = [new Root()]
448
+ }
449
+
450
+ toString(): string {
451
+ return this._root.render(this.opts)
452
+ }
453
+
454
+ // returns unique name in the internal scope
455
+ name(prefix: string): Name {
456
+ return this._scope.name(prefix)
457
+ }
458
+
459
+ // reserves unique name in the external scope
460
+ scopeName(prefix: string): ValueScopeName {
461
+ return this._extScope.name(prefix)
462
+ }
463
+
464
+ // reserves unique name in the external scope and assigns value to it
465
+ scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {
466
+ const name = this._extScope.value(prefixOrName, value)
467
+ const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())
468
+ vs.add(name)
469
+ return name
470
+ }
471
+
472
+ getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {
473
+ return this._extScope.getValue(prefix, keyOrRef)
474
+ }
475
+
476
+ // return code that assigns values in the external scope to the names that are used internally
477
+ // (same names that were returned by gen.scopeName or gen.scopeValue)
478
+ scopeRefs(scopeName: Name): Code {
479
+ return this._extScope.scopeRefs(scopeName, this._values)
480
+ }
481
+
482
+ scopeCode(): Code {
483
+ return this._extScope.scopeCode(this._values)
484
+ }
485
+
486
+ private _def(
487
+ varKind: Name,
488
+ nameOrPrefix: Name | string,
489
+ rhs?: SafeExpr,
490
+ constant?: boolean
491
+ ): Name {
492
+ const name = this._scope.toName(nameOrPrefix)
493
+ if (rhs !== undefined && constant) this._constants[name.str] = rhs
494
+ this._leafNode(new Def(varKind, name, rhs))
495
+ return name
496
+ }
497
+
498
+ // `const` declaration (`var` in es5 mode)
499
+ const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {
500
+ return this._def(varKinds.const, nameOrPrefix, rhs, _constant)
501
+ }
502
+
503
+ // `let` declaration with optional assignment (`var` in es5 mode)
504
+ let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {
505
+ return this._def(varKinds.let, nameOrPrefix, rhs, _constant)
506
+ }
507
+
508
+ // `var` declaration with optional assignment
509
+ var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {
510
+ return this._def(varKinds.var, nameOrPrefix, rhs, _constant)
511
+ }
512
+
513
+ // assignment code
514
+ assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {
515
+ return this._leafNode(new Assign(lhs, rhs, sideEffects))
516
+ }
517
+
518
+ // `+=` code
519
+ add(lhs: Code, rhs: SafeExpr): CodeGen {
520
+ return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))
521
+ }
522
+
523
+ // appends passed SafeExpr to code or executes Block
524
+ code(c: Block | SafeExpr): CodeGen {
525
+ if (typeof c == "function") c()
526
+ else if (c !== nil) this._leafNode(new AnyCode(c))
527
+ return this
528
+ }
529
+
530
+ // returns code for object literal for the passed argument list of key-value pairs
531
+ object(...keyValues: [Name | string, SafeExpr | string][]): _Code {
532
+ const code: CodeItem[] = ["{"]
533
+ for (const [key, value] of keyValues) {
534
+ if (code.length > 1) code.push(",")
535
+ code.push(key)
536
+ if (key !== value || this.opts.es5) {
537
+ code.push(":")
538
+ addCodeArg(code, value)
539
+ }
540
+ }
541
+ code.push("}")
542
+ return new _Code(code)
543
+ }
544
+
545
+ // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)
546
+ if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {
547
+ this._blockNode(new If(condition))
548
+
549
+ if (thenBody && elseBody) {
550
+ this.code(thenBody).else().code(elseBody).endIf()
551
+ } else if (thenBody) {
552
+ this.code(thenBody).endIf()
553
+ } else if (elseBody) {
554
+ throw new Error('CodeGen: "else" body without "then" body')
555
+ }
556
+ return this
557
+ }
558
+
559
+ // `else if` clause - invalid without `if` or after `else` clauses
560
+ elseIf(condition: Code | boolean): CodeGen {
561
+ return this._elseNode(new If(condition))
562
+ }
563
+
564
+ // `else` clause - only valid after `if` or `else if` clauses
565
+ else(): CodeGen {
566
+ return this._elseNode(new Else())
567
+ }
568
+
569
+ // end `if` statement (needed if gen.if was used only with condition)
570
+ endIf(): CodeGen {
571
+ return this._endBlockNode(If, Else)
572
+ }
573
+
574
+ private _for(node: For, forBody?: Block): CodeGen {
575
+ this._blockNode(node)
576
+ if (forBody) this.code(forBody).endFor()
577
+ return this
578
+ }
579
+
580
+ // a generic `for` clause (or statement if `forBody` is passed)
581
+ for(iteration: Code, forBody?: Block): CodeGen {
582
+ return this._for(new ForLoop(iteration), forBody)
583
+ }
584
+
585
+ // `for` statement for a range of values
586
+ forRange(
587
+ nameOrPrefix: Name | string,
588
+ from: SafeExpr,
589
+ to: SafeExpr,
590
+ forBody: (index: Name) => void,
591
+ varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let
592
+ ): CodeGen {
593
+ const name = this._scope.toName(nameOrPrefix)
594
+ return this._for(new ForRange(varKind, name, from, to), () => forBody(name))
595
+ }
596
+
597
+ // `for-of` statement (in es5 mode replace with a normal for loop)
598
+ forOf(
599
+ nameOrPrefix: Name | string,
600
+ iterable: Code,
601
+ forBody: (item: Name) => void,
602
+ varKind: Code = varKinds.const
603
+ ): CodeGen {
604
+ const name = this._scope.toName(nameOrPrefix)
605
+ if (this.opts.es5) {
606
+ const arr = iterable instanceof Name ? iterable : this.var("_arr", iterable)
607
+ return this.forRange("_i", 0, _`${arr}.length`, (i) => {
608
+ this.var(name, _`${arr}[${i}]`)
609
+ forBody(name)
610
+ })
611
+ }
612
+ return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name))
613
+ }
614
+
615
+ // `for-in` statement.
616
+ // With option `ownProperties` replaced with a `for-of` loop for object keys
617
+ forIn(
618
+ nameOrPrefix: Name | string,
619
+ obj: Code,
620
+ forBody: (item: Name) => void,
621
+ varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const
622
+ ): CodeGen {
623
+ if (this.opts.ownProperties) {
624
+ return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)
625
+ }
626
+ const name = this._scope.toName(nameOrPrefix)
627
+ return this._for(new ForIter("in", varKind, name, obj), () => forBody(name))
628
+ }
629
+
630
+ // end `for` loop
631
+ endFor(): CodeGen {
632
+ return this._endBlockNode(For)
633
+ }
634
+
635
+ // `label` statement
636
+ label(label: Name): CodeGen {
637
+ return this._leafNode(new Label(label))
638
+ }
639
+
640
+ // `break` statement
641
+ break(label?: Code): CodeGen {
642
+ return this._leafNode(new Break(label))
643
+ }
644
+
645
+ // `return` statement
646
+ return(value: Block | SafeExpr): CodeGen {
647
+ const node = new Return()
648
+ this._blockNode(node)
649
+ this.code(value)
650
+ if (node.nodes.length !== 1) throw new Error('CodeGen: "return" should have one node')
651
+ return this._endBlockNode(Return)
652
+ }
653
+
654
+ // `try` statement
655
+ try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {
656
+ if (!catchCode && !finallyCode) throw new Error('CodeGen: "try" without "catch" and "finally"')
657
+ const node = new Try()
658
+ this._blockNode(node)
659
+ this.code(tryBody)
660
+ if (catchCode) {
661
+ const error = this.name("e")
662
+ this._currNode = node.catch = new Catch(error)
663
+ catchCode(error)
664
+ }
665
+ if (finallyCode) {
666
+ this._currNode = node.finally = new Finally()
667
+ this.code(finallyCode)
668
+ }
669
+ return this._endBlockNode(Catch, Finally)
670
+ }
671
+
672
+ // `throw` statement
673
+ throw(error: Code): CodeGen {
674
+ return this._leafNode(new Throw(error))
675
+ }
676
+
677
+ // start self-balancing block
678
+ block(body?: Block, nodeCount?: number): CodeGen {
679
+ this._blockStarts.push(this._nodes.length)
680
+ if (body) this.code(body).endBlock(nodeCount)
681
+ return this
682
+ }
683
+
684
+ // end the current self-balancing block
685
+ endBlock(nodeCount?: number): CodeGen {
686
+ const len = this._blockStarts.pop()
687
+ if (len === undefined) throw new Error("CodeGen: not in self-balancing block")
688
+ const toClose = this._nodes.length - len
689
+ if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {
690
+ throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)
691
+ }
692
+ this._nodes.length = len
693
+ return this
694
+ }
695
+
696
+ // `function` heading (or definition if funcBody is passed)
697
+ func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {
698
+ this._blockNode(new Func(name, args, async))
699
+ if (funcBody) this.code(funcBody).endFunc()
700
+ return this
701
+ }
702
+
703
+ // end function definition
704
+ endFunc(): CodeGen {
705
+ return this._endBlockNode(Func)
706
+ }
707
+
708
+ optimize(n = 1): void {
709
+ while (n-- > 0) {
710
+ this._root.optimizeNodes()
711
+ this._root.optimizeNames(this._root.names, this._constants)
712
+ }
713
+ }
714
+
715
+ private _leafNode(node: LeafNode): CodeGen {
716
+ this._currNode.nodes.push(node)
717
+ return this
718
+ }
719
+
720
+ private _blockNode(node: StartBlockNode): void {
721
+ this._currNode.nodes.push(node)
722
+ this._nodes.push(node)
723
+ }
724
+
725
+ private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {
726
+ const n = this._currNode
727
+ if (n instanceof N1 || (N2 && n instanceof N2)) {
728
+ this._nodes.pop()
729
+ return this
730
+ }
731
+ throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`)
732
+ }
733
+
734
+ private _elseNode(node: If | Else): CodeGen {
735
+ const n = this._currNode
736
+ if (!(n instanceof If)) {
737
+ throw new Error('CodeGen: "else" without "if"')
738
+ }
739
+ this._currNode = n.else = node
740
+ return this
741
+ }
742
+
743
+ private get _root(): Root {
744
+ return this._nodes[0] as Root
745
+ }
746
+
747
+ private get _currNode(): ParentNode {
748
+ const ns = this._nodes
749
+ return ns[ns.length - 1]
750
+ }
751
+
752
+ private set _currNode(node: ParentNode) {
753
+ const ns = this._nodes
754
+ ns[ns.length - 1] = node
755
+ }
756
+
757
+ // get nodeCount(): number {
758
+ // return this._root.count
759
+ // }
760
+ }
761
+
762
+ function addNames(names: UsedNames, from: UsedNames): UsedNames {
763
+ for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)
764
+ return names
765
+ }
766
+
767
+ function addExprNames(names: UsedNames, from: SafeExpr): UsedNames {
768
+ return from instanceof _CodeOrName ? addNames(names, from.names) : names
769
+ }
770
+
771
+ function optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T
772
+ function optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {
773
+ if (expr instanceof Name) return replaceName(expr)
774
+ if (!canOptimize(expr)) return expr
775
+ return new _Code(
776
+ expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {
777
+ if (c instanceof Name) c = replaceName(c)
778
+ if (c instanceof _Code) items.push(...c._items)
779
+ else items.push(c)
780
+ return items
781
+ }, [])
782
+ )
783
+
784
+ function replaceName(n: Name): SafeExpr {
785
+ const c = constants[n.str]
786
+ if (c === undefined || names[n.str] !== 1) return n
787
+ delete names[n.str]
788
+ return c
789
+ }
790
+
791
+ function canOptimize(e: SafeExpr): e is _Code {
792
+ return (
793
+ e instanceof _Code &&
794
+ e._items.some(
795
+ (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined
796
+ )
797
+ )
798
+ }
799
+ }
800
+
801
+ function subtractNames(names: UsedNames, from: UsedNames): void {
802
+ for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)
803
+ }
804
+
805
+ export function not<T extends Code | SafeExpr>(x: T): T
806
+ export function not(x: Code | SafeExpr): Code | SafeExpr {
807
+ return typeof x == "boolean" || typeof x == "number" || x === null ? !x : _`!${par(x)}`
808
+ }
809
+
810
+ const andCode = mappend(operators.AND)
811
+
812
+ // boolean AND (&&) expression with the passed arguments
813
+ export function and(...args: Code[]): Code {
814
+ return args.reduce(andCode)
815
+ }
816
+
817
+ const orCode = mappend(operators.OR)
818
+
819
+ // boolean OR (||) expression with the passed arguments
820
+ export function or(...args: Code[]): Code {
821
+ return args.reduce(orCode)
822
+ }
823
+
824
+ type MAppend = (x: Code, y: Code) => Code
825
+
826
+ function mappend(op: Code): MAppend {
827
+ return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)
828
+ }
829
+
830
+ function par(x: Code): Code {
831
+ return x instanceof Name ? x : _`(${x})`
832
+ }