├── .github └── dependabot.yml ├── .gitignore ├── .prettierignore ├── .vscode └── settings.json ├── .yarn ├── cache │ ├── @discoveryjs-json-ext-npm-0.5.7-fe04af1f31-2176d301cc.zip │ ├── @fortawesome-fontawesome-free-npm-5.15.4-7752dc20e0-32281c3df4.zip │ ├── @jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip │ ├── @jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip │ ├── @jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip │ ├── @jridgewell-source-map-npm-0.3.3-eb138f3f67-ae13021463.zip │ ├── @jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip │ ├── @jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip │ ├── @jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip │ ├── @nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip │ ├── @nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip │ ├── @nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip │ ├── @types-codemirror-npm-5.60.7-21ef8b18ac-0312ce032e.zip │ ├── @types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip │ ├── @types-json-schema-npm-7.0.11-79462ae5ca-527bddfe62.zip │ ├── @types-node-npm-18.11.19-dd4a5b3ed6-d7cd19fcfc.zip │ ├── @types-node-npm-20.2.3-0289426dd1-576065e8fc.zip │ ├── @types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip │ ├── @types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip │ ├── @types-source-list-map-npm-0.1.2-1983e10da7-fda8f37537.zip │ ├── @types-tern-npm-0.23.4-9168cf1c58-d8fd304f14.zip │ ├── @types-webpack-sources-npm-0.1.9-a1459d6944-bc09c584c7.zip │ ├── @webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip │ ├── @webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip │ ├── @webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip │ ├── @webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip │ ├── @webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip │ ├── @webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip │ ├── @webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip │ ├── @xtuc-ieee754-npm-1.2.0-ec0ce4e025-ac56d4ca6e.zip │ ├── @xtuc-long-npm-4.2.2-37236e6d72-8ed0d477ce.zip │ ├── abab-npm-2.0.6-2662fba7f0-6ffc1af4ff.zip │ ├── acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip │ ├── acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip │ ├── ajv-keywords-npm-3.5.2-0e391b70e2-7dc5e59316.zip │ ├── ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip │ ├── ajv-npm-8.12.0-3bf6e30741-4dc13714e3.zip │ ├── ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip │ ├── ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip │ ├── ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip │ ├── argparse-npm-2.0.1-faff7999e6-83644b5649.zip │ ├── array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip │ ├── array-union-npm-2.1.0-4e4852b221-5bee12395c.zip │ ├── astral-regex-npm-2.0.0-f30d866aab-876231688c.zip │ ├── available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip │ ├── balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip │ ├── big.js-npm-5.2.2-e147c30820-b89b6e8419.zip │ ├── brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip │ ├── brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip │ ├── braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip │ ├── buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip │ ├── call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip │ ├── callsites-npm-3.1.0-268f989910-072d17b6ab.zip │ ├── chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip │ ├── chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip │ ├── chrome-trace-event-npm-1.0.3-e0ae3dcd60-cb8b1fc7e8.zip │ ├── clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip │ ├── codemirror-npm-5.61.1-95ad2a55dd-54b303ca94.zip │ ├── color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip │ ├── color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip │ ├── color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip │ ├── color-name-npm-1.1.4-025792b0ea-b044585952.zip │ ├── colorette-npm-2.0.20-692d428726-0c016fea2b.zip │ ├── commander-npm-2.20.3-d8dcbaa39b-ab8c07884e.zip │ ├── compute-gcd-npm-1.2.1-06110d2799-51cf33b75f.zip │ ├── compute-lcm-npm-1.1.2-deffc42166-d499ab57dc.zip │ ├── concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip │ ├── cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip │ ├── cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip │ ├── csstype-npm-3.0.10-e26ef49bb2-20a8fa324f.zip │ ├── csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip │ ├── data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip │ ├── debug-npm-4.3.4-4513954577-3dbad3f94e.zip │ ├── deep-is-npm-0.1.4-88938b5a67-edb65dd0d7.zip │ ├── deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip │ ├── define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip │ ├── dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip │ ├── doctrine-npm-3.0.0-c6f1615f04-fd7673ca77.zip │ ├── dom-serializer-npm-1.4.1-ebb24349c1-fbb0b01f87.zip │ ├── domelementtype-npm-2.3.0-02de7cbfba-ee837a318f.zip │ ├── domhandler-npm-4.3.1-493539c1ca-4c665ceed0.zip │ ├── domutils-npm-2.8.0-0325139e5c-abf7434315.zip │ ├── duplicate-package-checker-webpack-plugin-npm-3.0.0-ac29845fdb-d77be45cb7.zip │ ├── emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip │ ├── emojis-list-npm-3.0.0-7faa48e6fd-ddaaa02542.zip │ ├── entities-npm-2.2.0-0fc8d5b2f7-19010dacaf.zip │ ├── envinfo-npm-7.8.1-f320033691-de736c98d6.zip │ ├── error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip │ ├── es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip │ ├── es-module-lexer-npm-1.2.1-1c9bda6e09-c4145b853e.zip │ ├── es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip │ ├── es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip │ ├── escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip │ ├── escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip │ ├── eslint-scope-npm-5.1.1-71fe59b18a-47e4b6a3f0.zip │ ├── esquery-npm-1.5.0-d8f8a06879-aefb0d2596.zip │ ├── esrecurse-npm-4.3.0-10b86a887a-ebc17b1a33.zip │ ├── estraverse-npm-4.3.0-920a32f3c6-a6299491f9.zip │ ├── estraverse-npm-5.3.0-03284f8f63-072780882d.zip │ ├── esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip │ ├── events-npm-3.3.0-c280bc7e48-f6f487ad21.zip │ ├── fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip │ ├── fast-diff-npm-1.3.0-9f19e3b743-d22d371b99.zip │ ├── fast-glob-npm-3.2.12-162763bbae-0b1990f6ce.zip │ ├── fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip │ ├── fast-levenshtein-npm-2.0.6-fcd74b8df5-92cfec0a8d.zip │ ├── fastest-levenshtein-npm-1.0.16-192d328856-a78d44285c.zip │ ├── fastq-npm-1.15.0-1013f6514e-0170e6bfcd.zip │ ├── file-entry-cache-npm-6.0.1-31965cf0af-f49701feaa.zip │ ├── fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip │ ├── find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip │ ├── find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip │ ├── flat-cache-npm-3.0.4-ee77e5911e-4fdd10ecbc.zip │ ├── flatted-npm-3.2.7-0da10b7c56-427633049d.zip │ ├── for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip │ ├── free-style-npm-3.1.0-6c9e2d6a5f-949258ae31.zip │ ├── fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip │ ├── function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip │ ├── function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip │ ├── functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip │ ├── get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip │ ├── get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip │ ├── glob-npm-7.1.7-5698ad9c48-b61f48973b.zip │ ├── glob-npm-7.2.3-2d866d17a5-29452e97b3.zip │ ├── glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip │ ├── glob-to-regexp-npm-0.4.1-cd697e0fc7-e795f4e8f0.zip │ ├── globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip │ ├── globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip │ ├── gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip │ ├── graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip │ ├── has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip │ ├── has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip │ ├── has-flag-npm-4.0.0-32af9f0536-261a135703.zip │ ├── has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip │ ├── has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip │ ├── has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip │ ├── has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip │ ├── has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip │ ├── hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip │ ├── htmlparser2-npm-6.1.0-4ef89ab31e-81a7b3d9c3.zip │ ├── iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip │ ├── icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip │ ├── ignore-npm-5.2.4-fbe6e989e5-3d4c309c60.zip │ ├── import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip │ ├── import-local-npm-3.1.0-8960af5e51-bfcdb63b5e.zip │ ├── imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip │ ├── inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip │ ├── inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip │ ├── internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip │ ├── is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip │ ├── is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip │ ├── is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip │ ├── is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip │ ├── is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip │ ├── is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip │ ├── is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip │ ├── is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip │ ├── is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip │ ├── is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip │ ├── is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip │ ├── is-number-npm-7.0.0-060086935c-456ac6f8e0.zip │ ├── is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip │ ├── is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip │ ├── is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip │ ├── is-regex-npm-1.1.4-cca193ef11-362399b335.zip │ ├── is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip │ ├── is-string-npm-1.0.7-9f7066daed-323b3d0462.zip │ ├── is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip │ ├── is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip │ ├── is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip │ ├── isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip │ ├── isobject-npm-3.0.1-8145901fd2-db85c4c970.zip │ ├── isomorphic.js-npm-0.2.5-5d4ede8887-d8d1b083f0.zip │ ├── jest-worker-npm-27.5.1-1c110b5894-98cd68b696.zip │ ├── js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip │ ├── json-parse-better-errors-npm-1.0.2-7f37637d19-ff2b5ba2a7.zip │ ├── json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip │ ├── json-schema-compare-npm-0.2.2-7186e2a7ca-dd6f217385.zip │ ├── json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip │ ├── json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip │ ├── json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cff44156dd.zip │ ├── json5-npm-2.2.3-9962c55073-2a7436a933.zip │ ├── jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip │ ├── jsonpointer-npm-5.0.1-8e4c22e512-0b40f71290.zip │ ├── kind-of-npm-6.0.3-ab15f36220-3ab01e7b1d.zip │ ├── levn-npm-0.4.1-d183b2d7bb-12c5021c85.zip │ ├── lib0-npm-0.2.74-50f13074b0-a468fc2f8d.zip │ ├── license-webpack-plugin-npm-2.3.21-74008160a2-6208bd2060.zip │ ├── load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip │ ├── loader-runner-npm-4.3.0-9ca67df372-a90e00dee9.zip │ ├── loader-utils-npm-2.0.4-ba3800585b-a5281f5fff.zip │ ├── locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip │ ├── lodash-npm-4.17.21-6382451519-eb835a2e51.zip │ ├── lodash.escape-npm-4.0.1-5ea709377f-fcb54f4574.zip │ ├── lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip │ ├── lodash.mergewith-npm-4.6.2-7d2d4201ec-a6db2a9339.zip │ ├── lodash.truncate-npm-4.4.2-bc50fe1663-b463d8a382.zip │ ├── loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip │ ├── lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip │ ├── memorystream-npm-0.3.1-ae973f1d16-f18b42440d.zip │ ├── merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip │ ├── merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip │ ├── mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip │ ├── mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip │ ├── minimatch-npm-3.1.2-9405269906-c154e56640.zip │ ├── minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip │ ├── ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip │ ├── natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip │ ├── neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip │ ├── nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip │ ├── normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip │ ├── npm-run-all-npm-4.1.5-3281f1c563-373b72c6a3.zip │ ├── object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip │ ├── object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip │ ├── object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip │ ├── object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip │ ├── once-npm-1.4.0-ccf03ef07a-cd0a885013.zip │ ├── p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip │ ├── p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip │ ├── p-locate-npm-4.1.0-eec6872537-513bd14a45.zip │ ├── p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip │ ├── parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip │ ├── parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip │ ├── parse-srcset-npm-1.0.2-8acc142245-3a0380380c.zip │ ├── path-browserify-npm-1.0.1-f975d99a99-c6d7fa3764.zip │ ├── path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip │ ├── path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip │ ├── path-key-npm-2.0.1-b1a971833d-f7ab0ad42f.zip │ ├── path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip │ ├── path-parse-npm-1.0.7-09564527b7-49abf3d811.zip │ ├── path-type-npm-3.0.0-252361a0eb-735b35e256.zip │ ├── path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip │ ├── picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip │ ├── picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip │ ├── pidtree-npm-0.3.1-70dda1cc59-eb49025099.zip │ ├── pify-npm-3.0.0-679ee405c8-6cdcbc3567.zip │ ├── pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip │ ├── postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip │ ├── postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip │ ├── postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip │ ├── postcss-npm-8.4.31-385051a82b-1d8611341b.zip │ ├── postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip │ ├── postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip │ ├── prelude-ls-npm-1.2.1-3e4d272a55-cd192ec0d0.zip │ ├── prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip │ ├── process-npm-0.11.10-aeb3b641ae-bfcce49814.zip │ ├── prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip │ ├── punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip │ ├── querystringify-npm-2.2.0-4e77c9f606-5641ea231b.zip │ ├── queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip │ ├── randombytes-npm-2.1.0-e3da76bccf-d779499376.zip │ ├── react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip │ ├── read-pkg-npm-3.0.0-41471436cb-398903ebae.zip │ ├── regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip │ ├── require-from-string-npm-2.0.2-8557e0db12-a03ef68954.zip │ ├── requires-port-npm-1.0.0-fd036b488a-eee0e303ad.zip │ ├── resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip │ ├── resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip │ ├── resolve-from-npm-5.0.0-15c9db4d33-4ceeb9113e.zip │ ├── resolve-npm-1.22.3-f7dee15274-fb834b8134.zip │ ├── resolve-patch-bb62d3c3c5-ad59734723.zip │ ├── reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip │ ├── rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip │ ├── run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip │ ├── safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip │ ├── safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip │ ├── safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip │ ├── sanitize-html-npm-2.7.3-f83fc1e1dd-2399d1fdbb.zip │ ├── schema-utils-npm-2.7.1-f84d18c473-32c62fc9e2.zip │ ├── schema-utils-npm-3.1.2-d97c6dc247-39683edfe3.zip │ ├── semver-npm-5.7.2-938ee91eaa-fb4ab5e0dd.zip │ ├── shallow-clone-npm-3.0.1-dab5873d0d-39b3dd9630.zip │ ├── shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip │ ├── shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip │ ├── shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip │ ├── shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip │ ├── shell-quote-npm-1.8.1-fcccf06093-5f01201f4e.zip │ ├── side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip │ ├── signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip │ ├── slash-npm-3.0.0-b87de2279a-94a93fff61.zip │ ├── slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip │ ├── source-list-map-npm-2.0.1-625c551052-806efc6f75.zip │ ├── source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip │ ├── source-map-loader-npm-1.0.2-d8fe4f70f6-0360b536e9.zip │ ├── source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip │ ├── source-map-support-npm-0.5.21-09ca99e250-43e98d700d.zip │ ├── spdx-correct-npm-3.2.0-ffae008484-e9ae98d22f.zip │ ├── spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip │ ├── spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip │ ├── spdx-license-ids-npm-3.0.13-928dd45e3f-3469d85c65.zip │ ├── sql-formatter-npm-6.1.2-aad5665c2d-be16800748.zip │ ├── string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip │ ├── string.prototype.padend-npm-3.1.4-0b31461a40-76e07238fe.zip │ ├── string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip │ ├── string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip │ ├── string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip │ ├── strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip │ ├── strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip │ ├── strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip │ ├── supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip │ ├── supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip │ ├── supports-color-npm-8.1.1-289e937149-c052193a7e.zip │ ├── supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip │ ├── table-npm-6.8.1-83abb79e20-08249c7046.zip │ ├── tapable-npm-2.2.1-8cf5ff3039-3b7a1b4d86.zip │ ├── terser-npm-5.17.6-8931b8d439-9c0ab0261a.zip │ ├── terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip │ ├── text-table-npm-0.2.0-d92a778b59-b6937a38c8.zip │ ├── to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip │ ├── tr46-npm-2.1.0-00af583f4f-ffe6049b9d.zip │ ├── type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip │ ├── type-fest-npm-0.20.2-b36432617f-4fb3272df2.zip │ ├── typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip │ ├── typestyle-npm-2.4.0-b0325c02c5-8b4f02c24f.zip │ ├── unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip │ ├── universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip │ ├── uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip │ ├── url-parse-npm-1.5.10-64fa2bcd6d-fbdba6b1d8.zip │ ├── util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip │ ├── validate-npm-package-license-npm-3.0.4-7af8adc7a8-35703ac889.zip │ ├── validate.io-array-npm-1.0.6-d265c3d6a6-54eca83ebc.zip │ ├── validate.io-function-npm-1.0.2-06c17f312a-e4cce2479a.zip │ ├── validate.io-integer-array-npm-1.0.0-4e2b9a9418-5f6d7fab8d.zip │ ├── validate.io-integer-npm-1.0.5-e0e50c7216-88b3f8bb5a.zip │ ├── validate.io-number-npm-1.0.3-03b6276c54-42418aeb6c.zip │ ├── vscode-jsonrpc-npm-6.0.0-4e625ea1b8-3a67a56f28.zip │ ├── vscode-jsonrpc-npm-8.1.0-557f20ee72-8980037cc0.zip │ ├── vscode-ws-jsonrpc-npm-1.0.2-2040a80420-eb2fdb5c96.zip │ ├── webidl-conversions-npm-6.1.0-0594fd577c-1f526507aa.zip │ ├── webpack-merge-npm-5.9.0-9110e650de-64fe2c23aa.zip │ ├── webpack-sources-npm-1.4.3-2b3a9b1de0-37463dad8d.zip │ ├── webpack-sources-npm-3.2.3-6bfb5d9563-989e401b9f.zip │ ├── whatwg-mimetype-npm-2.3.0-52eaa1d941-23eb885940.zip │ ├── whatwg-url-npm-8.7.0-67af66db8f-a87abcc6ce.zip │ ├── which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip │ ├── which-npm-1.3.1-f0ebb8bdd8-f2e185c624.zip │ ├── which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip │ ├── which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip │ ├── wildcard-npm-2.0.1-7c6a3a3365-e0c60a12a2.zip │ ├── worker-loader-npm-3.0.8-6423aa0002-84f4a7eeb2.zip │ ├── wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip │ ├── y-protocols-npm-1.0.5-af6f64b4df-d19404a4eb.zip │ ├── yallist-npm-4.0.0-b493d9e907-343617202a.zip │ ├── yjs-npm-13.6.1-dc86ba0017-bf18ed3f53.zip │ └── yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip └── releases │ └── yarn-3.5.1.cjs ├── .yarnrc.yml ├── CONTRIBUTING.md ├── LICENSE ├── README-fr.md ├── README.md ├── RELEASE.md ├── azure-pipelines.yml ├── docs ├── img │ ├── args.png │ ├── auto_functions.png │ ├── capture_view.png │ ├── config.png │ ├── create.png │ ├── dataframe_capture.png │ ├── dbt_html_output.png │ ├── dbt_jinja_sql_output.png │ ├── dbt_jinja_table_name.png │ ├── dbt_sparksql_config.png │ ├── dbt_sql.png │ ├── dbt_sql_output.png │ ├── dbt_sql_output_option.png │ ├── doc.png │ ├── example.png │ ├── format-cell.gif │ ├── ipydatagrid.gif │ ├── jinja.png │ ├── json-output.gif │ ├── jupyterlab-lsp-config.png │ ├── magic_documentation.png │ ├── multi-output.png │ ├── pre-configure.png │ ├── python-string.gif │ ├── qgrid.gif │ ├── schema_widget.gif │ ├── spark-inner-join.gif │ ├── sparksql-nested-columns.gif │ ├── sql-in-python-string.gif │ ├── trino-inner-join.gif │ ├── vscode-dbt-completed.png │ ├── vscode-dbt-config.png │ ├── vscode-dbt-power.png │ └── vscode-dbt-suggestions.png ├── index.md ├── sparksql.md └── trino.md ├── example ├── JinjaTemplate.ipynb ├── Spark.ipynb ├── SparkDataframe.ipynb ├── SparkSQLEscapeControlChars.ipynb ├── SparkSyntaxDemo.ipynb ├── SupersetJinjaTestHarness.ipynb ├── Trino.ipynb ├── contacts.json └── conversations.json ├── install.json ├── jupyterlab_sql_editor ├── __init__.py ├── ipython_magic │ ├── __init__.py │ ├── base.py │ ├── export.py │ ├── sparksql │ │ ├── __init__.py │ │ ├── balls_line.gif │ │ ├── main.py │ │ ├── spark_export.py │ │ ├── spark_schema_widget.py │ │ ├── spark_streaming_query.py │ │ ├── sparkdf.py │ │ └── sparksql.py │ ├── sql-language-server.schema.json │ ├── trino │ │ ├── __init__.py │ │ ├── main.py │ │ ├── parser.py │ │ ├── parser_test.py │ │ ├── parsetab.py │ │ ├── trino.py │ │ ├── trino_export.py │ │ └── trino_schema_widget.py │ └── util.py └── outputters │ ├── __init__.py │ ├── outputters.py │ └── util.py ├── mkdocs.yml ├── overrides ├── sparksql-lsp.json ├── syntax_highlighting.json └── trino-lsp.json ├── package.json ├── pyproject.toml ├── schema └── plugin.json ├── setup.py ├── src ├── constants.ts ├── formatter.ts ├── index.ts └── utils.ts ├── style ├── base.css ├── index.css └── index.js ├── tsconfig.json └── yarn.lock /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: 'npm' 4 | directory: '/' 5 | schedule: 6 | interval: 'daily' 7 | # Always increase the version requirement 8 | # to match the new version. 9 | versioning-strategy: increase 10 | # Only do security updates 11 | open-pull-requests-limit: 0 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.bundle.* 2 | lib/ 3 | node_modules/ 4 | *.log 5 | .eslintcache 6 | .stylelintcache 7 | *.egg-info/ 8 | .ipynb_checkpoints 9 | *.tsbuildinfo 10 | jupyterlab_sql_editor/labextension 11 | # Version file is handled by hatchling 12 | jupyterlab_sql_editor/_version.py 13 | 14 | # Created by https://www.gitignore.io/api/python 15 | # Edit at https://www.gitignore.io/?templates=python 16 | 17 | ### Python ### 18 | # Byte-compiled / optimized / DLL files 19 | __pycache__/ 20 | *.py[cod] 21 | *$py.class 22 | 23 | # C extensions 24 | *.so 25 | 26 | # Distribution / packaging 27 | .Python 28 | build/ 29 | develop-eggs/ 30 | dist/ 31 | downloads/ 32 | eggs/ 33 | .eggs/ 34 | lib/ 35 | lib64/ 36 | parts/ 37 | sdist/ 38 | var/ 39 | wheels/ 40 | pip-wheel-metadata/ 41 | share/python-wheels/ 42 | .installed.cfg 43 | *.egg 44 | MANIFEST 45 | 46 | # PyInstaller 47 | # Usually these files are written by a python script from a template 48 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 49 | *.manifest 50 | *.spec 51 | 52 | # Installer logs 53 | pip-log.txt 54 | pip-delete-this-directory.txt 55 | 56 | # Unit test / coverage reports 57 | htmlcov/ 58 | .tox/ 59 | .nox/ 60 | .coverage 61 | .coverage.* 62 | .cache 63 | nosetests.xml 64 | coverage/ 65 | coverage.xml 66 | *.cover 67 | .hypothesis/ 68 | .pytest_cache/ 69 | 70 | # Translations 71 | *.mo 72 | *.pot 73 | 74 | # Scrapy stuff: 75 | .scrapy 76 | 77 | # Sphinx documentation 78 | docs/_build/ 79 | 80 | # PyBuilder 81 | target/ 82 | 83 | # pyenv 84 | .python-version 85 | 86 | # celery beat schedule file 87 | celerybeat-schedule 88 | 89 | # SageMath parsed files 90 | *.sage.py 91 | 92 | # Spyder project settings 93 | .spyderproject 94 | .spyproject 95 | 96 | # Rope project settings 97 | .ropeproject 98 | 99 | # Mr Developer 100 | .mr.developer.cfg 101 | .project 102 | .pydevproject 103 | 104 | # mkdocs documentation 105 | /site 106 | 107 | # mypy 108 | .mypy_cache/ 109 | .dmypy.json 110 | dmypy.json 111 | 112 | # Pyre type checker 113 | .pyre/ 114 | 115 | # End of https://www.gitignore.io/api/python 116 | 117 | # OSX files 118 | .DS_Store 119 | 120 | # Yarn cache 121 | .yarn/ 122 | 123 | # temp 124 | _temp_extension 125 | .github/workflows 126 | .virtual_documents 127 | *.ipynb 128 | .copier-answers.yml 129 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/node_modules 3 | **/lib 4 | **/package.json 5 | !/package.json 6 | jupyterlab_sql_editor 7 | jupyterlab_sql_editor/trino/parsetab.py 8 | env/ 9 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.trimTrailingWhitespace": true, 3 | "files.trimFinalNewlines": true, 4 | "files.insertFinalNewline": true, 5 | "python.languageServer": "Pylance", 6 | "ruff.lineLength": 120, 7 | "ruff.nativeServer": "on", 8 | "ruff.organizeImports": true, 9 | "[python]": { 10 | "editor.tabSize": 4, 11 | "editor.defaultFormatter": "charliermarsh.ruff", 12 | "editor.formatOnSave": true, 13 | "editor.codeActionsOnSave": { 14 | "source.fixAll": "explicit", 15 | "source.organizeImports": "explicit" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.yarn/cache/@discoveryjs-json-ext-npm-0.5.7-fe04af1f31-2176d301cc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@discoveryjs-json-ext-npm-0.5.7-fe04af1f31-2176d301cc.zip -------------------------------------------------------------------------------- /.yarn/cache/@fortawesome-fontawesome-free-npm-5.15.4-7752dc20e0-32281c3df4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@fortawesome-fontawesome-free-npm-5.15.4-7752dc20e0-32281c3df4.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-source-map-npm-0.3.3-eb138f3f67-ae13021463.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-source-map-npm-0.3.3-eb138f3f67-ae13021463.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip -------------------------------------------------------------------------------- /.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@nodelib-fs.scandir-npm-2.1.5-89c67370dd-a970d595bd.zip -------------------------------------------------------------------------------- /.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@nodelib-fs.stat-npm-2.0.5-01f4dd3030-012480b5ca.zip -------------------------------------------------------------------------------- /.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@nodelib-fs.walk-npm-1.2.8-b4a89da548-190c643f15.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-codemirror-npm-5.60.7-21ef8b18ac-0312ce032e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-codemirror-npm-5.60.7-21ef8b18ac-0312ce032e.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-json-schema-npm-7.0.11-79462ae5ca-527bddfe62.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-json-schema-npm-7.0.11-79462ae5ca-527bddfe62.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-node-npm-18.11.19-dd4a5b3ed6-d7cd19fcfc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-node-npm-18.11.19-dd4a5b3ed6-d7cd19fcfc.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-node-npm-20.2.3-0289426dd1-576065e8fc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-node-npm-20.2.3-0289426dd1-576065e8fc.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-source-list-map-npm-0.1.2-1983e10da7-fda8f37537.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-source-list-map-npm-0.1.2-1983e10da7-fda8f37537.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-tern-npm-0.23.4-9168cf1c58-d8fd304f14.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-tern-npm-0.23.4-9168cf1c58-d8fd304f14.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-webpack-sources-npm-0.1.9-a1459d6944-bc09c584c7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@types-webpack-sources-npm-0.1.9-a1459d6944-bc09c584c7.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.11.6-3a9928fc76-29b0875884.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-helper-api-error-npm-1.11.6-75f6275ff4-e8563df851.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-helper-numbers-npm-1.11.6-819ddab1da-f4b562fa21.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.11.6-3bc23747de-3535ef4f1f.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-ieee754-npm-1.11.6-95c92f446a-13574b8e41.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-leb128-npm-1.11.6-697d62da2e-7ea942dc97.zip -------------------------------------------------------------------------------- /.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@webassemblyjs-utf8-npm-1.11.6-102c4e5d68-807fe5b5ce.zip -------------------------------------------------------------------------------- /.yarn/cache/@xtuc-ieee754-npm-1.2.0-ec0ce4e025-ac56d4ca6e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@xtuc-ieee754-npm-1.2.0-ec0ce4e025-ac56d4ca6e.zip -------------------------------------------------------------------------------- /.yarn/cache/@xtuc-long-npm-4.2.2-37236e6d72-8ed0d477ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/@xtuc-long-npm-4.2.2-37236e6d72-8ed0d477ce.zip -------------------------------------------------------------------------------- /.yarn/cache/abab-npm-2.0.6-2662fba7f0-6ffc1af4ff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/abab-npm-2.0.6-2662fba7f0-6ffc1af4ff.zip -------------------------------------------------------------------------------- /.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-c3d3b2a89c.zip -------------------------------------------------------------------------------- /.yarn/cache/acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip -------------------------------------------------------------------------------- /.yarn/cache/ajv-keywords-npm-3.5.2-0e391b70e2-7dc5e59316.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ajv-keywords-npm-3.5.2-0e391b70e2-7dc5e59316.zip -------------------------------------------------------------------------------- /.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-874972efe5.zip -------------------------------------------------------------------------------- /.yarn/cache/ajv-npm-8.12.0-3bf6e30741-4dc13714e3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ajv-npm-8.12.0-3bf6e30741-4dc13714e3.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-513b44c3b2.zip -------------------------------------------------------------------------------- /.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/argparse-npm-2.0.1-faff7999e6-83644b5649.zip -------------------------------------------------------------------------------- /.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/array-buffer-byte-length-npm-1.0.0-331671f28a-044e101ce1.zip -------------------------------------------------------------------------------- /.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/array-union-npm-2.1.0-4e4852b221-5bee12395c.zip -------------------------------------------------------------------------------- /.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/astral-regex-npm-2.0.0-f30d866aab-876231688c.zip -------------------------------------------------------------------------------- /.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/available-typed-arrays-npm-1.0.5-88f321e4d3-20eb47b3ce.zip -------------------------------------------------------------------------------- /.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip -------------------------------------------------------------------------------- /.yarn/cache/big.js-npm-5.2.2-e147c30820-b89b6e8419.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/big.js-npm-5.2.2-e147c30820-b89b6e8419.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip -------------------------------------------------------------------------------- /.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/braces-npm-3.0.3-582c14023c-b95aa0b3bd.zip -------------------------------------------------------------------------------- /.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/buffer-from-npm-1.1.2-03d2f20d7e-0448524a56.zip -------------------------------------------------------------------------------- /.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/call-bind-npm-1.0.2-c957124861-f8e31de9d1.zip -------------------------------------------------------------------------------- /.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip -------------------------------------------------------------------------------- /.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip -------------------------------------------------------------------------------- /.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-fe75c9d5c7.zip -------------------------------------------------------------------------------- /.yarn/cache/chrome-trace-event-npm-1.0.3-e0ae3dcd60-cb8b1fc7e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/chrome-trace-event-npm-1.0.3-e0ae3dcd60-cb8b1fc7e8.zip -------------------------------------------------------------------------------- /.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-770f912fe4.zip -------------------------------------------------------------------------------- /.yarn/cache/codemirror-npm-5.61.1-95ad2a55dd-54b303ca94.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/codemirror-npm-5.61.1-95ad2a55dd-54b303ca94.zip -------------------------------------------------------------------------------- /.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip -------------------------------------------------------------------------------- /.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/color-convert-npm-2.0.1-79730e935b-79e6bdb9fd.zip -------------------------------------------------------------------------------- /.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip -------------------------------------------------------------------------------- /.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/color-name-npm-1.1.4-025792b0ea-b044585952.zip -------------------------------------------------------------------------------- /.yarn/cache/colorette-npm-2.0.20-692d428726-0c016fea2b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/colorette-npm-2.0.20-692d428726-0c016fea2b.zip -------------------------------------------------------------------------------- /.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-ab8c07884e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-ab8c07884e.zip -------------------------------------------------------------------------------- /.yarn/cache/compute-gcd-npm-1.2.1-06110d2799-51cf33b75f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/compute-gcd-npm-1.2.1-06110d2799-51cf33b75f.zip -------------------------------------------------------------------------------- /.yarn/cache/compute-lcm-npm-1.1.2-deffc42166-d499ab57dc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/compute-lcm-npm-1.1.2-deffc42166-d499ab57dc.zip -------------------------------------------------------------------------------- /.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip -------------------------------------------------------------------------------- /.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-671cc7c728.zip -------------------------------------------------------------------------------- /.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-f8c4ababff.zip -------------------------------------------------------------------------------- /.yarn/cache/csstype-npm-3.0.10-e26ef49bb2-20a8fa324f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/csstype-npm-3.0.10-e26ef49bb2-20a8fa324f.zip -------------------------------------------------------------------------------- /.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip -------------------------------------------------------------------------------- /.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-97caf828aa.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip -------------------------------------------------------------------------------- /.yarn/cache/deep-is-npm-0.1.4-88938b5a67-edb65dd0d7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/deep-is-npm-0.1.4-88938b5a67-edb65dd0d7.zip -------------------------------------------------------------------------------- /.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip -------------------------------------------------------------------------------- /.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/define-properties-npm-1.2.0-3547cd0fd2-e60aee6a19.zip -------------------------------------------------------------------------------- /.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-fa05e18324.zip -------------------------------------------------------------------------------- /.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-fd7673ca77.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-fd7673ca77.zip -------------------------------------------------------------------------------- /.yarn/cache/dom-serializer-npm-1.4.1-ebb24349c1-fbb0b01f87.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/dom-serializer-npm-1.4.1-ebb24349c1-fbb0b01f87.zip -------------------------------------------------------------------------------- /.yarn/cache/domelementtype-npm-2.3.0-02de7cbfba-ee837a318f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/domelementtype-npm-2.3.0-02de7cbfba-ee837a318f.zip -------------------------------------------------------------------------------- /.yarn/cache/domhandler-npm-4.3.1-493539c1ca-4c665ceed0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/domhandler-npm-4.3.1-493539c1ca-4c665ceed0.zip -------------------------------------------------------------------------------- /.yarn/cache/domutils-npm-2.8.0-0325139e5c-abf7434315.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/domutils-npm-2.8.0-0325139e5c-abf7434315.zip -------------------------------------------------------------------------------- /.yarn/cache/duplicate-package-checker-webpack-plugin-npm-3.0.0-ac29845fdb-d77be45cb7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/duplicate-package-checker-webpack-plugin-npm-3.0.0-ac29845fdb-d77be45cb7.zip -------------------------------------------------------------------------------- /.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip -------------------------------------------------------------------------------- /.yarn/cache/emojis-list-npm-3.0.0-7faa48e6fd-ddaaa02542.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/emojis-list-npm-3.0.0-7faa48e6fd-ddaaa02542.zip -------------------------------------------------------------------------------- /.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-19010dacaf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/entities-npm-2.2.0-0fc8d5b2f7-19010dacaf.zip -------------------------------------------------------------------------------- /.yarn/cache/envinfo-npm-7.8.1-f320033691-de736c98d6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/envinfo-npm-7.8.1-f320033691-de736c98d6.zip -------------------------------------------------------------------------------- /.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip -------------------------------------------------------------------------------- /.yarn/cache/es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/es-abstract-npm-1.21.2-f4ebace1ab-037f55ee5e.zip -------------------------------------------------------------------------------- /.yarn/cache/es-module-lexer-npm-1.2.1-1c9bda6e09-c4145b853e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/es-module-lexer-npm-1.2.1-1c9bda6e09-c4145b853e.zip -------------------------------------------------------------------------------- /.yarn/cache/es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/es-set-tostringtag-npm-2.0.1-c87b5de872-ec416a1294.zip -------------------------------------------------------------------------------- /.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-4ead6671a2.zip -------------------------------------------------------------------------------- /.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip -------------------------------------------------------------------------------- /.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip -------------------------------------------------------------------------------- /.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-47e4b6a3f0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/eslint-scope-npm-5.1.1-71fe59b18a-47e4b6a3f0.zip -------------------------------------------------------------------------------- /.yarn/cache/esquery-npm-1.5.0-d8f8a06879-aefb0d2596.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/esquery-npm-1.5.0-d8f8a06879-aefb0d2596.zip -------------------------------------------------------------------------------- /.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-ebc17b1a33.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-ebc17b1a33.zip -------------------------------------------------------------------------------- /.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-a6299491f9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-a6299491f9.zip -------------------------------------------------------------------------------- /.yarn/cache/estraverse-npm-5.3.0-03284f8f63-072780882d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-072780882d.zip -------------------------------------------------------------------------------- /.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/esutils-npm-2.0.3-f865beafd5-22b5b08f74.zip -------------------------------------------------------------------------------- /.yarn/cache/events-npm-3.3.0-c280bc7e48-f6f487ad21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/events-npm-3.3.0-c280bc7e48-f6f487ad21.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-diff-npm-1.3.0-9f19e3b743-d22d371b99.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fast-diff-npm-1.3.0-9f19e3b743-d22d371b99.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-glob-npm-3.2.12-162763bbae-0b1990f6ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fast-glob-npm-3.2.12-162763bbae-0b1990f6ce.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-b191531e36.zip -------------------------------------------------------------------------------- /.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-92cfec0a8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-92cfec0a8d.zip -------------------------------------------------------------------------------- /.yarn/cache/fastest-levenshtein-npm-1.0.16-192d328856-a78d44285c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fastest-levenshtein-npm-1.0.16-192d328856-a78d44285c.zip -------------------------------------------------------------------------------- /.yarn/cache/fastq-npm-1.15.0-1013f6514e-0170e6bfcd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fastq-npm-1.15.0-1013f6514e-0170e6bfcd.zip -------------------------------------------------------------------------------- /.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-f49701feaa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/file-entry-cache-npm-6.0.1-31965cf0af-f49701feaa.zip -------------------------------------------------------------------------------- /.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fill-range-npm-7.1.1-bf491486db-b4abfbca38.zip -------------------------------------------------------------------------------- /.yarn/cache/find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip -------------------------------------------------------------------------------- /.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-4c172680e8.zip -------------------------------------------------------------------------------- /.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-4fdd10ecbc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/flat-cache-npm-3.0.4-ee77e5911e-4fdd10ecbc.zip -------------------------------------------------------------------------------- /.yarn/cache/flatted-npm-3.2.7-0da10b7c56-427633049d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/flatted-npm-3.2.7-0da10b7c56-427633049d.zip -------------------------------------------------------------------------------- /.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/for-each-npm-0.3.3-0010ca8cdd-6c48ff2bc6.zip -------------------------------------------------------------------------------- /.yarn/cache/free-style-npm-3.1.0-6c9e2d6a5f-949258ae31.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/free-style-npm-3.1.0-6c9e2d6a5f-949258ae31.zip -------------------------------------------------------------------------------- /.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip -------------------------------------------------------------------------------- /.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip -------------------------------------------------------------------------------- /.yarn/cache/function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/function.prototype.name-npm-1.1.5-e776a642bb-acd21d733a.zip -------------------------------------------------------------------------------- /.yarn/cache/functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/functions-have-names-npm-1.2.3-e5cf1e2208-c3f1f5ba20.zip -------------------------------------------------------------------------------- /.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/get-intrinsic-npm-1.2.1-ae857fd610-5b61d88552.zip -------------------------------------------------------------------------------- /.yarn/cache/get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/get-symbol-description-npm-1.0.0-9c95a4bc1f-9ceff8fe96.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/glob-npm-7.1.7-5698ad9c48-b61f48973b.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-e795f4e8f0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-e795f4e8f0.zip -------------------------------------------------------------------------------- /.yarn/cache/globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/globalthis-npm-1.0.3-96cd56020d-fbd7d760dc.zip -------------------------------------------------------------------------------- /.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/globby-npm-11.1.0-bdcdf20c71-b4be8885e0.zip -------------------------------------------------------------------------------- /.yarn/cache/gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/gopd-npm-1.0.1-10c1d0b534-a5ccfb8806.zip -------------------------------------------------------------------------------- /.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip -------------------------------------------------------------------------------- /.yarn/cache/has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-bigints-npm-1.0.2-52732e614d-390e31e7be.zip -------------------------------------------------------------------------------- /.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip -------------------------------------------------------------------------------- /.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip -------------------------------------------------------------------------------- /.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip -------------------------------------------------------------------------------- /.yarn/cache/has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-property-descriptors-npm-1.0.0-56289b918d-a6d3f0a266.zip -------------------------------------------------------------------------------- /.yarn/cache/has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-proto-npm-1.0.1-631ea9d820-febc5b5b53.zip -------------------------------------------------------------------------------- /.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-symbols-npm-1.0.3-1986bff2c4-a054c40c63.zip -------------------------------------------------------------------------------- /.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/has-tostringtag-npm-1.0.0-b1fcf3ab55-cc12eb28cb.zip -------------------------------------------------------------------------------- /.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/hosted-git-info-npm-2.8.9-62c44fa93f-c955394bda.zip -------------------------------------------------------------------------------- /.yarn/cache/htmlparser2-npm-6.1.0-4ef89ab31e-81a7b3d9c3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/htmlparser2-npm-6.1.0-4ef89ab31e-81a7b3d9c3.zip -------------------------------------------------------------------------------- /.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip -------------------------------------------------------------------------------- /.yarn/cache/icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/icss-utils-npm-5.1.0-8d8c062d07-5c324d2835.zip -------------------------------------------------------------------------------- /.yarn/cache/ignore-npm-5.2.4-fbe6e989e5-3d4c309c60.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ignore-npm-5.2.4-fbe6e989e5-3d4c309c60.zip -------------------------------------------------------------------------------- /.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip -------------------------------------------------------------------------------- /.yarn/cache/import-local-npm-3.1.0-8960af5e51-bfcdb63b5e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/import-local-npm-3.1.0-8960af5e51-bfcdb63b5e.zip -------------------------------------------------------------------------------- /.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip -------------------------------------------------------------------------------- /.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip -------------------------------------------------------------------------------- /.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip -------------------------------------------------------------------------------- /.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/internal-slot-npm-1.0.5-a2241f3e66-97e84046bf.zip -------------------------------------------------------------------------------- /.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-array-buffer-npm-3.0.2-0dec897785-dcac9dda66.zip -------------------------------------------------------------------------------- /.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip -------------------------------------------------------------------------------- /.yarn/cache/is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-bigint-npm-1.0.4-31c2eecbc9-c56edfe09b.zip -------------------------------------------------------------------------------- /.yarn/cache/is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-boolean-object-npm-1.1.2-ecbd575e6a-c03b23dbaa.zip -------------------------------------------------------------------------------- /.yarn/cache/is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-callable-npm-1.2.7-808a303e61-61fd57d03b.zip -------------------------------------------------------------------------------- /.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-core-module-npm-2.12.1-ce74e89160-f04ea30533.zip -------------------------------------------------------------------------------- /.yarn/cache/is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-date-object-npm-1.0.5-88f3d08b5e-baa9077cdf.zip -------------------------------------------------------------------------------- /.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip -------------------------------------------------------------------------------- /.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip -------------------------------------------------------------------------------- /.yarn/cache/is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-negative-zero-npm-2.0.2-0adac91f15-f3232194c4.zip -------------------------------------------------------------------------------- /.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-number-object-npm-1.0.7-539d0e274d-d1e8d01bb0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2a401140cf.zip -------------------------------------------------------------------------------- /.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip -------------------------------------------------------------------------------- /.yarn/cache/is-regex-npm-1.1.4-cca193ef11-362399b335.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-regex-npm-1.1.4-cca193ef11-362399b335.zip -------------------------------------------------------------------------------- /.yarn/cache/is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-shared-array-buffer-npm-1.0.2-32e4181fcd-9508929cf1.zip -------------------------------------------------------------------------------- /.yarn/cache/is-string-npm-1.0.7-9f7066daed-323b3d0462.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-string-npm-1.0.7-9f7066daed-323b3d0462.zip -------------------------------------------------------------------------------- /.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-symbol-npm-1.0.4-eb9baac703-92805812ef.zip -------------------------------------------------------------------------------- /.yarn/cache/is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-typed-array-npm-1.1.10-fe4ef83cdc-aac6ecb59d.zip -------------------------------------------------------------------------------- /.yarn/cache/is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/is-weakref-npm-1.0.2-ff80e8c314-95bd9a57cd.zip -------------------------------------------------------------------------------- /.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip -------------------------------------------------------------------------------- /.yarn/cache/isobject-npm-3.0.1-8145901fd2-db85c4c970.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/isobject-npm-3.0.1-8145901fd2-db85c4c970.zip -------------------------------------------------------------------------------- /.yarn/cache/isomorphic.js-npm-0.2.5-5d4ede8887-d8d1b083f0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/isomorphic.js-npm-0.2.5-5d4ede8887-d8d1b083f0.zip -------------------------------------------------------------------------------- /.yarn/cache/jest-worker-npm-27.5.1-1c110b5894-98cd68b696.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/jest-worker-npm-27.5.1-1c110b5894-98cd68b696.zip -------------------------------------------------------------------------------- /.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip -------------------------------------------------------------------------------- /.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-ff2b5ba2a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-ff2b5ba2a7.zip -------------------------------------------------------------------------------- /.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip -------------------------------------------------------------------------------- /.yarn/cache/json-schema-compare-npm-0.2.2-7186e2a7ca-dd6f217385.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-schema-compare-npm-0.2.2-7186e2a7ca-dd6f217385.zip -------------------------------------------------------------------------------- /.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-7486074d3b.zip -------------------------------------------------------------------------------- /.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-schema-traverse-npm-1.0.0-fb3684f4f0-02f2f466cd.zip -------------------------------------------------------------------------------- /.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cff44156dd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cff44156dd.zip -------------------------------------------------------------------------------- /.yarn/cache/json5-npm-2.2.3-9962c55073-2a7436a933.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/json5-npm-2.2.3-9962c55073-2a7436a933.zip -------------------------------------------------------------------------------- /.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip -------------------------------------------------------------------------------- /.yarn/cache/jsonpointer-npm-5.0.1-8e4c22e512-0b40f71290.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/jsonpointer-npm-5.0.1-8e4c22e512-0b40f71290.zip -------------------------------------------------------------------------------- /.yarn/cache/kind-of-npm-6.0.3-ab15f36220-3ab01e7b1d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/kind-of-npm-6.0.3-ab15f36220-3ab01e7b1d.zip -------------------------------------------------------------------------------- /.yarn/cache/levn-npm-0.4.1-d183b2d7bb-12c5021c85.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-12c5021c85.zip -------------------------------------------------------------------------------- /.yarn/cache/lib0-npm-0.2.74-50f13074b0-a468fc2f8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lib0-npm-0.2.74-50f13074b0-a468fc2f8d.zip -------------------------------------------------------------------------------- /.yarn/cache/license-webpack-plugin-npm-2.3.21-74008160a2-6208bd2060.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/license-webpack-plugin-npm-2.3.21-74008160a2-6208bd2060.zip -------------------------------------------------------------------------------- /.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-8f5d6d93ba.zip -------------------------------------------------------------------------------- /.yarn/cache/loader-runner-npm-4.3.0-9ca67df372-a90e00dee9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/loader-runner-npm-4.3.0-9ca67df372-a90e00dee9.zip -------------------------------------------------------------------------------- /.yarn/cache/loader-utils-npm-2.0.4-ba3800585b-a5281f5fff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/loader-utils-npm-2.0.4-ba3800585b-a5281f5fff.zip -------------------------------------------------------------------------------- /.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/locate-path-npm-5.0.0-46580c43e4-83e51725e6.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash.escape-npm-4.0.1-5ea709377f-fcb54f4574.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lodash.escape-npm-4.0.1-5ea709377f-fcb54f4574.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-ad580b4bdb.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash.mergewith-npm-4.6.2-7d2d4201ec-a6db2a9339.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lodash.mergewith-npm-4.6.2-7d2d4201ec-a6db2a9339.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-b463d8a382.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lodash.truncate-npm-4.4.2-bc50fe1663-b463d8a382.zip -------------------------------------------------------------------------------- /.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip -------------------------------------------------------------------------------- /.yarn/cache/memorystream-npm-0.3.1-ae973f1d16-f18b42440d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/memorystream-npm-0.3.1-ae973f1d16-f18b42440d.zip -------------------------------------------------------------------------------- /.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-6fa4dcc8d8.zip -------------------------------------------------------------------------------- /.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7268db63ed.zip -------------------------------------------------------------------------------- /.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/mime-db-npm-1.52.0-b5371d6fd2-0d99a03585.zip -------------------------------------------------------------------------------- /.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/mime-types-npm-2.1.35-dd9ea9f3e2-89a5b7f1de.zip -------------------------------------------------------------------------------- /.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip -------------------------------------------------------------------------------- /.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/minimist-npm-1.2.8-d7af7b1dce-75a6d645fb.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip -------------------------------------------------------------------------------- /.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-23ad088b08.zip -------------------------------------------------------------------------------- /.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/neo-async-npm-2.6.2-75d6902586-deac9f8d00.zip -------------------------------------------------------------------------------- /.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/nice-try-npm-1.0.5-963856b16f-0b4af3b5bb.zip -------------------------------------------------------------------------------- /.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip -------------------------------------------------------------------------------- /.yarn/cache/npm-run-all-npm-4.1.5-3281f1c563-373b72c6a3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/npm-run-all-npm-4.1.5-3281f1c563-373b72c6a3.zip -------------------------------------------------------------------------------- /.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip -------------------------------------------------------------------------------- /.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/object-inspect-npm-1.12.3-1e7d20f5ff-dabfd824d9.zip -------------------------------------------------------------------------------- /.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-b363c5e764.zip -------------------------------------------------------------------------------- /.yarn/cache/object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/object.assign-npm-4.1.4-fb3deb1c3a-76cab513a5.zip -------------------------------------------------------------------------------- /.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip -------------------------------------------------------------------------------- /.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/p-limit-npm-2.3.0-94a0310039-84ff17f1a3.zip -------------------------------------------------------------------------------- /.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-7c3690c4db.zip -------------------------------------------------------------------------------- /.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/p-locate-npm-4.1.0-eec6872537-513bd14a45.zip -------------------------------------------------------------------------------- /.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-f8a8e9a769.zip -------------------------------------------------------------------------------- /.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip -------------------------------------------------------------------------------- /.yarn/cache/parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/parse-json-npm-4.0.0-a6f7771010-0fe227d410.zip -------------------------------------------------------------------------------- /.yarn/cache/parse-srcset-npm-1.0.2-8acc142245-3a0380380c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/parse-srcset-npm-1.0.2-8acc142245-3a0380380c.zip -------------------------------------------------------------------------------- /.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-c6d7fa3764.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-c6d7fa3764.zip -------------------------------------------------------------------------------- /.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-505807199d.zip -------------------------------------------------------------------------------- /.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip -------------------------------------------------------------------------------- /.yarn/cache/path-key-npm-2.0.1-b1a971833d-f7ab0ad42f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-key-npm-2.0.1-b1a971833d-f7ab0ad42f.zip -------------------------------------------------------------------------------- /.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-55cd7a9dd4.zip -------------------------------------------------------------------------------- /.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip -------------------------------------------------------------------------------- /.yarn/cache/path-type-npm-3.0.0-252361a0eb-735b35e256.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-type-npm-3.0.0-252361a0eb-735b35e256.zip -------------------------------------------------------------------------------- /.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip -------------------------------------------------------------------------------- /.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip -------------------------------------------------------------------------------- /.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip -------------------------------------------------------------------------------- /.yarn/cache/pidtree-npm-0.3.1-70dda1cc59-eb49025099.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/pidtree-npm-0.3.1-70dda1cc59-eb49025099.zip -------------------------------------------------------------------------------- /.yarn/cache/pify-npm-3.0.0-679ee405c8-6cdcbc3567.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/pify-npm-3.0.0-679ee405c8-6cdcbc3567.zip -------------------------------------------------------------------------------- /.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-9863e3f351.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-modules-extract-imports-npm-3.0.0-619311282d-4b65f2f138.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-modules-scope-npm-3.0.0-0678040a26-330b9398db.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-modules-values-npm-4.0.0-63d7ec543a-f7f2cdf14a.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-npm-8.4.31-385051a82b-1d8611341b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-npm-8.4.31-385051a82b-1d8611341b.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-selector-parser-npm-6.0.13-f732d92326-f89163338a.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip -------------------------------------------------------------------------------- /.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-cd192ec0d0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-cd192ec0d0.zip -------------------------------------------------------------------------------- /.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/prettier-linter-helpers-npm-1.0.0-6925131a7e-00ce8011cf.zip -------------------------------------------------------------------------------- /.yarn/cache/process-npm-0.11.10-aeb3b641ae-bfcce49814.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/process-npm-0.11.10-aeb3b641ae-bfcce49814.zip -------------------------------------------------------------------------------- /.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip -------------------------------------------------------------------------------- /.yarn/cache/punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/punycode-npm-2.3.0-df4bdce06b-39f760e09a.zip -------------------------------------------------------------------------------- /.yarn/cache/querystringify-npm-2.2.0-4e77c9f606-5641ea231b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/querystringify-npm-2.2.0-4e77c9f606-5641ea231b.zip -------------------------------------------------------------------------------- /.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip -------------------------------------------------------------------------------- /.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-d779499376.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-d779499376.zip -------------------------------------------------------------------------------- /.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip -------------------------------------------------------------------------------- /.yarn/cache/read-pkg-npm-3.0.0-41471436cb-398903ebae.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/read-pkg-npm-3.0.0-41471436cb-398903ebae.zip -------------------------------------------------------------------------------- /.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/regexp.prototype.flags-npm-1.5.0-5623b9e07f-c541687cdb.zip -------------------------------------------------------------------------------- /.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-a03ef68954.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-a03ef68954.zip -------------------------------------------------------------------------------- /.yarn/cache/requires-port-npm-1.0.0-fd036b488a-eee0e303ad.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/requires-port-npm-1.0.0-fd036b488a-eee0e303ad.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-546e081601.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-4ceeb9113e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-4ceeb9113e.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip -------------------------------------------------------------------------------- /.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/reusify-npm-1.0.4-95ac4aec11-c3076ebcc2.zip -------------------------------------------------------------------------------- /.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip -------------------------------------------------------------------------------- /.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/run-parallel-npm-1.2.0-3f47ff2034-cb4f97ad25.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/safe-regex-test-npm-1.0.0-e94a09b84e-bc566d8beb.zip -------------------------------------------------------------------------------- /.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip -------------------------------------------------------------------------------- /.yarn/cache/sanitize-html-npm-2.7.3-f83fc1e1dd-2399d1fdbb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/sanitize-html-npm-2.7.3-f83fc1e1dd-2399d1fdbb.zip -------------------------------------------------------------------------------- /.yarn/cache/schema-utils-npm-2.7.1-f84d18c473-32c62fc9e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/schema-utils-npm-2.7.1-f84d18c473-32c62fc9e2.zip -------------------------------------------------------------------------------- /.yarn/cache/schema-utils-npm-3.1.2-d97c6dc247-39683edfe3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/schema-utils-npm-3.1.2-d97c6dc247-39683edfe3.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-5.7.2-938ee91eaa-fb4ab5e0dd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/semver-npm-5.7.2-938ee91eaa-fb4ab5e0dd.zip -------------------------------------------------------------------------------- /.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-39b3dd9630.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-39b3dd9630.zip -------------------------------------------------------------------------------- /.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-9eed175030.zip -------------------------------------------------------------------------------- /.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-6b52fe8727.zip -------------------------------------------------------------------------------- /.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-404c5a752c.zip -------------------------------------------------------------------------------- /.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1a2bcae50d.zip -------------------------------------------------------------------------------- /.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-5f01201f4e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/shell-quote-npm-1.8.1-fcccf06093-5f01201f4e.zip -------------------------------------------------------------------------------- /.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/side-channel-npm-1.0.4-e1f38b9e06-351e41b947.zip -------------------------------------------------------------------------------- /.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip -------------------------------------------------------------------------------- /.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/slash-npm-3.0.0-b87de2279a-94a93fff61.zip -------------------------------------------------------------------------------- /.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/slice-ansi-npm-4.0.0-6eeca1d10e-4a82d7f085.zip -------------------------------------------------------------------------------- /.yarn/cache/source-list-map-npm-2.0.1-625c551052-806efc6f75.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/source-list-map-npm-2.0.1-625c551052-806efc6f75.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-loader-npm-1.0.2-d8fe4f70f6-0360b536e9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/source-map-loader-npm-1.0.2-d8fe4f70f6-0360b536e9.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/source-map-npm-0.6.1-1a3621db16-59ce8640cf.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-43e98d700d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/source-map-support-npm-0.5.21-09ca99e250-43e98d700d.zip -------------------------------------------------------------------------------- /.yarn/cache/spdx-correct-npm-3.2.0-ffae008484-e9ae98d22f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/spdx-correct-npm-3.2.0-ffae008484-e9ae98d22f.zip -------------------------------------------------------------------------------- /.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-cb69a26fa3.zip -------------------------------------------------------------------------------- /.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-a1c6e104a2.zip -------------------------------------------------------------------------------- /.yarn/cache/spdx-license-ids-npm-3.0.13-928dd45e3f-3469d85c65.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/spdx-license-ids-npm-3.0.13-928dd45e3f-3469d85c65.zip -------------------------------------------------------------------------------- /.yarn/cache/sql-formatter-npm-6.1.2-aad5665c2d-be16800748.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/sql-formatter-npm-6.1.2-aad5665c2d-be16800748.zip -------------------------------------------------------------------------------- /.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.padend-npm-3.1.4-0b31461a40-76e07238fe.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/string.prototype.padend-npm-3.1.4-0b31461a40-76e07238fe.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/string.prototype.trim-npm-1.2.7-3fbaf3b9d2-05b7b2d6af.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/string.prototype.trimend-npm-1.0.6-304246ecc1-0fdc34645a.zip -------------------------------------------------------------------------------- /.yarn/cache/string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/string.prototype.trimstart-npm-1.0.6-0926caea6c-89080feef4.zip -------------------------------------------------------------------------------- /.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip -------------------------------------------------------------------------------- /.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-8d50ff27b7.zip -------------------------------------------------------------------------------- /.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-492f73e272.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-3dda818de0.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-color-npm-8.1.1-289e937149-c052193a7e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/supports-color-npm-8.1.1-289e937149-c052193a7e.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip -------------------------------------------------------------------------------- /.yarn/cache/table-npm-6.8.1-83abb79e20-08249c7046.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/table-npm-6.8.1-83abb79e20-08249c7046.zip -------------------------------------------------------------------------------- /.yarn/cache/tapable-npm-2.2.1-8cf5ff3039-3b7a1b4d86.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/tapable-npm-2.2.1-8cf5ff3039-3b7a1b4d86.zip -------------------------------------------------------------------------------- /.yarn/cache/terser-npm-5.17.6-8931b8d439-9c0ab0261a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/terser-npm-5.17.6-8931b8d439-9c0ab0261a.zip -------------------------------------------------------------------------------- /.yarn/cache/terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/terser-webpack-plugin-npm-5.3.9-7ba1eb45f4-41705713d6.zip -------------------------------------------------------------------------------- /.yarn/cache/text-table-npm-0.2.0-d92a778b59-b6937a38c8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/text-table-npm-0.2.0-d92a778b59-b6937a38c8.zip -------------------------------------------------------------------------------- /.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip -------------------------------------------------------------------------------- /.yarn/cache/tr46-npm-2.1.0-00af583f4f-ffe6049b9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/tr46-npm-2.1.0-00af583f4f-ffe6049b9d.zip -------------------------------------------------------------------------------- /.yarn/cache/type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip -------------------------------------------------------------------------------- /.yarn/cache/type-fest-npm-0.20.2-b36432617f-4fb3272df2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/type-fest-npm-0.20.2-b36432617f-4fb3272df2.zip -------------------------------------------------------------------------------- /.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/typed-array-length-npm-1.0.4-92771b81fc-2228febc93.zip -------------------------------------------------------------------------------- /.yarn/cache/typestyle-npm-2.4.0-b0325c02c5-8b4f02c24f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/typestyle-npm-2.4.0-b0325c02c5-8b4f02c24f.zip -------------------------------------------------------------------------------- /.yarn/cache/unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/unbox-primitive-npm-1.0.2-cb56a05066-b7a1cf5862.zip -------------------------------------------------------------------------------- /.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip -------------------------------------------------------------------------------- /.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-7167432de6.zip -------------------------------------------------------------------------------- /.yarn/cache/url-parse-npm-1.5.10-64fa2bcd6d-fbdba6b1d8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/url-parse-npm-1.5.10-64fa2bcd6d-fbdba6b1d8.zip -------------------------------------------------------------------------------- /.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip -------------------------------------------------------------------------------- /.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-35703ac889.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-35703ac889.zip -------------------------------------------------------------------------------- /.yarn/cache/validate.io-array-npm-1.0.6-d265c3d6a6-54eca83ebc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate.io-array-npm-1.0.6-d265c3d6a6-54eca83ebc.zip -------------------------------------------------------------------------------- /.yarn/cache/validate.io-function-npm-1.0.2-06c17f312a-e4cce2479a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate.io-function-npm-1.0.2-06c17f312a-e4cce2479a.zip -------------------------------------------------------------------------------- /.yarn/cache/validate.io-integer-array-npm-1.0.0-4e2b9a9418-5f6d7fab8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate.io-integer-array-npm-1.0.0-4e2b9a9418-5f6d7fab8d.zip -------------------------------------------------------------------------------- /.yarn/cache/validate.io-integer-npm-1.0.5-e0e50c7216-88b3f8bb5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate.io-integer-npm-1.0.5-e0e50c7216-88b3f8bb5a.zip -------------------------------------------------------------------------------- /.yarn/cache/validate.io-number-npm-1.0.3-03b6276c54-42418aeb6c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/validate.io-number-npm-1.0.3-03b6276c54-42418aeb6c.zip -------------------------------------------------------------------------------- /.yarn/cache/vscode-jsonrpc-npm-6.0.0-4e625ea1b8-3a67a56f28.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/vscode-jsonrpc-npm-6.0.0-4e625ea1b8-3a67a56f28.zip -------------------------------------------------------------------------------- /.yarn/cache/vscode-jsonrpc-npm-8.1.0-557f20ee72-8980037cc0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/vscode-jsonrpc-npm-8.1.0-557f20ee72-8980037cc0.zip -------------------------------------------------------------------------------- /.yarn/cache/vscode-ws-jsonrpc-npm-1.0.2-2040a80420-eb2fdb5c96.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/vscode-ws-jsonrpc-npm-1.0.2-2040a80420-eb2fdb5c96.zip -------------------------------------------------------------------------------- /.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-1f526507aa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-1f526507aa.zip -------------------------------------------------------------------------------- /.yarn/cache/webpack-merge-npm-5.9.0-9110e650de-64fe2c23aa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/webpack-merge-npm-5.9.0-9110e650de-64fe2c23aa.zip -------------------------------------------------------------------------------- /.yarn/cache/webpack-sources-npm-1.4.3-2b3a9b1de0-37463dad8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/webpack-sources-npm-1.4.3-2b3a9b1de0-37463dad8d.zip -------------------------------------------------------------------------------- /.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-989e401b9f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/webpack-sources-npm-3.2.3-6bfb5d9563-989e401b9f.zip -------------------------------------------------------------------------------- /.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-23eb885940.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-23eb885940.zip -------------------------------------------------------------------------------- /.yarn/cache/whatwg-url-npm-8.7.0-67af66db8f-a87abcc6ce.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/whatwg-url-npm-8.7.0-67af66db8f-a87abcc6ce.zip -------------------------------------------------------------------------------- /.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/which-boxed-primitive-npm-1.0.2-e214f9ae5a-53ce774c73.zip -------------------------------------------------------------------------------- /.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-f2e185c624.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-f2e185c624.zip -------------------------------------------------------------------------------- /.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip -------------------------------------------------------------------------------- /.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/which-typed-array-npm-1.1.9-9559c95dfc-fe0178ca44.zip -------------------------------------------------------------------------------- /.yarn/cache/wildcard-npm-2.0.1-7c6a3a3365-e0c60a12a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/wildcard-npm-2.0.1-7c6a3a3365-e0c60a12a2.zip -------------------------------------------------------------------------------- /.yarn/cache/worker-loader-npm-3.0.8-6423aa0002-84f4a7eeb2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/worker-loader-npm-3.0.8-6423aa0002-84f4a7eeb2.zip -------------------------------------------------------------------------------- /.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip -------------------------------------------------------------------------------- /.yarn/cache/y-protocols-npm-1.0.5-af6f64b4df-d19404a4eb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/y-protocols-npm-1.0.5-af6f64b4df-d19404a4eb.zip -------------------------------------------------------------------------------- /.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip -------------------------------------------------------------------------------- /.yarn/cache/yjs-npm-13.6.1-dc86ba0017-bf18ed3f53.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/yjs-npm-13.6.1-dc86ba0017-bf18ed3f53.zip -------------------------------------------------------------------------------- /.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-f77b3d8d00.zip -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | enableImmutableInstalls: false 2 | nodeLinker: node-modules 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, CybercenterCanada 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jupyterlab_sql_editor 2 | 3 | [![Github Actions Status](https://github.com/CybercentreCanada/jupyterlab-sql-editor.git/workflows/Build/badge.svg)](https://github.com/CybercentreCanada/jupyterlab-sql-editor.git/actions/workflows/build.yml) 4 | SQL editor support for formatting, syntax highlighting and code completion of SQL in cell magic, line magic, python string and file editor. 5 | 6 | ## Requirements 7 | 8 | - JupyterLab >= 4.0.0 9 | 10 | ## Install 11 | 12 | To install the extension, execute: 13 | 14 | ```bash 15 | pip install jupyterlab_sql_editor[all] 16 | ``` 17 | 18 | ## Uninstall 19 | 20 | To remove the extension, execute: 21 | 22 | ```bash 23 | pip uninstall jupyterlab_sql_editor 24 | ``` 25 | 26 | ## Contributing 27 | 28 | ### Development install 29 | 30 | Note: You will need NodeJS to build the extension package. 31 | 32 | The `jlpm` command is JupyterLab's pinned version of 33 | [yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use 34 | `yarn` or `npm` in lieu of `jlpm` below. 35 | 36 | ```bash 37 | # Clone the repo to your local environment 38 | # Change directory to the jupyterlab_sql_editor directory 39 | # Install package in development mode 40 | pip install -e .[all] 41 | # Link your development version of the extension with JupyterLab 42 | jupyter labextension develop . --overwrite 43 | # Rebuild extension Typescript source after making changes 44 | jlpm build 45 | ``` 46 | 47 | You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension. 48 | 49 | ```bash 50 | # Watch the source directory in one terminal, automatically rebuilding when needed 51 | jlpm watch 52 | # Run JupyterLab in another terminal 53 | jupyter lab 54 | ``` 55 | 56 | With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt). 57 | 58 | By default, the `jlpm build` command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command: 59 | 60 | ```bash 61 | jupyter lab build --minimize=False 62 | ``` 63 | 64 | ### Development uninstall 65 | 66 | ```bash 67 | pip uninstall jupyterlab_sql_editor 68 | ``` 69 | 70 | In development mode, you will also need to remove the symlink created by `jupyter labextension develop` 71 | command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` 72 | folder is located. Then you can remove the symlink named `jupyterlab-sql-editor` within that folder. 73 | 74 | ### Packaging the extension 75 | 76 | See [RELEASE](RELEASE.md) 77 | -------------------------------------------------------------------------------- /RELEASE.md: -------------------------------------------------------------------------------- 1 | # Making a new release of jupyterlab_sql_editor 2 | 3 | The extension can be published to `PyPI` and `npm` manually or using the [Jupyter Releaser](https://github.com/jupyter-server/jupyter_releaser). 4 | 5 | ## Manual release 6 | 7 | ### Python package 8 | 9 | This extension can be distributed as Python packages. All of the Python 10 | packaging instructions are in the `pyproject.toml` file to wrap your extension in a 11 | Python package. Before generating a package, you first need to install some tools: 12 | 13 | ```bash 14 | pip install build twine hatch 15 | ``` 16 | 17 | Bump the version using `hatch`. By default this will create a tag. 18 | See the docs on [hatch-nodejs-version](https://github.com/agoose77/hatch-nodejs-version#semver) for details. 19 | 20 | ```bash 21 | hatch version 22 | ``` 23 | 24 | Make sure to clean up all the development files before building the package: 25 | 26 | ```bash 27 | jlpm clean:all 28 | ``` 29 | 30 | You could also clean up the local git repository: 31 | 32 | ```bash 33 | git clean -dfX 34 | ``` 35 | 36 | To create a Python source package (`.tar.gz`) and the binary package (`.whl`) in the `dist/` directory, do: 37 | 38 | ```bash 39 | python -m build 40 | ``` 41 | 42 | > `python setup.py sdist bdist_wheel` is deprecated and will not work for this package. 43 | 44 | Then to upload the package to PyPI, do: 45 | 46 | ```bash 47 | twine upload dist/* 48 | ``` 49 | 50 | ### NPM package 51 | 52 | To publish the frontend part of the extension as a NPM package, do: 53 | 54 | ```bash 55 | npm login 56 | npm publish --access public 57 | ``` 58 | 59 | ## Automated releases with the Jupyter Releaser 60 | 61 | The extension repository should already be compatible with the Jupyter Releaser. 62 | 63 | Check out the [workflow documentation](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html) for more information. 64 | 65 | Here is a summary of the steps to cut a new release: 66 | 67 | - Add tokens to the [Github Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) in the repository: 68 | - `ADMIN_GITHUB_TOKEN` (with "public_repo" and "repo:status" permissions); see the [documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) 69 | - `NPM_TOKEN` (with "automation" permission); see the [documentation](https://docs.npmjs.com/creating-and-viewing-access-tokens) 70 | - Set up PyPI 71 | 72 |
Using PyPI trusted publisher (modern way) 73 | 74 | - Set up your PyPI project by [adding a trusted publisher](https://docs.pypi.org/trusted-publishers/adding-a-publisher/) 75 | - The _workflow name_ is `publish-release.yml` and the _environment_ should be left blank. 76 | - Ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.pypi.org/trusted-publishers/using-a-publisher/)) 77 | 78 |
79 | 80 |
Using PyPI token (legacy way) 81 | 82 | - If the repo generates PyPI release(s), create a scoped PyPI [token](https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#saving-credentials-on-github). We recommend using a scoped token for security reasons. 83 | 84 | - You can store the token as `PYPI_TOKEN` in your fork's `Secrets`. 85 | 86 | - Advanced usage: if you are releasing multiple repos, you can create a secret named `PYPI_TOKEN_MAP` instead of `PYPI_TOKEN` that is formatted as follows: 87 | 88 | ```text 89 | owner1/repo1,token1 90 | owner2/repo2,token2 91 | ``` 92 | 93 | If you have multiple Python packages in the same repository, you can point to them as follows: 94 | 95 | ```text 96 | owner1/repo1/path/to/package1,token1 97 | owner1/repo1/path/to/package2,token2 98 | ``` 99 | 100 |
101 | 102 | - Go to the Actions panel 103 | - Run the "Step 1: Prep Release" workflow 104 | - Check the draft changelog 105 | - Run the "Step 2: Publish Release" workflow 106 | 107 | ## Publishing to `conda-forge` 108 | 109 | If the package is not on conda forge yet, check the documentation to learn how to add it: https://conda-forge.org/docs/maintainer/adding_pkgs.html 110 | 111 | Otherwise a bot should pick up the new version publish to PyPI, and open a new PR on the feedstock repository automatically. 112 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | trigger: 2 | branches: 3 | include: 4 | - main 5 | 6 | pool: 'cybertron-build-pool' 7 | 8 | variables: 9 | tag: '$(Build.BuildId)' 10 | 11 | stages: 12 | - stage: Build_and_Publish_Python_Artifact 13 | displayName: Build, package and publish python artifacts. 14 | jobs: 15 | - job: BuildPythonArtifact 16 | displayName: Build and package python artifacts. 17 | strategy: 18 | matrix: 19 | Python: 20 | python.version: '3.11' 21 | 22 | steps: 23 | - task: NodeTool@0 24 | inputs: 25 | versionSpec: '20.x' 26 | 27 | - script: | 28 | virtualenv -p python$(python.version) env 29 | source env/bin/activate 30 | python -m pip install -U "jupyterlab>=4.0.0,<5" 31 | displayName: 'Install dependencies' 32 | 33 | - script: | 34 | set -eux 35 | source env/bin/activate 36 | jlpm 37 | jlpm run lint:check 38 | displayName: 'Lint the extension' 39 | 40 | - script: | 41 | set -eux 42 | source env/bin/activate 43 | python -m pip install -v .[all] 44 | displayName: 'Build the extension' 45 | 46 | - script: | 47 | set -eux 48 | 49 | echo '.$(tag)' >> version.txt 50 | source env/bin/activate 51 | pip install build 52 | python -m build 53 | displayName: 'Package the extension' 54 | 55 | - task: CopyFiles@2 56 | inputs: 57 | contents: 'dist/**' 58 | targetFolder: $(Build.ArtifactStagingDirectory) 59 | displayName: 'Stage build artifact to publish' 60 | 61 | - task: PublishBuildArtifacts@1 62 | inputs: 63 | pathtoPublish: '$(Build.ArtifactStagingDirectory)/dist' 64 | artifactName: 'dist' 65 | publishLocation: 'Container' 66 | displayName: 'Publish build artifacts' 67 | 68 | - job: PublishArtifactToAPAFeed 69 | displayName: Publish artifact to APA feed 70 | dependsOn: BuildPythonArtifact 71 | steps: 72 | - task: DownloadBuildArtifacts@0 73 | inputs: 74 | buildType: 'current' 75 | downloadType: 'specific' 76 | downloadPath: '$(Pipeline.Workspace)' 77 | displayName: 'Download build artifact' 78 | 79 | - task: TwineAuthenticate@1 80 | inputs: 81 | artifactFeed: Analytical Platform/analytical-platform 82 | displayName: 'Twine Authenticate' 83 | 84 | - script: | 85 | virtualenv -p python$(python.version) env 86 | source env/bin/activate 87 | pip install twine 88 | python -m twine upload --skip-existing -r analytical-platform --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose 89 | displayName: 'Publish artifact to analytical-platform feed' 90 | 91 | - job: PublishArtifactToBoHFeed 92 | displayName: Publish artifact to BoH feed 93 | dependsOn: BuildPythonArtifact 94 | steps: 95 | - task: DownloadBuildArtifacts@0 96 | inputs: 97 | buildType: 'current' 98 | downloadType: 'specific' 99 | downloadPath: '$(Pipeline.Workspace)' 100 | displayName: 'Download build artifact' 101 | 102 | - task: TwineAuthenticate@1 103 | inputs: 104 | pythonUploadServiceConnection: pypi-bagofholding 105 | displayName: 'Twine Authenticate' 106 | 107 | - script: | 108 | virtualenv -p python$(python.version) env 109 | source env/bin/activate 110 | pip install twine 111 | python -m twine upload --skip-existing -r pypi-bagofholding --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose 112 | displayName: 'Publish artifact to BoH feed' 113 | 114 | - job: PublishArtifactToPypi 115 | displayName: Publish artifact to PyPI 116 | dependsOn: BuildPythonArtifact 117 | steps: 118 | - task: DownloadBuildArtifacts@0 119 | inputs: 120 | buildType: 'current' 121 | downloadType: 'specific' 122 | downloadPath: '$(Pipeline.Workspace)' 123 | displayName: 'Download build artifact' 124 | 125 | - task: TwineAuthenticate@1 126 | inputs: 127 | pythonUploadServiceConnection: cccs-pypi 128 | displayName: 'Twine Authenticate' 129 | 130 | - script: | 131 | virtualenv -p python$(python.version) env 132 | source env/bin/activate 133 | pip install twine 134 | python -m twine upload --skip-existing -r "cccs-pypi" --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/dist/* --verbose 135 | displayName: 'Publish artifact to PyPI' 136 | -------------------------------------------------------------------------------- /docs/img/args.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/args.png -------------------------------------------------------------------------------- /docs/img/auto_functions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/auto_functions.png -------------------------------------------------------------------------------- /docs/img/capture_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/capture_view.png -------------------------------------------------------------------------------- /docs/img/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/config.png -------------------------------------------------------------------------------- /docs/img/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/create.png -------------------------------------------------------------------------------- /docs/img/dataframe_capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dataframe_capture.png -------------------------------------------------------------------------------- /docs/img/dbt_html_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_html_output.png -------------------------------------------------------------------------------- /docs/img/dbt_jinja_sql_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_jinja_sql_output.png -------------------------------------------------------------------------------- /docs/img/dbt_jinja_table_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_jinja_table_name.png -------------------------------------------------------------------------------- /docs/img/dbt_sparksql_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_sparksql_config.png -------------------------------------------------------------------------------- /docs/img/dbt_sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_sql.png -------------------------------------------------------------------------------- /docs/img/dbt_sql_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_sql_output.png -------------------------------------------------------------------------------- /docs/img/dbt_sql_output_option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/dbt_sql_output_option.png -------------------------------------------------------------------------------- /docs/img/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/doc.png -------------------------------------------------------------------------------- /docs/img/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/example.png -------------------------------------------------------------------------------- /docs/img/format-cell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/format-cell.gif -------------------------------------------------------------------------------- /docs/img/ipydatagrid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/ipydatagrid.gif -------------------------------------------------------------------------------- /docs/img/jinja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/jinja.png -------------------------------------------------------------------------------- /docs/img/json-output.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/json-output.gif -------------------------------------------------------------------------------- /docs/img/jupyterlab-lsp-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/jupyterlab-lsp-config.png -------------------------------------------------------------------------------- /docs/img/magic_documentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/magic_documentation.png -------------------------------------------------------------------------------- /docs/img/multi-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/multi-output.png -------------------------------------------------------------------------------- /docs/img/pre-configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/pre-configure.png -------------------------------------------------------------------------------- /docs/img/python-string.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/python-string.gif -------------------------------------------------------------------------------- /docs/img/qgrid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/qgrid.gif -------------------------------------------------------------------------------- /docs/img/schema_widget.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/schema_widget.gif -------------------------------------------------------------------------------- /docs/img/spark-inner-join.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/spark-inner-join.gif -------------------------------------------------------------------------------- /docs/img/sparksql-nested-columns.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/sparksql-nested-columns.gif -------------------------------------------------------------------------------- /docs/img/sql-in-python-string.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/sql-in-python-string.gif -------------------------------------------------------------------------------- /docs/img/trino-inner-join.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/trino-inner-join.gif -------------------------------------------------------------------------------- /docs/img/vscode-dbt-completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/vscode-dbt-completed.png -------------------------------------------------------------------------------- /docs/img/vscode-dbt-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/vscode-dbt-config.png -------------------------------------------------------------------------------- /docs/img/vscode-dbt-power.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/vscode-dbt-power.png -------------------------------------------------------------------------------- /docs/img/vscode-dbt-suggestions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/docs/img/vscode-dbt-suggestions.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # jupyterlab-sql-editor 2 | 3 | A JupyterLab extension providing the following features via `%%sparksql` and `%%trino` magics: 4 | 5 | - SQL formatter 6 | - Automatic extraction of database schemas 7 | - Auto-completion triggered by `tab` or `dot` for: 8 | - table names 9 | - table aliases 10 | - table joins 11 | - nested column names 12 | - functions 13 | - Syntax highlighting for: 14 | - line magic 15 | - cell magic 16 | - Python strings 17 | -------------------------------------------------------------------------------- /docs/trino.md: -------------------------------------------------------------------------------- 1 | # trino magic 2 | 3 | A JupyterLab extension providing the following features via `%%sparksql` and `%%trino` magics: 4 | 5 | - SQL formatter 6 | - Automatic extraction of database schemas 7 | - Auto-completion triggered by `tab` or `dot` for: 8 | - table names 9 | - table aliases 10 | - table joins 11 | - nested column names 12 | - functions 13 | - Syntax highlighting for: 14 | - line magic 15 | - cell magic 16 | - Python strings 17 | 18 | ## Usage 19 | 20 | Parameter usage example: 21 | 22 | ``` 23 | %%trino -c catalog -l 10 --dataframe df 24 | 25 | ``` 26 | 27 | | Parameter | Description | 28 | | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 29 | | `-c NAME`, `--catalog NAME` | Trino catalog to use. | 30 | | `-s NAME`, `--schema NAME` | Trino schema to use. | 31 | | `-l LIMIT`, `--limit LIMIT` | The maximum number of rows to display. A value of zero is equivalent to `--output skip` | 32 | | `-r all\|none`, `--refresh all\|none` | Force the regeneration of the schema cache file. | 33 | | `-d NAME`, `--dataframe NAME` | Capture results in pandas dataframe named `NAME`. | 34 | | `-i NAME`, `--input NAME` | Display pandas dataframe named `NAME`. | 35 | | `-o sql\|json\|html\|aggrid\|grid\|text\|schema\|skip\|none`, `--output sql\|json\|html\|aggrid\|grid\|text\|schema\|skip\|none` | Output format. Defaults to html. The `sql` option prints the SQL statement that will be executed (useful to test jinja templated statements). | 36 | | `-s`, `--show-nonprinting` | Replace none printable characters with their ascii codes (`LF` -> `\x0a`). | 37 | | `-j`, `--jinja` | Enable Jinja templating support. | 38 | | `-t LIMIT`, `--truncate LIMIT` | Truncate output. | 39 | | _DEPRECATED_ ~~`-x STATEMENT`, `--raw STATEMENT`~~ | ~~Run statement as is. Do not wrap statement with a limit. Use this option to run statement which can't be wrapped in a `SELECT`/`LIMIT` statement. For example `EXPLAIN`, `SHOW TABLE`, `SHOW CATALOGS`.~~ | 40 | -------------------------------------------------------------------------------- /example/SparkSyntaxDemo.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "id": "09e975dc", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "%%sparksql --dataframe df -c --eager -v MY_VIEW --limit 12 -f adir/out.json -t 60\n", 11 | "-- cell magic\n", 12 | "SELECT *\n", 13 | "FROM student AS cellmagic\n" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": null, 19 | "id": "bc5ca615", 20 | "metadata": {}, 21 | "outputs": [], 22 | "source": [ 23 | "%sparksql -d df SELECT * from student where x=1" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": null, 29 | "id": "dc2339aa", 30 | "metadata": {}, 31 | "outputs": [], 32 | "source": [ 33 | "%sparksql --dataframe df -c --eager -v MY_VIEW --limit 12 -f adir/out.json -t 60 SELECT * from student -- line magic using no argument options like --eager" 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": null, 39 | "id": "dead937c", 40 | "metadata": {}, 41 | "outputs": [], 42 | "source": [ 43 | "\n", 44 | "%sparksql SELECT * FROM tab WHERE x = 1\n", 45 | "\n", 46 | "\n", 47 | "# select is not be highlighted anymore, but it does require a blank line (line 3 above)\n", 48 | "%sparksql --cache SELECT * FROM tab WHERE x = 2\n", 49 | "\n", 50 | "%sparksql --cache SELECT * FROM tab WHERE x = 3\n" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": null, 56 | "id": "5b0b7b32", 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "# mix python and SQL\n", 61 | "\n", 62 | "# python import\n", 63 | "import pyspark\n", 64 | "\n", 65 | "%sparksql SELECT s.age FROM student AS linemagic1 -- line magic in a mix cell\n", 66 | "\n", 67 | "%sparksql SELECT s.age FROM student AS linemagic2 -- another line magic in a mix cell\n", 68 | "\n", 69 | "# a python string with SQL within it\n", 70 | "sql = '''\n", 71 | "--start-sparksql anything here is ignored and is not included in the SQL statement for LSP\n", 72 | "select s.age from student as frompythonstring\n", 73 | "--end-sparksql\n", 74 | "'''\n", 75 | "\n", 76 | "# back to python\n", 77 | "print(sql)\n", 78 | "\n", 79 | "spark.sql(sql).show()" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": null, 85 | "id": "cb776ce4", 86 | "metadata": {}, 87 | "outputs": [], 88 | "source": [] 89 | } 90 | ], 91 | "metadata": { 92 | "kernelspec": { 93 | "display_name": "Python 3 (ipykernel)", 94 | "language": "python", 95 | "name": "python3" 96 | }, 97 | "language_info": { 98 | "codemirror_mode": { 99 | "name": "ipython", 100 | "version": 3 101 | }, 102 | "file_extension": ".py", 103 | "mimetype": "text/x-python", 104 | "name": "python", 105 | "nbconvert_exporter": "python", 106 | "pygments_lexer": "ipython3", 107 | "version": "3.8.0" 108 | } 109 | }, 110 | "nbformat": 4, 111 | "nbformat_minor": 5 112 | } 113 | -------------------------------------------------------------------------------- /example/contacts.json: -------------------------------------------------------------------------------- 1 | { 2 | "first Name": "Rack", 3 | "last Name": "Jackon", 4 | "age": 24, 5 | "address": { 6 | "streetAddress": "126", 7 | "city": "San Jone", 8 | "state": "CA", 9 | "postalCode": "394221" 10 | }, 11 | "phoneNumbers": [{ "type": "home", "number": "7383627627" }] 12 | } 13 | -------------------------------------------------------------------------------- /example/conversations.json: -------------------------------------------------------------------------------- 1 | { 2 | "first Name": "Rack", 3 | "last Name": "Jackon", 4 | "messages": [ 5 | { "time": "2022-01-15", "body": "hello" }, 6 | { "time": "2022-01-16", "body": "you there" } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /install.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageManager": "python", 3 | "packageName": "jupyterlab_sql_editor", 4 | "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package jupyterlab_sql_editor" 5 | } 6 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | from ._version import __version__ 3 | except ImportError: 4 | # Fallback when using the package in dev mode without installing 5 | # in editable mode with pip. It is highly recommended to install 6 | # the package from a stable release or in editable mode: https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs 7 | import warnings 8 | warnings.warn("Importing 'jupyterlab_sql_editor' outside a proper installation.") 9 | __version__ = "dev" 10 | 11 | 12 | def _jupyter_labextension_paths(): 13 | return [{ 14 | "src": "labextension", 15 | "dest": "jupyterlab-sql-editor" 16 | }] 17 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/jupyterlab_sql_editor/ipython_magic/__init__.py -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/base.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | 4 | import IPython 5 | from IPython.core.magic import Magics, magics_class 6 | from jinja2 import StrictUndefined, Template 7 | from pygments import highlight 8 | from pygments.formatters.html import HtmlFormatter 9 | from traitlets import Bool, Int, Unicode 10 | 11 | DEFAULT_SCHEMA_TTL = -1 12 | DEFAULT_CATALOGS = "" 13 | 14 | 15 | VARIABLE_NOT_FOUND_MSG = """ 16 | A Jinja template variable named {{{var_name}}} was located in your SQL statement. 17 | 18 | However Jinja was unable to substitute it's value because the variable "{var_name}" was not found in your ipython kernel. 19 | 20 | Option 1: If you intended to use a template variable make sure to assign a value to "{var_name}" 21 | """ 22 | 23 | HOW_TO_ESCAPE_MSG = """ 24 | Option 2: If you intended to include "{{" in your statement then you'll need to escape this special Jinja variable delimiter. 25 | 26 | To have Jinja ignore parts it would otherwise handle as variables or blocks. For example, if, with the default syntax, 27 | you want to use {{ as a raw string in a template and not start a variable, you have to use a trick. 28 | 29 | The easiest way to output a literal variable delimiter "{{" is by using a variable expression: 30 | 31 | {{ '{{' }} 32 | 33 | For bigger sections, it makes sense to mark a block raw. For example, to include example Jinja syntax in a template, 34 | you can use this snippet: 35 | 36 | %%trino --limit 3 37 | {% raw %} 38 | /* 39 | This is a comment which happens to contain a jinja template 40 | variable {{x}} that we want to keep as is. 41 | */ 42 | {% endraw %} 43 | 44 | SELECT 45 | * 46 | FROM 47 | {{ table_name }} 48 | 49 | """ 50 | 51 | RAISING_ERROR_MSG = "Raising an error to prevent statement from being executed incorrectly." 52 | 53 | 54 | class ExplainUndefined(StrictUndefined): 55 | __slots__ = () 56 | 57 | def __str__(self): 58 | print(VARIABLE_NOT_FOUND_MSG.format(var_name=self._undefined_name)) 59 | print(HOW_TO_ESCAPE_MSG) 60 | print(RAISING_ERROR_MSG) 61 | super().__str__(self) 62 | 63 | 64 | @magics_class 65 | class Base(Magics): 66 | limit = Int(20, config=True, help="The maximum number of rows to display") 67 | cacheTTL = Int( 68 | DEFAULT_SCHEMA_TTL, 69 | config=True, 70 | help=f"Re-generate output schema file if older than time specified (defaults to {DEFAULT_SCHEMA_TTL} minutes)", 71 | ) 72 | catalogs = Unicode( 73 | DEFAULT_CATALOGS, 74 | config=True, 75 | help=f'Retrive schema from the specified list of catalogs (defaults to "{DEFAULT_CATALOGS}")', 76 | ) 77 | interactive = Bool(False, config=True, help="Display results in interactive grid") 78 | outputFile = Unicode("", config=True, help="Output schema to specified file") 79 | 80 | def __init__(self, shell=None, **kwargs): 81 | super().__init__(shell, **kwargs) 82 | self.user_ns = {} 83 | 84 | @staticmethod 85 | def bind_variables(query, user_ns): 86 | template = Template(query, undefined=ExplainUndefined) 87 | return template.render(user_ns) 88 | 89 | def get_catalog_array(self): 90 | catalog_array = [] 91 | if "," in self.catalogs: 92 | catalog_array = self.catalogs.split(",") 93 | return catalog_array 94 | 95 | def get_sql_statement(self, cell, sql_argument, use_jinja): 96 | sql = cell 97 | if cell is None: 98 | sql = " ".join(sql_argument) 99 | if not sql: 100 | print("No sql statement to execute") 101 | elif use_jinja: 102 | sql = self.bind_variables(sql, self.user_ns) 103 | return sql 104 | 105 | def set_user_ns(self, local_ns): 106 | if local_ns is None: 107 | local_ns = {} 108 | 109 | self.user_ns = self.shell.user_ns.copy() 110 | self.user_ns.update(local_ns) 111 | 112 | @staticmethod 113 | def should_update_schema(schema_file_name, refresh_threshold): 114 | file_exists = os.path.isfile(schema_file_name) 115 | ttl_expired = False 116 | if file_exists: 117 | file_time = os.path.getmtime(schema_file_name) 118 | current_time = time.time() 119 | if current_time - file_time > (refresh_threshold * 60): 120 | print(f"TTL {refresh_threshold} minutes expired, re-generating schema file: {schema_file_name}") 121 | ttl_expired = True 122 | 123 | return (not file_exists) or ttl_expired 124 | 125 | def display_sql(self, sql): 126 | def _jupyterlab_repr_html_(self): 127 | fmt = HtmlFormatter() 128 | style = "".format( 129 | fmt.get_style_defs(".output_html"), fmt.get_style_defs(".jp-RenderedHTML") 130 | ) 131 | return style + highlight(self.data, self._get_lexer(), fmt) 132 | 133 | # Replace _repr_html_ with our own version that adds the 'jp-RenderedHTML' class 134 | # in addition to 'output_html'. 135 | IPython.display.Code._repr_html_ = _jupyterlab_repr_html_ 136 | return IPython.display.Code(data=sql, language="mysql") 137 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/__init__.py: -------------------------------------------------------------------------------- 1 | from .sparksql import SparkSql 2 | 3 | 4 | def load_ipython_extension(ipython): 5 | ipython.register_magics(SparkSql) 6 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/balls_line.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/jupyterlab_sql_editor/ipython_magic/sparksql/balls_line.gif -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/main.py: -------------------------------------------------------------------------------- 1 | import json 2 | import logging 3 | import os 4 | import pathlib 5 | import shutil 6 | import subprocess 7 | import sys 8 | import tempfile 9 | 10 | from jupyter_lsp.types import LanguageServerManagerAPI 11 | 12 | from jupyterlab_sql_editor.ipython_magic.util import find_nvm_lib_dirs, get_global_npm_path 13 | 14 | log_file = os.path.join(tempfile.gettempdir(), "sparksql-language-server-entrypoint.log") 15 | 16 | logging.basicConfig( 17 | format="%(asctime)s %(message)s", 18 | filename=log_file, 19 | level=logging.INFO, 20 | ) 21 | 22 | mgr = LanguageServerManagerAPI() 23 | 24 | # If jupyterlab-lsp has difficulty finding your sql-language-server 25 | # installation, specify additional node_modules paths through the 26 | # NVM_DIR environment variable. 27 | mgr.node_roots.extend(find_nvm_lib_dirs()) 28 | mgr.node_roots.extend(get_global_npm_path()) 29 | 30 | CONFIG = pathlib.Path(__file__).parent.parent 31 | NODE_MODULE = KEY = "sql-language-server" 32 | SCRIPTS = ["dist", "bin", "cli.js"] 33 | PATH_TO_BIN_JS = mgr.find_node_module(NODE_MODULE, *SCRIPTS) 34 | 35 | try: 36 | NODE_LOCATION = shutil.which("node") or shutil.which("node.exe") or shutil.which("node.cmd") 37 | NODE = str(pathlib.Path(NODE_LOCATION).resolve()) 38 | logging.info(f"Node location: {NODE}") 39 | except Exception: 40 | NODE_LOCATION = NODE = "" 41 | 42 | 43 | def main(): 44 | if NODE and PATH_TO_BIN_JS: 45 | logging.info(f"Path to Node: {NODE}. Path to sql-language-server binary: {PATH_TO_BIN_JS}.") 46 | process = subprocess.Popen([NODE, PATH_TO_BIN_JS, *sys.argv[1:]], stdin=sys.stdin, stdout=sys.stdout) 47 | logging.info(f"Node process started with pid: {process.pid}") 48 | sys.exit(process.wait()) 49 | 50 | 51 | def load(app): 52 | logging.info("sparksql language server load function called.") 53 | if not NODE: 54 | raise Exception("Node not available.") 55 | if not PATH_TO_BIN_JS: 56 | raise Exception(f"sql-language-server binary not available for {mgr.node_roots}.") 57 | try: 58 | config_schema = json.loads((CONFIG / "{}.schema.json".format(KEY)).read_text(encoding="utf-8")) 59 | except Exception as e: 60 | logging.error(f"Failed to load config schema: {e}") 61 | config_schema = {} 62 | return { 63 | "sparksql-language-server": { 64 | "version": 2, 65 | "argv": ["sparksql_language_server", "up", "--method", "stdio"], 66 | "languages": ["sparksql"], 67 | "display_name": "Spark language server", 68 | "mime_types": ["application/sparksql", "text/x-sparksql"], 69 | "config_schema": config_schema, 70 | } 71 | } 72 | 73 | 74 | if __name__ == "__main__": 75 | main() 76 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/spark_export.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | from jupyterlab_sql_editor.ipython_magic.export import ( 4 | Catalog, 5 | Connection, 6 | Function, 7 | SchemaExporter, 8 | SparkTableSchema, 9 | Table, 10 | ) 11 | 12 | 13 | class SparkConnection(Connection): 14 | def __init__(self, spark) -> None: 15 | self.spark = spark 16 | 17 | def render_table(self, table: Table): 18 | catalog_name = table.catalog_name 19 | database_name = table.database_name 20 | table_name = table.table_name 21 | 22 | if catalog_name == "spark_catalog": 23 | catalog_name = None 24 | 25 | if database_name == "": 26 | database_name = None 27 | 28 | full_table_name = table_name 29 | 30 | if database_name: 31 | full_table_name = database_name + "." + full_table_name 32 | if catalog_name: 33 | full_table_name = catalog_name + "." + full_table_name 34 | 35 | catalog = catalog_name if catalog_name else "spark_catalog" 36 | self.spark.sql(f"USE {catalog}") 37 | columns = self._get_columns(full_table_name) 38 | return { 39 | "columns": columns, 40 | "tableName": table_name, 41 | "database": database_name, 42 | "catalog": catalog_name, 43 | } 44 | 45 | def render_function(self, function: Function): 46 | return { 47 | "name": function.function_name, 48 | "description": self._get_description(function.function_name), 49 | } 50 | 51 | def _get_columns(self, full_table_name): 52 | schema = self.spark.table(full_table_name).schema 53 | table_schema = SparkTableSchema(schema) 54 | return table_schema.convert() 55 | 56 | def get_function_names(self): 57 | self.spark.sql("USE spark_catalog") 58 | rows = self.spark.sql("SHOW FUNCTIONS").collect() 59 | function_names = [] 60 | for r in rows: 61 | function_names.append(r.function) 62 | return function_names 63 | 64 | def _get_description(self, function_name): 65 | rows = self.spark.sql(f"DESCRIBE FUNCTION EXTENDED {function_name}").collect() 66 | text_lines = list(map(lambda r: r.function_desc, rows)) 67 | return "\n".join(text_lines) 68 | 69 | def get_table_names(self, catalog_name, database_name): 70 | table_names = [] 71 | try: 72 | if catalog_name and database_name: 73 | rows = self.spark.sql(f"SHOW TABLES IN {catalog_name}.{database_name}").collect() 74 | else: 75 | rows = self.spark.sql("SHOW TABLES").collect() 76 | for r in rows: 77 | # depending if iceberg catalogs are use you might get results 78 | # with either a database or namespace column 79 | if getattr(r, "database", "") == database_name or getattr(r, "namespace", "") == database_name: 80 | table_names.append(r["tableName"]) 81 | except Exception: 82 | # Skip problematic database 83 | ( 84 | print(f"Exception listing tables for {catalog_name}.{database_name}") 85 | if catalog_name and database_name 86 | else print("Exception listing tables") 87 | ) 88 | return table_names 89 | 90 | def get_database_names(self, catalog_name): 91 | self.spark.sql(f"USE {catalog_name}") 92 | rows = self.spark.sql("SHOW DATABASES").collect() 93 | database_names = [] 94 | for r in rows: 95 | database_names.append(r["namespace"]) 96 | if catalog_name == "spark_catalog": 97 | database_names.append("") 98 | return database_names 99 | 100 | 101 | def update_database_schema(spark, schema_file_name, catalog_names): 102 | connection = SparkConnection(spark) 103 | local_catalog = Catalog(connection, "spark_catalog") 104 | catalogs: list[Catalog] = [] 105 | for name in catalog_names: 106 | catalogs.append(Catalog(connection, name)) 107 | catalogs.append(local_catalog) 108 | exp = SchemaExporter(connection, schema_file_name, catalogs, local_catalog) 109 | exp.update_schema() 110 | 111 | 112 | def update_local_database(spark, schema_file_name: Path, catalog_array): 113 | # If file doesn't exist, just do a --refresh all instead 114 | if not schema_file_name.exists(): 115 | update_database_schema(spark, schema_file_name, catalog_array) 116 | return 117 | connection = SparkConnection(spark) 118 | local_catalog = Catalog(connection, "spark_catalog") 119 | exp = SchemaExporter(connection, schema_file_name, None, local_catalog, display_progress=False) 120 | exp.update_local_schema() 121 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/spark_schema_widget.py: -------------------------------------------------------------------------------- 1 | from ipytree import Node, Tree 2 | from pyspark.sql.types import ( 3 | ArrayType, 4 | AtomicType, 5 | BinaryType, 6 | BooleanType, 7 | ByteType, 8 | DataType, 9 | DateType, 10 | DayTimeIntervalType, 11 | DecimalType, 12 | DoubleType, 13 | FloatType, 14 | FractionalType, 15 | IntegerType, 16 | IntegralType, 17 | LongType, 18 | MapType, 19 | NullType, 20 | NumericType, 21 | ShortType, 22 | StringType, 23 | StructField, 24 | StructType, 25 | TimestampNTZType, 26 | TimestampType, 27 | UserDefinedType, 28 | ) 29 | 30 | icons = { 31 | "time": "clock", 32 | "date": "calendar", 33 | "string": "at", 34 | "decimal": "percentage", 35 | "integer": "hashtag", 36 | "boolean": "check-circle", 37 | "binary": "delicious", 38 | "struct": "project-diagram", 39 | "array": "language", 40 | "map": "key", 41 | } 42 | 43 | 44 | class SparkSchemaWidget(Tree): 45 | def __init__(self, name, schema) -> None: 46 | super(SparkSchemaWidget, self).__init__() 47 | node = self.get_children(schema, name) 48 | self.add_node(node) 49 | 50 | complex_type = { 51 | "opened": False, 52 | "open_icon_style": "danger", 53 | "close_icon_style": "danger", 54 | "icon_style": "success", 55 | "open_icon": "angle-right", 56 | "close_icon": "angle-down", 57 | } 58 | 59 | def get_children(self, field, name): 60 | if type(field) is StructField: 61 | return self.get_children(field.dataType, field.name) 62 | elif type(field) is MapType: 63 | key = self.get_children(field.keyType, "key") 64 | value = self.get_children(field.valueType, "value") 65 | nodes = [key, value] 66 | return Node(f"{name}: Map", nodes, icon=icons["map"], **self.complex_type) 67 | elif type(field) is ArrayType: 68 | element = self.get_children(field.elementType, "element") 69 | nodes = [element] 70 | return Node(f"{name}: Array", nodes, icon=icons["array"], **self.complex_type) 71 | elif type(field) is StructType: 72 | nodes = [self.get_children(f, "") for f in field.fields] 73 | return Node(f"{name}: Struct", nodes, icon=icons["struct"], **self.complex_type) 74 | elif type(field) is StringType: 75 | return Node(f"{name}: String", icon=icons["string"]) 76 | elif type(field) is TimestampType: 77 | return Node(f"{name}: Timestamp", icon=icons["time"]) 78 | elif type(field) is TimestampNTZType: 79 | return Node(f"{name}: TimestampNTZ", icon=icons["time"]) 80 | elif type(field) is DateType: 81 | return Node(f"{name}: Date", icon=icons["date"]) 82 | elif type(field) is DayTimeIntervalType: 83 | return Node(f"{name}: DayTimeInternval", icon=icons["date"]) 84 | elif type(field) is LongType: 85 | return Node(f"{name}: Long", icon=icons["integer"]) 86 | elif type(field) is IntegerType: 87 | return Node(f"{name}: Integer", icon=icons["integer"]) 88 | elif type(field) is NullType: 89 | return Node(f"{name}: Null", icon=icons["boolean"]) 90 | elif type(field) is BooleanType: 91 | return Node(f"{name}: Boolean", icon=icons["boolean"]) 92 | elif type(field) is NumericType: 93 | return Node(f"{name}: Numeric", icon=icons["decimal"]) 94 | elif type(field) is DecimalType: 95 | return Node(f"{name}: Decimal", icon=icons["decimal"]) 96 | elif type(field) is DoubleType: 97 | return Node(f"{name}: Double", icon=icons["decimal"]) 98 | elif type(field) is FloatType: 99 | return Node(f"{name}: Float", icon=icons["decimal"]) 100 | elif type(field) is ShortType: 101 | return Node(f"{name}: Short", icon=icons["integer"]) 102 | elif type(field) is BinaryType: 103 | return Node(f"{name}: Binary", icon=icons["binary"]) 104 | elif type(field) is ByteType: 105 | return Node(f"{name}: Byte", icon=icons["binary"]) 106 | elif type(field) is FractionalType: 107 | return Node(f"{name}: Fractional", icon=icons["decimal"]) 108 | elif type(field) is IntegralType: 109 | return Node(f"{name}: Integral", icon=icons["decimal"]) 110 | elif type(field) is AtomicType: 111 | return Node(f"{name}: Atomic", icon=icons["boolean"]) 112 | elif type(field) is UserDefinedType: 113 | return Node(f"{name}: UserDefined", icon=icons["binary"]) 114 | elif isinstance(field, DataType): 115 | return Node(f"{name}: Data", icon=icons["binary"]) 116 | 117 | def to_tree(self): 118 | return self 119 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sparksql/sparkdf.py: -------------------------------------------------------------------------------- 1 | import inspect 2 | import os 3 | 4 | from IPython import get_ipython 5 | from IPython.display import HTML, TextDisplayObject, display 6 | from pyspark.sql.session import SparkSession 7 | 8 | import jupyterlab_sql_editor.ipython_magic.sparksql.spark_streaming_query as streaming 9 | from jupyterlab_sql_editor.ipython_magic.sparksql.spark_schema_widget import ( 10 | SparkSchemaWidget, 11 | ) 12 | from jupyterlab_sql_editor.outputters.outputters import _display_results 13 | 14 | 15 | def retrieve_name(var): 16 | """ 17 | Walk up the call stack trying to find the name of the variable 18 | holding the provided dataframe instance. 19 | """ 20 | top_name = None 21 | back_frame = inspect.currentframe().f_back 22 | while back_frame: 23 | callers_local_vars = back_frame.f_locals.items() 24 | for var_name, var_val in callers_local_vars: 25 | if var_val is var: 26 | # print(f"found value named: {var_name}") 27 | if var_name[0] != "_": 28 | top_name = var_name 29 | back_frame = back_frame.f_back 30 | return top_name 31 | 32 | 33 | class PlainText(TextDisplayObject): 34 | def __repr__(self): 35 | return self.data 36 | 37 | 38 | def display_link(): 39 | """ 40 | Display a link in notebook so a user can open the spark UI's details. 41 | """ 42 | link = SparkSession._instantiatedSession._sc.uiWebUrl 43 | appName = SparkSession._instantiatedSession._sc.appName 44 | applicationId = SparkSession._instantiatedSession._sc.applicationId 45 | reverse_proxy = os.environ.get("SPARK_UI_URL") 46 | if reverse_proxy: 47 | link = f"{reverse_proxy}/proxy/{applicationId}" 48 | display(HTML(f"""Open Spark UI ⭐ {appName}""")) 49 | 50 | 51 | def pyspark_dataframe_custom_formatter(df, self, cycle, limit=20): 52 | display_df(df, df, limit) 53 | return "" 54 | 55 | 56 | def display_df( 57 | original_df, 58 | df, 59 | pdf, 60 | limit=20, 61 | output="grid", 62 | truncate=256, 63 | show_nonprinting=False, 64 | query_name=None, 65 | sql=None, 66 | streaming_mode="update", 67 | args=None, 68 | ): 69 | query = None 70 | start_streaming_query = df is not None and df.isStreaming and output not in ["skip", "schema", "none"] 71 | if start_streaming_query: 72 | streaming_query_name = "default_streaming_query_name" 73 | if query_name: 74 | streaming_query_name = query_name 75 | ctx = streaming.get_streaming_ctx(streaming_query_name, df=original_df, sql=sql, mode=streaming_mode) 76 | query = ctx.query 77 | ctx.display_streaming_query() 78 | display_batch_df(ctx.query_microbatch(), limit, output, truncate, show_nonprinting, args) 79 | else: 80 | display_batch_df(df, pdf, limit, output, truncate, show_nonprinting, args) 81 | if query_name: 82 | print(f"Created temporary view `{query_name}`") 83 | original_df.createOrReplaceTempView(query_name) 84 | return query 85 | 86 | 87 | def display_batch_df(df, pdf, limit, output, truncate, show_nonprinting, args): 88 | """ 89 | Execute the query unerlying the dataframe and displays ipython widgets for the schema and the result. 90 | """ 91 | if output not in ["skip", "schema", "none"]: 92 | dataframe_name = retrieve_name(df) 93 | if not dataframe_name: 94 | dataframe_name = "schema" 95 | display(SparkSchemaWidget(dataframe_name, df.schema)) 96 | display_link() 97 | 98 | try: 99 | _display_results( 100 | pdf[:limit], 101 | output=output, 102 | truncate=truncate, 103 | show_nonprinting=show_nonprinting, 104 | args=args, 105 | ) 106 | except Exception: 107 | raise 108 | 109 | 110 | def register_display(): 111 | ip = get_ipython() 112 | plain_formatter = ip.display_formatter.formatters["text/plain"] 113 | plain_formatter.for_type_by_name("pyspark.sql.dataframe", "DataFrame", pyspark_dataframe_custom_formatter) 114 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/sql-language-server.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "SQL configuration", 3 | "type": "object", 4 | "properties": { 5 | "sqlLanguageServer.connections": { 6 | "type": "array", 7 | "default": [ 8 | { 9 | "name": "default sqlite3 connection", 10 | "adapter": "sqlite3", 11 | "filename": ":memory:", 12 | "projectPaths": ["."] 13 | } 14 | ], 15 | "items": { 16 | "type": "object", 17 | "required": ["name", "adapter"], 18 | "properties": { 19 | "name": { 20 | "description": "Connection name (free-form text)", 21 | "type": "string" 22 | }, 23 | "adapter": { 24 | "description": "Database type", 25 | "type": "string", 26 | "enum": [ 27 | "json", 28 | "mysql", 29 | "postgresql", 30 | "postgres", 31 | "sqlite3", 32 | "bigquery" 33 | ] 34 | }, 35 | "host": { 36 | "description": "Database host", 37 | "type": "string" 38 | }, 39 | "port": { 40 | "description": "Database port", 41 | "type": "number" 42 | }, 43 | "user": { 44 | "description": "Database user", 45 | "type": "string" 46 | }, 47 | "database": { 48 | "description": "Database name", 49 | "type": "string" 50 | }, 51 | "password": { 52 | "description": "Database password", 53 | "type": "string" 54 | }, 55 | "filename": { 56 | "description": "Database filename - only for sqlite3 (required); use ':memory:' for in-memory database", 57 | "type": "string" 58 | }, 59 | "projectPaths": { 60 | "description": "Project path that you want to apply (if you don't set it configuration will not apply automatically when lsp's started up)", 61 | "type": "array", 62 | "items": { "type": "string" } 63 | }, 64 | "ssh": { 65 | "oneOf": [ 66 | { 67 | "title": "Disabled", 68 | "type": "null", 69 | "additionalProperties": false 70 | }, 71 | { 72 | "title": "Enabled", 73 | "type": "object", 74 | "properties": { 75 | "remoteHost": { 76 | "description": "The host address you want to connect to", 77 | "type": "string", 78 | "default": "", 79 | "title": "Remote host" 80 | }, 81 | "remotePort": { 82 | "description": "Port number of the server for ssh", 83 | "type": "integer", 84 | "default": 22, 85 | "title": "Remote port" 86 | }, 87 | "user": { 88 | "description": "User name on the server", 89 | "type": "string", 90 | "default": "", 91 | "title": "User" 92 | }, 93 | "dbHost": { 94 | "description": "Database host on the server", 95 | "type": "string", 96 | "default": "127.0.0.1", 97 | "title": "Database host" 98 | }, 99 | "dbPort": { 100 | "description": "Databse port on the server, default 3306 for mysql and 5432 for postgres", 101 | "type": "number", 102 | "title": "Database port" 103 | }, 104 | "identityFile": { 105 | "description": "Identity file for ssh", 106 | "type": "string", 107 | "default": "~/.ssh/config/id_rsa", 108 | "title": "Identity file" 109 | }, 110 | "passphrase": { 111 | "description": "Passphrase to allow to use identity file", 112 | "type": "string", 113 | "title": "Passphrase" 114 | } 115 | } 116 | } 117 | ], 118 | "default": null, 119 | "title": "Settings for port fowarding" 120 | } 121 | } 122 | } 123 | } 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/trino/__init__.py: -------------------------------------------------------------------------------- 1 | from .trino import Trino 2 | 3 | 4 | def load_ipython_extension(ipython): 5 | ipython.register_magics(Trino) 6 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/trino/main.py: -------------------------------------------------------------------------------- 1 | import json 2 | import logging 3 | import os 4 | import pathlib 5 | import shutil 6 | import subprocess 7 | import sys 8 | import tempfile 9 | 10 | from jupyter_lsp.types import LanguageServerManagerAPI 11 | 12 | from jupyterlab_sql_editor.ipython_magic.util import find_nvm_lib_dirs, get_global_npm_path 13 | 14 | log_file = os.path.join(tempfile.gettempdir(), "trino-language-server-entrypoint.log") 15 | 16 | logging.basicConfig( 17 | format="%(asctime)s %(message)s", 18 | filename=log_file, 19 | level=logging.INFO, 20 | ) 21 | 22 | mgr = LanguageServerManagerAPI() 23 | 24 | # If jupyterlab-lsp has difficulty finding your sql-language-server 25 | # installation, specify additional node_modules paths through the 26 | # NVM_DIR environment variable. 27 | mgr.node_roots.extend(find_nvm_lib_dirs()) 28 | mgr.node_roots.extend(get_global_npm_path()) 29 | 30 | CONFIG = pathlib.Path(__file__).parent.parent 31 | NODE_MODULE = KEY = "sql-language-server" 32 | SCRIPTS = ["dist", "bin", "cli.js"] 33 | PATH_TO_BIN_JS = mgr.find_node_module(NODE_MODULE, *SCRIPTS) 34 | 35 | try: 36 | NODE_LOCATION = shutil.which("node") or shutil.which("node.exe") or shutil.which("node.cmd") 37 | NODE = str(pathlib.Path(NODE_LOCATION).resolve()) 38 | logging.info(f"Node location: {NODE}") 39 | except Exception: 40 | NODE_LOCATION = NODE = "" 41 | 42 | 43 | def main(): 44 | if NODE and PATH_TO_BIN_JS: 45 | logging.info(f"Path to Node: {NODE}. Path to sql-language-server binary: {PATH_TO_BIN_JS}.") 46 | process = subprocess.Popen([NODE, PATH_TO_BIN_JS, *sys.argv[1:]], stdin=sys.stdin, stdout=sys.stdout) 47 | logging.info(f"Node process started with pid: {process.pid}") 48 | sys.exit(process.wait()) 49 | 50 | 51 | def load(app): 52 | logging.info("trino language server load function called.") 53 | if not NODE: 54 | raise Exception("Node not available.") 55 | if not PATH_TO_BIN_JS: 56 | raise Exception(f"sql-language-server binary not available for {mgr.node_roots}.") 57 | try: 58 | config_schema = json.loads((CONFIG / "{}.schema.json".format(KEY)).read_text(encoding="utf-8")) 59 | except Exception as e: 60 | logging.error(f"Failed to load config schema: {e}") 61 | config_schema = {} 62 | return { 63 | "trino-language-server": { 64 | "version": 2, 65 | "argv": ["trino_language_server", "up", "--method", "stdio"], 66 | "languages": ["trino"], 67 | "display_name": "Trino language server", 68 | "mime_types": ["application/trino", "text/x-trino"], 69 | "config_schema": config_schema, 70 | } 71 | } 72 | 73 | 74 | if __name__ == "__main__": 75 | main() 76 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/trino/trino_export.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from textwrap import dedent 3 | 4 | from trino.sqlalchemy.datatype import parse_sqltype 5 | 6 | from jupyterlab_sql_editor.ipython_magic.export import ( 7 | Catalog, 8 | Connection, 9 | Function, 10 | SchemaExporter, 11 | Table, 12 | TrinoTableSchema, 13 | ) 14 | 15 | MAX_RET = 20000 16 | 17 | 18 | class TrinoConnection(Connection): 19 | def __init__(self, cur) -> None: 20 | self.cur = cur 21 | 22 | def render_table(self, table: Table): 23 | columns = self._get_columns(table.catalog_name, table.database_name, table.table_name) 24 | return { 25 | "tableName": table.table_name, 26 | "columns": columns, 27 | "database": table.database_name, 28 | "catalog": table.catalog_name, 29 | } 30 | 31 | def render_function(self, function: Function): 32 | return {"name": function.function_name, "description": ""} 33 | 34 | def get_function_names(self): 35 | sql = "SHOW FUNCTIONS" 36 | self.cur.execute(sql) 37 | rows = self.cur.fetchmany(MAX_RET) 38 | function_names = [] 39 | for row in rows: 40 | name = row[0] 41 | if name not in function_names: 42 | function_names.append(name) 43 | return function_names 44 | 45 | def get_table_names(self, catalog_name, database_name): 46 | # prevent retrieving tables from information_schema 47 | if database_name == "information_schema": 48 | return [] 49 | path = f"{catalog_name}.{database_name}" 50 | try: 51 | sql = f"SHOW TABLES IN {path}" 52 | self.cur.execute(sql) 53 | rows = self.cur.fetchmany(MAX_RET) 54 | table_names = [] 55 | for row in rows: 56 | table = row[0] 57 | table_names.append(table) 58 | return table_names 59 | except Exception: 60 | print(f"Failed to get tables for {path}") 61 | return [] 62 | 63 | def get_database_names(self, catalog_name): 64 | sql = f"SHOW SCHEMAS IN {catalog_name}" 65 | self.cur.execute(sql) 66 | rows = self.cur.fetchmany(MAX_RET) 67 | database_names = [] 68 | for row in rows: 69 | database = row[0] 70 | database_names.append(database) 71 | return database_names 72 | 73 | def _get_columns(self, catalog_name, schema_name, table_name): 74 | try: 75 | query = dedent( 76 | f""" 77 | SELECT 78 | column_name, 79 | data_type, 80 | IS_NULLABLE, 81 | column_default 82 | FROM {catalog_name}.information_schema.columns 83 | WHERE table_schema = '{schema_name}' AND table_name = '{table_name}' 84 | ORDER BY ordinal_position ASC 85 | """ 86 | ).strip() 87 | self.cur.execute(query) 88 | res = self.cur.fetchall() 89 | columns = [] 90 | for record in res: 91 | column = dict( 92 | columnName=record[0], 93 | type=parse_sqltype(record[1]), 94 | nullable=record[2] == "YES", 95 | default=record[3], 96 | ) 97 | columns.append(column) 98 | return TrinoTableSchema(columns, quoting_char='"').convert() 99 | except Exception as exc: 100 | print(f"Failed to get columns for {table_name}: {exc}") 101 | return [] 102 | 103 | 104 | def update_database_schema(cur, schema_file_name: Path, catalog_names): 105 | connection = TrinoConnection(cur) 106 | catalogs: list[Catalog] = [] 107 | for name in catalog_names: 108 | catalogs.append(Catalog(connection, name)) 109 | exp = SchemaExporter(connection, schema_file_name, catalogs, None) 110 | exp.update_schema() 111 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/trino/trino_schema_widget.py: -------------------------------------------------------------------------------- 1 | from ipytree import Node, Tree 2 | from sqlalchemy.sql import sqltypes 3 | from trino.sqlalchemy.datatype import DOUBLE, JSON, MAP, ROW, TIME, TIMESTAMP 4 | 5 | icons = { 6 | "time": "clock", 7 | "date": "calendar", 8 | "string": "at", 9 | "decimal": "percentage", 10 | "integer": "hashtag", 11 | "boolean": "check-circle", 12 | "binary": "delicious", 13 | "struct": "project-diagram", 14 | "array": "language", 15 | "map": "key", 16 | } 17 | 18 | 19 | class TrinoSchemaWidget(Tree): 20 | def __init__(self, name, schema) -> None: 21 | super(TrinoSchemaWidget, self).__init__() 22 | node = self.get_children(schema, name) 23 | self.add_node(node) 24 | 25 | complex_type = { 26 | "opened": False, 27 | "open_icon_style": "danger", 28 | "close_icon_style": "danger", 29 | "icon_style": "success", 30 | "open_icon": "angle-right", 31 | "close_icon": "angle-down", 32 | } 33 | 34 | def get_children(self, field, name): 35 | if type(field) is dict: 36 | return self.get_children(field["type"], field["columnName"]) 37 | if type(field) is tuple: 38 | return self.get_children(field[1], field[0]) 39 | if type(field) is MAP: 40 | key = self.get_children(field.key_type, "key") 41 | value = self.get_children(field.value_type, "value") 42 | nodes = [key, value] 43 | return Node(f"{name}: MAP", nodes, icon=icons["map"], **self.complex_type) 44 | elif type(field) is sqltypes.ARRAY: 45 | element = self.get_children(field.item_type, "element") 46 | nodes = [element] 47 | return Node(f"{name}: ARRAY", nodes, icon=icons["array"], **self.complex_type) 48 | elif type(field) is list: 49 | nodes = [self.get_children(f, "") for f in field] 50 | return Node(f"{name}", nodes, icon=icons["struct"], **self.complex_type) 51 | elif type(field) is ROW: 52 | nodes = [self.get_children(f, "") for f in field.attr_types] 53 | return Node(f"{name}: ROW", nodes, icon=icons["struct"], **self.complex_type) 54 | elif type(field) is sqltypes.VARCHAR: 55 | return Node(f"{name}: VARCHAR", icon=icons["string"]) 56 | elif type(field) is sqltypes.CHAR: 57 | return Node(f"{name}: CHAR", icon=icons["string"]) 58 | elif type(field) is sqltypes.VARBINARY: 59 | return Node(f"{name}: VARBINARY", icon=icons["string"]) 60 | elif type(field) is JSON: 61 | return Node(f"{name}: JSON", icon=icons["string"]) 62 | elif type(field) is sqltypes.DATE: 63 | return Node(f"{name}: DATE", icon=icons["date"]) 64 | elif type(field) is TIME: 65 | return Node(f"{name}: TIME", icon=icons["time"]) 66 | elif type(field) is TIMESTAMP: 67 | return Node(f"{name}: TIMESTAMP", icon=icons["time"]) 68 | elif type(field) is sqltypes.SMALLINT: 69 | return Node(f"{name}: SMALLINT", icon=icons["integer"]) 70 | elif type(field) is sqltypes.INTEGER: 71 | return Node(f"{name}: INTEGER", icon=icons["integer"]) 72 | elif type(field) is sqltypes.BIGINT: 73 | return Node(f"{name}: BIGINT", icon=icons["integer"]) 74 | elif type(field) is sqltypes.BOOLEAN: 75 | return Node(f"{name}: BOOLEAN", icon=icons["boolean"]) 76 | elif type(field) is sqltypes.REAL: 77 | return Node(f"{name}: REAL", icon=icons["decimal"]) 78 | elif type(field) is sqltypes.DECIMAL: 79 | return Node(f"{name}: DECIMAL", icon=icons["decimal"]) 80 | elif type(field) is DOUBLE: 81 | return Node(f"{name}: DOUBLE", icon=icons["decimal"]) 82 | else: 83 | print(f"Type doesn't match anything in the list. Type: {type(field)}") 84 | return Node("None", icon=icons["binary"]) 85 | 86 | def to_tree(self): 87 | return self 88 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/ipython_magic/util.py: -------------------------------------------------------------------------------- 1 | import pathlib 2 | import shutil 3 | import subprocess 4 | from os import environ, listdir 5 | from os.path import isdir, join 6 | 7 | 8 | def find_nvm_lib_dirs(): 9 | NVM_VERSIONS_SUBPATH = "/versions/node/" 10 | nvm_dir = environ.get("NVM_DIR") 11 | dirs = [] 12 | if nvm_dir: 13 | dirs = [ 14 | f"{nvm_dir}{NVM_VERSIONS_SUBPATH}{d}/lib" 15 | for d in listdir(nvm_dir + NVM_VERSIONS_SUBPATH) 16 | if isdir(join(nvm_dir + NVM_VERSIONS_SUBPATH, d)) 17 | ] 18 | return dirs 19 | 20 | 21 | def get_global_npm_path(): 22 | try: 23 | npm_path = subprocess.check_output([shutil.which("npm"), "root", "-g"], text=True).strip() 24 | return [str(pathlib.Path(npm_path).parent)] 25 | except Exception: 26 | return [] 27 | 28 | 29 | def merge_schemas(original, incoming): 30 | """ 31 | Deep merge two dictionaries. Modifies original. 32 | For key conflicts if both values are: 33 | a. dict: Recursively call merge_schemas on both values. 34 | b. list: Concatenates the two lists and dedup items to avoid repeated entries. 35 | c. any other type: Value is overridden. 36 | """ 37 | for key in incoming: 38 | if key in original: 39 | if isinstance(original[key], dict) and isinstance(incoming[key], dict): 40 | merge_schemas(original[key], incoming[key]) 41 | elif isinstance(original[key], list) and isinstance(incoming[key], list): 42 | original[key] = original[key] + [item for item in incoming[key] if item not in original[key]] 43 | else: 44 | original[key] = incoming[key] 45 | else: 46 | original[key] = incoming[key] 47 | -------------------------------------------------------------------------------- /jupyterlab_sql_editor/outputters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CybercentreCanada/jupyterlab-sql-editor/983fea604315992a3615511d5729316e446add62/jupyterlab_sql_editor/outputters/__init__.py -------------------------------------------------------------------------------- /jupyterlab_sql_editor/outputters/outputters.py: -------------------------------------------------------------------------------- 1 | import json 2 | import re 3 | import string 4 | from typing import List 5 | 6 | import pandas as pd 7 | from IPython.display import HTML, JSON, display 8 | 9 | from jupyterlab_sql_editor.outputters.util import ( 10 | dataframe_conditional_conversion, 11 | format_value, 12 | make_tag, 13 | recursive_escape, 14 | remove_none_recursive, 15 | render_ag_grid, 16 | render_grid, 17 | render_text, 18 | rows_to_html, 19 | sanitize_results, 20 | ) 21 | 22 | DEFAULT_COLUMN_DEF = {"editable": False, "filter": True, "resizable": True, "sortable": True} 23 | 24 | PRINTABLE = string.ascii_letters + string.digits + string.punctuation + " " 25 | 26 | replchars = re.compile("([^" + re.escape(PRINTABLE) + "])") 27 | 28 | JS_MAX_SAFE_INTEGER = 9007199254740991 29 | 30 | JS_MIN_SAFE_INTEGER = -9007199254740991 31 | 32 | 33 | def _display_results(pdf: pd.DataFrame, output: str, show_nonprinting: bool, truncate: int, args=None) -> None: 34 | if output == "grid": 35 | grid(pdf, show_nonprinting, truncate) 36 | elif output == "aggrid": 37 | aggrid(pdf, show_nonprinting, truncate) 38 | elif output == "json": 39 | expand = args.expand if args else False 40 | json_nulls = args.jsonnulls if args else False 41 | jjson(pdf, show_nonprinting, expand, json_nulls) 42 | elif output == "html": 43 | html(pdf, show_nonprinting, truncate) 44 | elif output == "text": 45 | text(pdf, truncate) 46 | 47 | 48 | def aggrid(df: pd.DataFrame, show_nonprinting=False, truncate=256) -> None: 49 | for c in df.columns: 50 | df[c] = df[c].apply(lambda v: sanitize_results(v)) 51 | df[c] = df[c].apply(lambda v: format_value(str(v), show_nonprinting, truncate)) 52 | display(render_ag_grid(df)) 53 | 54 | 55 | def grid(df: pd.DataFrame, show_nonprinting=False, truncate=256) -> None: 56 | for c in df.columns: 57 | df[c] = df[c].apply(lambda v: sanitize_results(v)) 58 | df[c] = df[c].apply(lambda v: format_value(str(v), show_nonprinting, truncate)) 59 | display(render_grid(df, df.size)) 60 | 61 | 62 | def jjson(df: pd.DataFrame, show_nonprinting=False, expanded=False, json_nulls=False, date_format="iso") -> None: 63 | safe_array = [] 64 | warnings: List[str] = [] 65 | 66 | valid_date_formats = {"iso", "epoch"} 67 | if date_format not in valid_date_formats: 68 | raise ValueError(f"jjson: status must be one of {valid_date_formats}.") 69 | 70 | # sanitize results for display 71 | for row in df.to_dict(orient="records"): 72 | safe_array.append(sanitize_results(row, warnings, safe_js_ints=True)) 73 | if show_nonprinting: 74 | recursive_escape(safe_array) 75 | if warnings: 76 | display( 77 | JSON( 78 | data={"values": warnings}, 79 | expanded=False, 80 | root="Some values were cast to string to avoid loss of precision", 81 | ) 82 | ) 83 | 84 | # remove None elements, empty lists and empty dicts for display 85 | json_str = pd.DataFrame.from_records(safe_array, columns=df.columns).to_json( 86 | orient="records", date_format=date_format 87 | ) 88 | if not json_nulls: 89 | data = [ 90 | cleaned 91 | for item in json.loads(json_str if json_str else "[]") 92 | if (cleaned := remove_none_recursive(item)) is not None 93 | ] 94 | else: 95 | data = json.loads(json_str if json_str else "[]") 96 | 97 | display(JSON(data=data, expanded=expanded)) 98 | 99 | 100 | def html(df: pd.DataFrame, show_nonprinting=False, truncate=256) -> None: 101 | html = rows_to_html( 102 | sanitize_results(df.apply(dataframe_conditional_conversion).values if not df.empty else df.values), 103 | df.columns.values.tolist(), 104 | show_nonprinting, 105 | truncate, 106 | ) 107 | display(HTML(make_tag("table", False, html))) 108 | 109 | 110 | def text(df: pd.DataFrame, truncate=256) -> None: 111 | print( 112 | render_text( 113 | sanitize_results(df.apply(dataframe_conditional_conversion).values if not df.empty else df.values), 114 | df.columns.values.tolist(), 115 | truncate, 116 | ) 117 | ) 118 | -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: jupyterlab-sql-editor 2 | site_url: https://cybercentrecanada.github.io/jupyterlab-sql-editor 3 | site_dir: site 4 | nav: 5 | - Home: index.md 6 | - Sparksql: sparksql.md 7 | - Trino: trino.md 8 | theme: 9 | name: readthedocs 10 | -------------------------------------------------------------------------------- /overrides/sparksql-lsp.json: -------------------------------------------------------------------------------- 1 | { 2 | "@jupyter-lsp/jupyterlab-lsp:plugin": { 3 | "language_servers": { 4 | "sparksql-language-server": { 5 | "serverSettings": { 6 | "sqlLanguageServer.connections": [ 7 | { 8 | "name": "pyspark-conf", 9 | "adapter": "json", 10 | "filename": "/home/jovyan/.local/sparkdb.schema.json" 11 | } 12 | ] 13 | } 14 | } 15 | }, 16 | "extra_node_roots": [] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /overrides/syntax_highlighting.json: -------------------------------------------------------------------------------- 1 | { 2 | "@jupyter-lsp/jupyterlab-lsp:syntax_highlighting": { 3 | "foreignCodeThreshold": 0.1 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /overrides/trino-lsp.json: -------------------------------------------------------------------------------- 1 | { 2 | "@jupyter-lsp/jupyterlab-lsp:plugin": { 3 | "language_servers": { 4 | "trino-language-server": { 5 | "serverSettings": { 6 | "sqlLanguageServer.connections": [ 7 | { 8 | "name": "trino-conf", 9 | "adapter": "json", 10 | "filename": "/home/jovyan/.local/trinodb.schema.json" 11 | } 12 | ] 13 | } 14 | } 15 | }, 16 | "extra_node_roots": [] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["hatchling>=1.5.0", "jupyterlab>=4.0.0,<5", "hatch-nodejs-version>=0.3.2"] 3 | build-backend = "hatchling.build" 4 | 5 | [project] 6 | name = "jupyterlab_sql_editor" 7 | readme = "README.md" 8 | license = { file = "LICENSE" } 9 | requires-python = ">=3.8" 10 | classifiers = [ 11 | "Framework :: Jupyter", 12 | "Framework :: Jupyter :: JupyterLab", 13 | "Framework :: Jupyter :: JupyterLab :: 4", 14 | "Framework :: Jupyter :: JupyterLab :: Extensions", 15 | "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", 16 | "License :: OSI Approved :: BSD License", 17 | "Programming Language :: Python", 18 | "Programming Language :: Python :: 3", 19 | "Programming Language :: Python :: 3.8", 20 | "Programming Language :: Python :: 3.9", 21 | "Programming Language :: Python :: 3.10", 22 | "Programming Language :: Python :: 3.11", 23 | "Programming Language :: Python :: 3.12", 24 | ] 25 | dependencies = [ 26 | "cccs-ipyaggrid>=0.5.3", 27 | "ipydatagrid", 28 | "ipytree", 29 | "ipywidgets", 30 | "Jinja2", 31 | "jupyterlab-lsp>=5.0.0", 32 | "jupyter-events>=0.6.1", 33 | "jupyter-lsp>=2.2.0", 34 | "python-lsp-server[all]", 35 | "pandas>=1.4.4", 36 | "ply", 37 | "sqlparse", 38 | "sqlalchemy", 39 | "sqlglot[rs]" 40 | ] 41 | dynamic = ["version", "description", "authors", "urls", "keywords"] 42 | 43 | [project.optional-dependencies] 44 | trino = ["trino"] 45 | pyspark = ["pyspark"] 46 | all = ["trino", "pyspark"] 47 | 48 | [project.scripts] 49 | sparksql_language_server = "jupyterlab_sql_editor.ipython_magic.sparksql.main:main" 50 | trino_language_server = "jupyterlab_sql_editor.ipython_magic.trino.main:main" 51 | 52 | [project.entry-points."jupyter_lsp_spec_v1"] 53 | sparksql-language-server = "jupyterlab_sql_editor.ipython_magic.trino.main:load" 54 | trino-language-server = "jupyterlab_sql_editor.ipython_magic.sparksql.main:load" 55 | 56 | [tool.hatch.version] 57 | source = "nodejs" 58 | 59 | [tool.hatch.metadata.hooks.nodejs] 60 | fields = ["description", "authors", "urls"] 61 | 62 | [tool.hatch.build.targets.sdist] 63 | artifacts = ["jupyterlab_sql_editor/labextension"] 64 | exclude = [".github", "binder", "env"] 65 | 66 | [tool.hatch.build.targets.wheel.shared-data] 67 | "jupyterlab_sql_editor/labextension" = "share/jupyter/labextensions/jupyterlab-sql-editor" 68 | "install.json" = "share/jupyter/labextensions/jupyterlab-sql-editor/install.json" 69 | "overrides/trino-lsp.json" = "share/jupyter/lab/settings/overrides.d/trino-lsp.json" 70 | "overrides/sparksql-lsp.json" = "share/jupyter/lab/settings/overrides.d/sparksql-lsp.json" 71 | "overrides/syntax_highlighting.json" = "share/jupyter/lab/settings/overrides.d/syntax_highlighting.json" 72 | "jupyterlab_sql_editor/ipython_magic/sql-language-server.schema.json" = "jupyterlab_sql_editor/ipython_magic/sql-language-server.schema.json" 73 | 74 | [tool.hatch.build.hooks.version] 75 | path = "jupyterlab_sql_editor/_version.py" 76 | 77 | [tool.hatch.build.hooks.jupyter-builder] 78 | dependencies = ["hatch-jupyter-builder>=0.5"] 79 | build-function = "hatch_jupyter_builder.npm_builder" 80 | ensured-targets = [ 81 | "jupyterlab_sql_editor/labextension/static/style.js", 82 | "jupyterlab_sql_editor/labextension/package.json", 83 | ] 84 | skip-if-exists = ["jupyterlab_sql_editor/labextension/static/style.js"] 85 | 86 | [tool.hatch.build.hooks.jupyter-builder.build-kwargs] 87 | build_cmd = "build:prod" 88 | npm = ["jlpm"] 89 | 90 | [tool.hatch.build.hooks.jupyter-builder.editable-build-kwargs] 91 | build_cmd = "install:extension" 92 | npm = ["jlpm"] 93 | source_dir = "src" 94 | build_dir = "jupyterlab_sql_editor/labextension" 95 | 96 | [tool.jupyter-releaser.options] 97 | version_cmd = "hatch version" 98 | 99 | [tool.jupyter-releaser.hooks] 100 | before-build-npm = [ 101 | "python -m pip install 'jupyterlab>=4.0.0,<5'", 102 | "jlpm", 103 | "jlpm build:prod" 104 | ] 105 | before-build-python = ["jlpm clean:all"] 106 | 107 | [tool.check-wheel-contents] 108 | ignore = ["W002"] 109 | -------------------------------------------------------------------------------- /schema/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "jupyter.lab.shortcuts": [ 3 | { 4 | "command": "jupyterlab-sql-editor:format_cell", 5 | "keys": ["Ctrl Q"], 6 | "selector": ".jp-CodeCell" 7 | }, 8 | { 9 | "command": "jupyterlab-sql-editor:format_document", 10 | "keys": ["Ctrl Q"], 11 | "selector": ".jp-FileEditor" 12 | } 13 | ], 14 | "title": "SQL Editor Support", 15 | "description": "SQL editor support for formatting, syntax highlighing and code completion of SQL in cell magic, line magic, python string and file editor.", 16 | "type": "object", 17 | "properties": { 18 | "formatTabWidth": { 19 | "type": "number", 20 | "title": "Tab width", 21 | "description": "Specifies amount of spaces to be used for indentation.", 22 | "default": 4 23 | }, 24 | "formatUseTabs": { 25 | "type": "boolean", 26 | "title": "Use tabs", 27 | "description": "Uses TAB characters for indentation.", 28 | "default": false 29 | }, 30 | "formatKeywordCase": { 31 | "type": "string", 32 | "title": "Keyword case", 33 | "description": "Converts reserved keywords and builtin function names to upper or lowercase. ('preserve', 'upper' or 'lower')", 34 | "default": "preserve" 35 | }, 36 | "sparksqlStartMarker": { 37 | "type": "string", 38 | "title": "SparkSQL start marker", 39 | "description": "SparkSQL start marker for multi-line strings. Restart JupyterLab for these changes to take effect.", 40 | "default": "--start-sparksql" 41 | }, 42 | "sparksqlEndMarker": { 43 | "type": "string", 44 | "title": "SparkSQL end marker", 45 | "description": "SparkSQL end marker for multi-line strings. Restart JupyterLab for these changes to take effect.", 46 | "default": "--end-sparksql" 47 | }, 48 | "trinoStartMarker": { 49 | "type": "string", 50 | "title": "Trino start marker", 51 | "description": "Trino start marker for multi-line strings. Restart JupyterLab for these changes to take effect.", 52 | "default": "--start-trino" 53 | }, 54 | "trinoEndMarker": { 55 | "type": "string", 56 | "title": "Trino end marker", 57 | "description": "Trino end marker for multi-line strings. Restart JupyterLab for these changes to take effect.", 58 | "default": "--end-trino" 59 | } 60 | }, 61 | "additionalProperties": false 62 | } 63 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | __import__("setuptools").setup() 2 | -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export namespace Constants { 2 | export const SHORT_PLUGIN_NAME = 'jupyterlab-sql-editor'; 3 | export const FORMAT_COMMAND = `${SHORT_PLUGIN_NAME}:format_cell`; 4 | export const FORMAT_COMMAND_DOCUMENT = `${SHORT_PLUGIN_NAME}:format_document`; 5 | export const LONG_PLUGIN_NAME = `${SHORT_PLUGIN_NAME}`; 6 | export const SETTINGS_SECTION = `${LONG_PLUGIN_NAME}:plugin`; 7 | } 8 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import { RegExpForeignCodeExtractor } from '@jupyter-lsp/jupyterlab-lsp'; 2 | 3 | // sparksql magic accepts options in the long form 4 | // --dataframe df 5 | // or in the short form 6 | // -d df 7 | // some options do not require any values, they act more as a flag 8 | const SPACE = ' '; 9 | const OPTION_VALUE = '[0-9a-zA-Z\\._]+'; 10 | const SHORT_OPTS = '-[a-z]'; 11 | const LONG_OPTS = '--[_a-zA-Z]+'; 12 | const COMMANDS = `(?:${SPACE}|${SHORT_OPTS} ${OPTION_VALUE}|${LONG_OPTS} ${OPTION_VALUE}|${SHORT_OPTS}|${LONG_OPTS})*`; 13 | const BEGIN = '(?:^|\n)'; 14 | 15 | export function lineMagicExtractor( 16 | language: string 17 | ): RegExpForeignCodeExtractor { 18 | return new RegExpForeignCodeExtractor({ 19 | language: language, 20 | pattern: `${BEGIN}%${language}${COMMANDS}([^\n]*)`, 21 | foreignCaptureGroups: [1], 22 | isStandalone: true, 23 | fileExtension: language 24 | }); 25 | } 26 | 27 | export function cellMagicExtractor( 28 | language: string 29 | ): RegExpForeignCodeExtractor { 30 | return new RegExpForeignCodeExtractor({ 31 | language: language, 32 | pattern: `^%%(${language})( .*?)?\n([^]*)`, 33 | foreignCaptureGroups: [3], 34 | isStandalone: true, 35 | fileExtension: language 36 | }); 37 | } 38 | 39 | export function markerExtractor( 40 | startMarker: string, 41 | endMarker: string, 42 | language: string 43 | ): RegExpForeignCodeExtractor { 44 | return new RegExpForeignCodeExtractor({ 45 | language: language, 46 | pattern: `${startMarker}.*?\n([\\S\\s]*)${endMarker}`, 47 | foreignCaptureGroups: [1], 48 | isStandalone: true, 49 | fileExtension: language 50 | }); 51 | } 52 | -------------------------------------------------------------------------------- /style/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | See the JupyterLab Developer Guide for useful CSS Patterns: 3 | 4 | https://jupyterlab.readthedocs.io/en/stable/developer/css.html 5 | */ 6 | -------------------------------------------------------------------------------- /style/index.css: -------------------------------------------------------------------------------- 1 | @import url('base.css'); 2 | -------------------------------------------------------------------------------- /style/index.js: -------------------------------------------------------------------------------- 1 | import './base.css'; 2 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "composite": true, 5 | "declaration": true, 6 | "esModuleInterop": true, 7 | "incremental": true, 8 | "jsx": "react", 9 | "module": "esnext", 10 | "moduleResolution": "node", 11 | "noEmitOnError": true, 12 | "noImplicitAny": true, 13 | "noUnusedLocals": true, 14 | "preserveWatchOutput": true, 15 | "resolveJsonModule": true, 16 | "outDir": "lib", 17 | "rootDir": "src", 18 | "strict": true, 19 | "strictNullChecks": true, 20 | "target": "ES2018" 21 | }, 22 | "include": ["src/*"] 23 | } 24 | --------------------------------------------------------------------------------