@qwik.dev/core 0.0.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/LICENSE +22 -0
  2. package/bindings/qwik.darwin-arm64.node +0 -0
  3. package/bindings/qwik.darwin-x64.node +0 -0
  4. package/bindings/qwik.linux-x64-gnu.node +0 -0
  5. package/bindings/qwik.wasm.cjs +484 -0
  6. package/bindings/qwik.wasm.mjs +477 -0
  7. package/bindings/qwik.win32-x64-msvc.node +0 -0
  8. package/bindings/qwik_wasm_bg.wasm +0 -0
  9. package/build.d.ts +2 -0
  10. package/dist/build/index.cjs +35 -0
  11. package/dist/build/index.cjs.map +7 -0
  12. package/dist/build/index.d.ts +22 -0
  13. package/dist/build/index.dev.cjs +37 -0
  14. package/dist/build/index.dev.cjs.map +7 -0
  15. package/dist/build/index.dev.mjs +12 -0
  16. package/dist/build/index.dev.mjs.map +7 -0
  17. package/dist/build/index.mjs +12 -0
  18. package/dist/build/index.mjs.map +7 -0
  19. package/dist/build/index.prod.cjs +37 -0
  20. package/dist/build/index.prod.cjs.map +7 -0
  21. package/dist/build/index.prod.mjs +12 -0
  22. package/dist/build/index.prod.mjs.map +7 -0
  23. package/dist/build/package.json +8 -0
  24. package/dist/cli.cjs +4890 -0
  25. package/dist/core-internal.d.ts +3895 -0
  26. package/dist/core.cjs +10929 -0
  27. package/dist/core.cjs.map +1 -0
  28. package/dist/core.min.mjs +1 -0
  29. package/dist/core.mjs +10825 -0
  30. package/dist/core.mjs.map +1 -0
  31. package/dist/core.prod.cjs +5184 -0
  32. package/dist/core.prod.mjs +6028 -0
  33. package/dist/index.d.ts +2 -0
  34. package/dist/insights/index.d.ts +1 -0
  35. package/dist/insights/index.qwik.cjs +751 -0
  36. package/dist/insights/index.qwik.mjs +751 -0
  37. package/dist/insights/insights.d.ts +59 -0
  38. package/dist/insights/vite/index.cjs +82 -0
  39. package/dist/insights/vite/index.d.ts +1 -0
  40. package/dist/insights/vite/index.mjs +55 -0
  41. package/dist/insights/vite/insights-plugin.d.ts +10 -0
  42. package/dist/jsx-runtime/index.d.ts +2 -0
  43. package/dist/jsx-runtime.d.ts +2 -0
  44. package/dist/loader/index.cjs +4 -0
  45. package/dist/loader/index.d.ts +2 -0
  46. package/dist/loader/index.mjs +3 -0
  47. package/dist/loader/package.json +8 -0
  48. package/dist/optimizer.cjs +9140 -0
  49. package/dist/optimizer.d.ts +707 -0
  50. package/dist/optimizer.mjs +9704 -0
  51. package/dist/prefetch/index.cjs +4 -0
  52. package/dist/prefetch/index.d.ts +2 -0
  53. package/dist/prefetch/index.mjs +3 -0
  54. package/dist/prefetch/package.json +8 -0
  55. package/dist/qwik-prefetch.debug.js +244 -0
  56. package/dist/qwik-prefetch.js +1 -0
  57. package/dist/qwikloader.debug.js +228 -0
  58. package/dist/qwikloader.js +3 -0
  59. package/dist/server-modules.d.ts +38 -0
  60. package/dist/server.cjs +8948 -0
  61. package/dist/server.d.ts +404 -0
  62. package/dist/server.mjs +8883 -0
  63. package/dist/starters/adapters/aws-lambda/.eslintignore +2 -0
  64. package/dist/starters/adapters/aws-lambda/.prettierignore +2 -0
  65. package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.mts +21 -0
  66. package/dist/starters/adapters/aws-lambda/gitignore +2 -0
  67. package/dist/starters/adapters/aws-lambda/package.json +23 -0
  68. package/dist/starters/adapters/aws-lambda/serverless.yml +31 -0
  69. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +32 -0
  70. package/dist/starters/adapters/azure-swa/README.md +13 -0
  71. package/dist/starters/adapters/azure-swa/adapters/azure-swa/vite.config.mts +23 -0
  72. package/dist/starters/adapters/azure-swa/azure-functions/host.json +20 -0
  73. package/dist/starters/adapters/azure-swa/gitignore +3 -0
  74. package/dist/starters/adapters/azure-swa/package.json +28 -0
  75. package/dist/starters/adapters/azure-swa/public/staticwebapp.config.json +23 -0
  76. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +22 -0
  77. package/dist/starters/adapters/azure-swa/swa-cli.config.json +11 -0
  78. package/dist/starters/adapters/bun/README.md +9 -0
  79. package/dist/starters/adapters/bun/adapters/bun/vite.config.mts +28 -0
  80. package/dist/starters/adapters/bun/package.json +27 -0
  81. package/dist/starters/adapters/bun/src/entry.bun.ts +46 -0
  82. package/dist/starters/adapters/cloud-run/Dockerfile +24 -0
  83. package/dist/starters/adapters/cloud-run/README.md +7 -0
  84. package/dist/starters/adapters/cloud-run/adapters/cloud-run/vite.config.mts +15 -0
  85. package/dist/starters/adapters/cloud-run/package.json +24 -0
  86. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +96 -0
  87. package/dist/starters/adapters/cloudflare-pages/README.md +46 -0
  88. package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.mts +15 -0
  89. package/dist/starters/adapters/cloudflare-pages/gitignore +2 -0
  90. package/dist/starters/adapters/cloudflare-pages/package.json +28 -0
  91. package/dist/starters/adapters/cloudflare-pages/public/_headers +9 -0
  92. package/dist/starters/adapters/cloudflare-pages/public/_redirects +1 -0
  93. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +24 -0
  94. package/dist/starters/adapters/deno/README.md +9 -0
  95. package/dist/starters/adapters/deno/adapters/deno/vite.config.mts +23 -0
  96. package/dist/starters/adapters/deno/package.json +24 -0
  97. package/dist/starters/adapters/deno/src/entry.deno.ts +45 -0
  98. package/dist/starters/adapters/express/README.md +9 -0
  99. package/dist/starters/adapters/express/adapters/express/vite.config.mts +15 -0
  100. package/dist/starters/adapters/express/package.json +33 -0
  101. package/dist/starters/adapters/express/src/entry.express.tsx +70 -0
  102. package/dist/starters/adapters/fastify/README.md +9 -0
  103. package/dist/starters/adapters/fastify/adapters/fastify/vite.config.mts +15 -0
  104. package/dist/starters/adapters/fastify/package.json +33 -0
  105. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +48 -0
  106. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +42 -0
  107. package/dist/starters/adapters/firebase/.eslintignore +1 -0
  108. package/dist/starters/adapters/firebase/.prettierignore +1 -0
  109. package/dist/starters/adapters/firebase/adapters/firebase/vite.config.mts +21 -0
  110. package/dist/starters/adapters/firebase/firebase.json +24 -0
  111. package/dist/starters/adapters/firebase/functions/.gitkeep +0 -0
  112. package/dist/starters/adapters/firebase/functions/index.js +5 -0
  113. package/dist/starters/adapters/firebase/functions/package.json +25 -0
  114. package/dist/starters/adapters/firebase/gitignore +3 -0
  115. package/dist/starters/adapters/firebase/package.json +24 -0
  116. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +22 -0
  117. package/dist/starters/adapters/netlify-edge/README.md +64 -0
  118. package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.mts +16 -0
  119. package/dist/starters/adapters/netlify-edge/gitignore +2 -0
  120. package/dist/starters/adapters/netlify-edge/netlify.toml +3 -0
  121. package/dist/starters/adapters/netlify-edge/package.json +29 -0
  122. package/dist/starters/adapters/netlify-edge/public/_headers +2 -0
  123. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +22 -0
  124. package/dist/starters/adapters/node-server/README.md +12 -0
  125. package/dist/starters/adapters/node-server/adapters/node-server/vite.config.mts +15 -0
  126. package/dist/starters/adapters/node-server/package.json +23 -0
  127. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +39 -0
  128. package/dist/starters/adapters/static/README.md +5 -0
  129. package/dist/starters/adapters/static/adapters/static/vite.config.mts +19 -0
  130. package/dist/starters/adapters/static/package.json +19 -0
  131. package/dist/starters/adapters/vercel-edge/README.md +43 -0
  132. package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.mts +16 -0
  133. package/dist/starters/adapters/vercel-edge/gitignore +2 -0
  134. package/dist/starters/adapters/vercel-edge/package.json +28 -0
  135. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +22 -0
  136. package/dist/starters/adapters/vercel-edge/vercel.json +22 -0
  137. package/dist/starters/features/auth/package.json +20 -0
  138. package/dist/starters/features/auth/src/routes/plugin@auth.ts +8 -0
  139. package/dist/starters/features/bootstrap/package.json +33 -0
  140. package/dist/starters/features/bootstrap/src/components/bootstrap/alert.tsx +8 -0
  141. package/dist/starters/features/bootstrap/src/components/bootstrap/button.tsx +8 -0
  142. package/dist/starters/features/bootstrap/src/components/bootstrap/index.ts +4 -0
  143. package/dist/starters/features/bootstrap/src/components/bootstrap/navbar.tsx +44 -0
  144. package/dist/starters/features/bootstrap/src/components/bootstrap/spinner.tsx +13 -0
  145. package/dist/starters/features/bootstrap/src/constants/data.ts +10 -0
  146. package/dist/starters/features/bootstrap/src/models/bootstrap.ts +8 -0
  147. package/dist/starters/features/bootstrap/src/routes/bootstrap/alerts/index.tsx +28 -0
  148. package/dist/starters/features/bootstrap/src/routes/bootstrap/buttons/index.tsx +32 -0
  149. package/dist/starters/features/bootstrap/src/routes/bootstrap/index.tsx +32 -0
  150. package/dist/starters/features/bootstrap/src/routes/bootstrap/layout.tsx +36 -0
  151. package/dist/starters/features/bootstrap/src/routes/bootstrap/spinners/index.tsx +45 -0
  152. package/dist/starters/features/builder.io/README.md +15 -0
  153. package/dist/starters/features/builder.io/package.json +27 -0
  154. package/dist/starters/features/builder.io/src/components/builder-registry.ts +25 -0
  155. package/dist/starters/features/builder.io/src/components/counter/counter.module.css +23 -0
  156. package/dist/starters/features/builder.io/src/components/counter/counter.tsx +81 -0
  157. package/dist/starters/features/builder.io/src/components/gauge/gauge.module.css +27 -0
  158. package/dist/starters/features/builder.io/src/components/gauge/index.tsx +38 -0
  159. package/dist/starters/features/builder.io/src/routes/[...index]/index.tsx +44 -0
  160. package/dist/starters/features/cypress/cypress/fixtures/example.json +5 -0
  161. package/dist/starters/features/cypress/cypress/support/commands.ts +37 -0
  162. package/dist/starters/features/cypress/cypress/support/component-index.html +12 -0
  163. package/dist/starters/features/cypress/cypress/support/component.ts +42 -0
  164. package/dist/starters/features/cypress/cypress/tsconfig.cy.json +17 -0
  165. package/dist/starters/features/cypress/cypress.config.ts +10 -0
  166. package/dist/starters/features/cypress/cypress.d.ts +14 -0
  167. package/dist/starters/features/cypress/package.json +28 -0
  168. package/dist/starters/features/cypress/src/components/example/example.cy.tsx +18 -0
  169. package/dist/starters/features/cypress/src/components/example/example.tsx +17 -0
  170. package/dist/starters/features/drizzle/drizzle/db/.gitkeep +0 -0
  171. package/dist/starters/features/drizzle/drizzle/migrations/.gitkeep +0 -0
  172. package/dist/starters/features/drizzle/drizzle/schema.ts +24 -0
  173. package/dist/starters/features/drizzle/drizzle.config.ts +9 -0
  174. package/dist/starters/features/drizzle/package.json +41 -0
  175. package/dist/starters/features/drizzle/src/routes/create/index.tsx +42 -0
  176. package/dist/starters/features/drizzle/src/routes/users/[userId]/index.tsx +36 -0
  177. package/dist/starters/features/drizzle/src/routes/users/index.tsx +30 -0
  178. package/dist/starters/features/leaflet-map/package.json +30 -0
  179. package/dist/starters/features/leaflet-map/src/components/leaflet-map/index.tsx +60 -0
  180. package/dist/starters/features/leaflet-map/src/helpers/boundary-box.tsx +6 -0
  181. package/dist/starters/features/leaflet-map/src/models/location.ts +9 -0
  182. package/dist/starters/features/leaflet-map/src/models/map.ts +7 -0
  183. package/dist/starters/features/leaflet-map/src/routes/basic-map/index.tsx +25 -0
  184. package/dist/starters/features/localize/package.json +37 -0
  185. package/dist/starters/features/localize/src/entry.ssr.tsx +32 -0
  186. package/dist/starters/features/localize/src/locales/message.en.json +8 -0
  187. package/dist/starters/features/localize/src/locales/message.it.json +8 -0
  188. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +94 -0
  189. package/dist/starters/features/localize/src/routes/[locale]/index.tsx +52 -0
  190. package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +12 -0
  191. package/dist/starters/features/orama/package.json +23 -0
  192. package/dist/starters/features/orama/src/orama/index.ts +41 -0
  193. package/dist/starters/features/orama/src/routes/orama/index.tsx +110 -0
  194. package/dist/starters/features/pandacss/.eslintignore +3 -0
  195. package/dist/starters/features/pandacss/.prettierignore +2 -0
  196. package/dist/starters/features/pandacss/gitignore +2 -0
  197. package/dist/starters/features/pandacss/package.json +31 -0
  198. package/dist/starters/features/pandacss/panda.config.ts +22 -0
  199. package/dist/starters/features/pandacss/postcss.config.js +5 -0
  200. package/dist/starters/features/pandacss/src/global.css +5 -0
  201. package/dist/starters/features/pandacss/src/routes/pandacss/index.tsx +18 -0
  202. package/dist/starters/features/partytown/package.json +41 -0
  203. package/dist/starters/features/partytown/src/components/partytown/partytown.tsx +19 -0
  204. package/dist/starters/features/playwright/package.json +18 -0
  205. package/dist/starters/features/playwright/playwright-report/index.html +22024 -0
  206. package/dist/starters/features/playwright/playwright.config.ts +40 -0
  207. package/dist/starters/features/playwright/tests/example.spec.ts +14 -0
  208. package/dist/starters/features/postcss/.vscode/settings.json +3 -0
  209. package/dist/starters/features/postcss/package.json +17 -0
  210. package/dist/starters/features/postcss/postcss.config.js +11 -0
  211. package/dist/starters/features/prisma/package.json +35 -0
  212. package/dist/starters/features/prisma/prisma/schema.prisma +17 -0
  213. package/dist/starters/features/prisma/src/routes/create/index.tsx +42 -0
  214. package/dist/starters/features/prisma/src/routes/users/[userId]/index.tsx +31 -0
  215. package/dist/starters/features/prisma/src/routes/users/index.tsx +27 -0
  216. package/dist/starters/features/react/package.json +41 -0
  217. package/dist/starters/features/react/src/integrations/react/mui.tsx +60 -0
  218. package/dist/starters/features/react/src/routes/react/index.tsx +45 -0
  219. package/dist/starters/features/storybook/.storybook/main.ts +22 -0
  220. package/dist/starters/features/storybook/.storybook/preview-head.html +3 -0
  221. package/dist/starters/features/storybook/.storybook/preview.tsx +19 -0
  222. package/dist/starters/features/storybook/.storybook/tsconfig.json +24 -0
  223. package/dist/starters/features/storybook/package.json +25 -0
  224. package/dist/starters/features/storybook/src/components/button/button.stories.tsx +17 -0
  225. package/dist/starters/features/storybook/src/components/button/button.tsx +27 -0
  226. package/dist/starters/features/styled-vanilla-extract/package.json +28 -0
  227. package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/flower.css.ts +83 -0
  228. package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/index.tsx +75 -0
  229. package/dist/starters/features/tailwind/.prettierrc.js +3 -0
  230. package/dist/starters/features/tailwind/.vscode/settings.json +3 -0
  231. package/dist/starters/features/tailwind/package.json +18 -0
  232. package/dist/starters/features/tailwind/postcss.config.cjs +6 -0
  233. package/dist/starters/features/tailwind/src/global.css +7 -0
  234. package/dist/starters/features/tailwind/tailwind.config.js +8 -0
  235. package/dist/starters/features/turso/.env.local +2 -0
  236. package/dist/starters/features/turso/package.json +30 -0
  237. package/dist/starters/features/turso/src/utils/turso.ts +21 -0
  238. package/dist/starters/features/vitest/package.json +20 -0
  239. package/dist/starters/features/vitest/src/components/example/example.spec.tsx +32 -0
  240. package/dist/starters/features/vitest/src/components/example/example.tsx +17 -0
  241. package/dist/templates/barrel/component/index.tsx.template +13 -0
  242. package/dist/templates/barrel/markdown/index.md.template +5 -0
  243. package/dist/templates/barrel/mdx/index.mdx.template +5 -0
  244. package/dist/templates/barrel/route/index.tsx.template +9 -0
  245. package/dist/templates/qwik/component/[slug].tsx.template +13 -0
  246. package/dist/templates/qwik/markdown/index.md.template +5 -0
  247. package/dist/templates/qwik/mdx/index.mdx.template +5 -0
  248. package/dist/templates/qwik/route/index.tsx.template +9 -0
  249. package/dist/testing/index.cjs +32431 -0
  250. package/dist/testing/index.d.ts +140 -0
  251. package/dist/testing/index.mjs +32395 -0
  252. package/dist/testing/package.json +9 -0
  253. package/jsx-dev-runtime.d.ts +2 -0
  254. package/jsx-runtime.d.ts +2 -0
  255. package/loader.d.ts +2 -0
  256. package/optimizer.d.ts +2 -0
  257. package/package.json +29 -21
  258. package/public.d.ts +70 -0
  259. package/qwik-cli.cjs +4 -0
  260. package/server.d.ts +15 -0
  261. package/testing.d.ts +2 -0
@@ -0,0 +1,75 @@
1
+ import { DocumentHead, useLocation } from "@qwik.dev/router";
2
+ import {
3
+ component$,
4
+ FunctionComponent,
5
+ useStore,
6
+ useVisibleTask$,
7
+ } from "@qwik.dev/core";
8
+ import { Host, odd, pride, Range, Square } from "./flower.css";
9
+
10
+ type StoredInputProps<
11
+ T,
12
+ Cmp extends FunctionComponent,
13
+ Name extends string = "value",
14
+ > = Parameters<Cmp>[0] & {
15
+ store: { [value in Name]?: T };
16
+ name?: Name;
17
+ };
18
+
19
+ export const RangeInput = <Name extends string = "value">({
20
+ store,
21
+ name = "value" as Name,
22
+ ...props
23
+ }: StoredInputProps<number, typeof Range, Name>) => (
24
+ <Range
25
+ {...props}
26
+ type="range"
27
+ value={store[name]}
28
+ onInput$={(ev, el) => {
29
+ store[name] = el.valueAsNumber;
30
+ }}
31
+ />
32
+ );
33
+
34
+ export default component$(() => {
35
+ const loc = useLocation();
36
+
37
+ const state = useStore({
38
+ count: 0,
39
+ number: 20,
40
+ });
41
+
42
+ useVisibleTask$(({ cleanup }) => {
43
+ const timeout = setTimeout(() => (state.count = 1), 500);
44
+ cleanup(() => clearTimeout(timeout));
45
+
46
+ const internal = setInterval(() => state.count++, 7000);
47
+ cleanup(() => clearInterval(internal));
48
+ });
49
+
50
+ return (
51
+ <>
52
+ <p>This is styled with qwik-styled-ve.</p>
53
+
54
+ <RangeInput store={state} name="number" max={50} />
55
+ <Host
56
+ style={{
57
+ "--state": `${state.count * 0.1}`,
58
+ }}
59
+ class={loc.url.searchParams.get("pride") && pride}
60
+ >
61
+ {Array.from({ length: state.number }, (_, i) => (
62
+ <Square
63
+ key={i}
64
+ class={{ [odd]: i % 2 === 0 }}
65
+ style={{ "--index": `${i + 1}` }}
66
+ />
67
+ )).reverse()}
68
+ </Host>
69
+ </>
70
+ );
71
+ });
72
+
73
+ export const head: DocumentHead = {
74
+ title: "Qwik Flower",
75
+ };
@@ -0,0 +1,3 @@
1
+ export default {
2
+ plugins: ['prettier-plugin-tailwindcss'],
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "css.lint.unknownAtRules": "ignore"
3
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "description": "Use Tailwind in your Qwik app",
3
+ "__qwik__": {
4
+ "displayName": "Integration: Tailwind (styling)",
5
+ "priority": -10,
6
+ "viteConfig": {},
7
+ "docs": [
8
+ "https://qwik.dev/integrations/integration/tailwind/",
9
+ "https://tailwindcss.com/docs/utility-first"
10
+ ]
11
+ },
12
+ "devDependencies": {
13
+ "autoprefixer": "^10.4.19",
14
+ "postcss": "^8.4.39",
15
+ "prettier-plugin-tailwindcss": "^0.5.4",
16
+ "tailwindcss": "^3.4.6"
17
+ }
18
+ }
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tailwind CSS imports
3
+ * View the full documentation at https://tailwindcss.com
4
+ */
5
+ @tailwind base;
6
+ @tailwind components;
7
+ @tailwind utilities;
@@ -0,0 +1,8 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ export default {
3
+ content: ['./src/**/*.{js,ts,jsx,tsx,mdx}'],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [],
8
+ };
@@ -0,0 +1,2 @@
1
+ PRIVATE_TURSO_DATABASE_URL=
2
+ PRIVATE_TURSO_AUTH_TOKEN=
@@ -0,0 +1,30 @@
1
+ {
2
+ "description": "Use Turso in your Qwik app",
3
+ "__qwik__": {
4
+ "displayName": "Integration: Turso (database)",
5
+ "priority": -10,
6
+ "viteConfig": {},
7
+ "docs": [
8
+ "https://qwik.dev/integrations/integration/turso/",
9
+ "https://docs.turso.tech"
10
+ ],
11
+ "nextSteps": {
12
+ "title": "Create and set up your turso database",
13
+ "lines": [
14
+ " Install the Turso CLI (https://docs.turso.tech/quickstart)",
15
+ " You can then create a new Turso database by running:",
16
+ " turso db create <db-name>",
17
+ " To see information about the database, including a connection URL, run:",
18
+ " turso db show <db-name>",
19
+ " To get an authentication token for the database, run:",
20
+ " turso db tokens create <db-name>"
21
+ ]
22
+ }
23
+ },
24
+ "dependencies": {
25
+ "@libsql/client": "latest"
26
+ },
27
+ "devDependencies": {
28
+ "@qwik.dev/router": "latest"
29
+ }
30
+ }
@@ -0,0 +1,21 @@
1
+ import { createClient, type Client } from "@libsql/client/web";
2
+ import type { RequestEventBase } from "@qwik.dev/router";
3
+
4
+ export function tursoClient(requestEvent: RequestEventBase): Client {
5
+ const url = requestEvent.env.get("PRIVATE_TURSO_DATABASE_URL")?.trim();
6
+ if (url === undefined) {
7
+ throw new Error("PRIVATE_TURSO_DATABASE_URL is not defined");
8
+ }
9
+
10
+ const authToken = requestEvent.env.get("PRIVATE_TURSO_AUTH_TOKEN")?.trim();
11
+ if (authToken === undefined) {
12
+ if (!url.includes("file:")) {
13
+ throw new Error("PRIVATE_TURSO_AUTH_TOKEN is not defined");
14
+ }
15
+ }
16
+
17
+ return createClient({
18
+ url,
19
+ authToken,
20
+ });
21
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "description": "Use Vitest into your Qwik app",
3
+ "__qwik__": {
4
+ "displayName": "Integration: Vitest (Unit Test)",
5
+ "priority": -15,
6
+ "viteConfig": {},
7
+ "docs": [
8
+ "https://vitest.dev/guide/",
9
+ "https://qwik.dev/integrations/integration/vitest/"
10
+ ]
11
+ },
12
+ "devDependencies": {
13
+ "@vitest/ui": "^0.34.6",
14
+ "vitest": "^0.34.6"
15
+ },
16
+ "scripts": {
17
+ "test.unit": "vitest components",
18
+ "test.unit.ui": "vitest --ui components"
19
+ }
20
+ }
@@ -0,0 +1,32 @@
1
+ import { createDOM } from "@qwik.dev/core/testing";
2
+ import { expect, test } from "vitest";
3
+ import { ExampleTest } from "./example";
4
+
5
+ test(`[ExampleTest Component]: Should render ⭐`, async () => {
6
+ const { screen, render } = await createDOM();
7
+ await render(<ExampleTest flag={true} />);
8
+ expect(screen.outerHTML).toContain("⭐");
9
+ const div = screen.querySelector(".icon") as HTMLElement;
10
+ expect(div.outerHTML).toContain("⭐");
11
+ });
12
+
13
+ test(`[ExampleTest Component]: Should render 💣`, async () => {
14
+ const { screen, render } = await createDOM();
15
+ await render(<ExampleTest flag={false} />);
16
+ expect(screen.outerHTML).toContain("💣");
17
+ });
18
+
19
+ test(`[ExampleTest Component]: Click counter +1`, async () => {
20
+ const { screen, render, userEvent } = await createDOM();
21
+ await render(<ExampleTest flag={true} />);
22
+
23
+ expect(screen.outerHTML).toContain("Count:0");
24
+
25
+ const spanBefore = screen.querySelector("span") as HTMLDivElement;
26
+ await userEvent(".btn-counter", "click");
27
+ expect(spanBefore.innerHTML).toEqual("Count:1");
28
+
29
+ const spanAfter = screen.querySelector("span") as HTMLDivElement;
30
+ await userEvent("button", "click");
31
+ expect(spanAfter.innerHTML).toEqual("Count:2");
32
+ });
@@ -0,0 +1,17 @@
1
+ import { component$, useStore } from "@qwik.dev/core";
2
+
3
+ export const ExampleTest = component$((props: { flag: boolean }) => {
4
+ const state = useStore({
5
+ counter: 0,
6
+ });
7
+
8
+ return (
9
+ <>
10
+ <span>Count:{state.counter}</span>
11
+ <div class="icon">Flag: {props.flag ? "⭐" : "💣"}</div>
12
+ <button class="btn-counter" onClick$={() => state.counter++}>
13
+ Increment counter
14
+ </button>
15
+ </>
16
+ );
17
+ });
@@ -0,0 +1,13 @@
1
+ import { component$ } from '@qwik.dev/core';
2
+
3
+ export interface [name]Props {
4
+
5
+ }
6
+
7
+ export const [name] = component$<[name]Props>((props) => {
8
+ return (
9
+ <div>
10
+ [name] component works!
11
+ </div>
12
+ );
13
+ });
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: New Route
3
+ ---
4
+
5
+ New route works.
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: New Route
3
+ ---
4
+
5
+ New route works.
@@ -0,0 +1,9 @@
1
+ import { component$ } from '@qwik.dev/core';
2
+
3
+ export default component$(() => {
4
+ return (
5
+ <div>
6
+ New route works.
7
+ </div>
8
+ );
9
+ });
@@ -0,0 +1,13 @@
1
+ import { component$ } from '@qwik.dev/core';
2
+
3
+ export interface [name]Props {
4
+
5
+ }
6
+
7
+ export const [name] = component$<[name]Props>((props) => {
8
+ return (
9
+ <div>
10
+ [name] component works!
11
+ </div>
12
+ );
13
+ });
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: New Route
3
+ ---
4
+
5
+ New route works.
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: New Route
3
+ ---
4
+
5
+ New route works.
@@ -0,0 +1,9 @@
1
+ import { component$ } from '@qwik.dev/core';
2
+
3
+ export default component$(() => {
4
+ return (
5
+ <div>
6
+ New route works.
7
+ </div>
8
+ );
9
+ });