cayo 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +6 -0
  3. package/cayo.js +295 -0
  4. package/jsconfig.json.txt +34 -0
  5. package/lib/cli.js +69 -0
  6. package/lib/codegen.js +77 -0
  7. package/lib/components/Cayo.svelte +24 -0
  8. package/lib/config.js +155 -0
  9. package/lib/files.js +84 -0
  10. package/lib/prerender.js +181 -0
  11. package/lib/renderer.js +45 -0
  12. package/lib/runtime.js +6 -0
  13. package/lib/utils.js +120 -0
  14. package/lib/vite.config.js +16 -0
  15. package/notes.md +3 -0
  16. package/package.json +39 -0
  17. package/test/cayo.config.js +35 -0
  18. package/test/public/assets/cow.js +1 -0
  19. package/test/public/images/app-icon.png +0 -0
  20. package/test/src/__layout.svelte +20 -0
  21. package/test/src/components/Cool.cayo.svelte +4 -0
  22. package/test/src/components/Some.svelte +1 -0
  23. package/test/src/index.js +5 -0
  24. package/test/src/main2.js +1 -0
  25. package/test/src/pages/hey.svelte +8 -0
  26. package/test/src/pages/howdy.svelte +11 -0
  27. package/test/src/pages/index.svelte +33 -0
  28. package/test/src/pages/some/page.svelte +2 -0
  29. package/tests/asset-dir/cayo.config.js +38 -0
  30. package/tests/asset-dir/package-lock.json +1435 -0
  31. package/tests/asset-dir/package.json +19 -0
  32. package/tests/asset-dir/public/images/app-icon.png +0 -0
  33. package/tests/asset-dir/src/__layout.svelte +20 -0
  34. package/tests/asset-dir/src/components/CayoExample.svelte +5 -0
  35. package/tests/asset-dir/src/components/Some.cayo.svelte +6 -0
  36. package/tests/asset-dir/src/index.js +5 -0
  37. package/tests/asset-dir/src/pages/index.svelte +19 -0
  38. package/tests/base-path/cayo.config.js +36 -0
  39. package/tests/base-path/package-lock.json +1435 -0
  40. package/tests/base-path/package.json +19 -0
  41. package/tests/base-path/public/assets/cow.js +1 -0
  42. package/tests/base-path/public/images/app-icon.png +0 -0
  43. package/tests/base-path/src/__layout.svelte +20 -0
  44. package/tests/base-path/src/components/CayoExample.svelte +5 -0
  45. package/tests/base-path/src/components/Some.cayo.svelte +6 -0
  46. package/tests/base-path/src/index.js +5 -0
  47. package/tests/base-path/src/pages/howdy.svelte +12 -0
  48. package/tests/base-path/src/pages/index.svelte +20 -0
  49. package/tests/basic/notcayo.config.js +35 -0
  50. package/tests/basic/package-lock.json +1435 -0
  51. package/tests/basic/package.json +19 -0
  52. package/tests/basic/public/assets/cow.js +1 -0
  53. package/tests/basic/public/images/app-icon.png +0 -0
  54. package/tests/basic/src/__layout.svelte +20 -0
  55. package/tests/basic/src/components/Cool.cayo.svelte +4 -0
  56. package/tests/basic/src/components/Some.svelte +1 -0
  57. package/tests/basic/src/index.js +5 -0
  58. package/tests/basic/src/main2.js +1 -0
  59. package/tests/basic/src/pages/hey.svelte +8 -0
  60. package/tests/basic/src/pages/howdy.svelte +11 -0
  61. package/tests/basic/src/pages/index.svelte +33 -0
  62. package/tests/basic/src/pages/some/some.svelte +2 -0
  63. package/tests/basic cases (old)/src/__index.svelte +18 -0
  64. package/tests/basic cases (old)/src/components/Cool.cayo.svelte +4 -0
  65. package/tests/basic cases (old)/src/components/Some.svelte +1 -0
  66. package/tests/basic cases (old)/src/components/dir/Cool.cayo.svelte +4 -0
  67. package/tests/basic cases (old)/src/main.js +1 -0
  68. package/tests/basic cases (old)/src/main2.js +1 -0
  69. package/tests/basic cases (old)/src/pages/hey.svelte +2 -0
  70. package/tests/basic cases (old)/src/pages/howdy.svelte +11 -0
  71. package/tests/basic cases (old)/src/pages/index.svelte +27 -0
  72. package/tests/nested-pages/cayo.config.js +35 -0
  73. package/tests/nested-pages/package-lock.json +1435 -0
  74. package/tests/nested-pages/package.json +19 -0
  75. package/tests/nested-pages/public/assets/cow.js +1 -0
  76. package/tests/nested-pages/public/images/app-icon.png +0 -0
  77. package/tests/nested-pages/src/__layout.svelte +20 -0
  78. package/tests/nested-pages/src/components/Cool.cayo.svelte +4 -0
  79. package/tests/nested-pages/src/index.js +5 -0
  80. package/tests/nested-pages/src/main2.js +1 -0
  81. package/tests/nested-pages/src/pages/index.svelte +18 -0
  82. package/tests/nested-pages/src/pages/some/other/page.svelte +7 -0
  83. package/tests/nested-pages/src/pages/some/page.svelte +6 -0
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "test-cayo",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "type": "module",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1"
11
+ },
12
+ "author": "",
13
+ "license": "ISC",
14
+ "devDependencies": {
15
+ "@sveltejs/vite-plugin-svelte": "^1.0.0-next.31",
16
+ "svelte-preprocess": "^4.9.8",
17
+ "vite": "^2.6.14"
18
+ }
19
+ }
@@ -0,0 +1 @@
1
+ console.log("I'm main");
@@ -0,0 +1,20 @@
1
+ <!-- <!DOCTYPE html> -->
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" href="/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ %cayo.title%
8
+ %cayo.css%
9
+ %cayo.head%
10
+ </head>
11
+ <body class="hey">
12
+ <!--
13
+ TODO: Show how to condtionally render any of these pieces based on dev vs. prod
14
+ E.g., I need to remove head from prod, but want it there in dev
15
+ -->
16
+ %cayo.body%
17
+ %cayo.script%
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,4 @@
1
+ <script>
2
+ export let beans = '';
3
+ </script>
4
+ <div>{beans}</div>
@@ -0,0 +1,5 @@
1
+ // console.log("I'm main");
2
+ import { default as renderComponents } from './cayo-runtime.js';
3
+ document.addEventListener('DOMContentLoaded', () => {
4
+ renderComponents();
5
+ });
@@ -0,0 +1 @@
1
+ console.log("I'm main also");
@@ -0,0 +1,8 @@
1
+ yessir
2
+ <br><a href="/">Back</a>
3
+
4
+ <style>
5
+ br {
6
+ display: block;
7
+ }
8
+ </style>
@@ -0,0 +1,11 @@
1
+ <script>
2
+ import Cayo from 'cayo/lib/components/Cayo.svelte';
3
+ </script>
4
+
5
+ howdyyy
6
+ <br><a href="/">Back</a>
7
+ <Cayo name="Cool" beans='on Howdy' />
8
+
9
+ <slot name="entry">
10
+ <script src="/main2.js" data-cayo-entry />
11
+ </slot>
@@ -0,0 +1,33 @@
1
+ <script context="module">
2
+ export const meta = {
3
+ title: 'Home',
4
+ };
5
+ </script>
6
+ <script>
7
+ import Cayo from 'cayo/lib/components/Cayo.svelte';
8
+ </script>
9
+
10
+
11
+ I'm index howdy ok<br>
12
+ <a href="/howdy/">Howdy</a><br>
13
+ <a href="/hey/" class="red">Hey</a>
14
+ <a href="/some/some/" class="red">Some</a>
15
+
16
+ <Cayo name="Cool" beans='ayo'></Cayo>
17
+ <Cayo name="Cool" beans='beeeeaaaaasnnss' />
18
+ <Cayo name="Cool" beans='NOT BEANS' />
19
+
20
+ <img src="/images/app-icon.png" alt="">
21
+
22
+ <slot name="entry">
23
+ <script src="/index.js" data-cayo-entry />
24
+ </slot>
25
+
26
+ <style>
27
+ .red {
28
+ color: red;
29
+ }
30
+ img {
31
+ width: 50px;
32
+ }
33
+ </style>
@@ -0,0 +1,2 @@
1
+ <div>hey</div>
2
+ <br><a href="/">Back</a>
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" href="/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ %cayo.title%
8
+ %cayo.head%
9
+ </head>
10
+ <body>
11
+ <!--
12
+ TODO: Show how to condtionally render any of these pieces based on dev vs. prod
13
+ E.g., I need to remove head from prod, but want it there in dev
14
+ -->
15
+ %cayo.body%
16
+ %cayo.script%
17
+ </body>
18
+ </html>
@@ -0,0 +1,4 @@
1
+ <script>
2
+ export let beans = '';
3
+ </script>
4
+ <div>{beans}</div>
@@ -0,0 +1,4 @@
1
+ <script>
2
+ export let beans = '';
3
+ </script>
4
+ <div>{beans}</div>
@@ -0,0 +1 @@
1
+ console.log("I'm main");
@@ -0,0 +1 @@
1
+ console.log("I'm main also");
@@ -0,0 +1,2 @@
1
+ yessir
2
+ <br><a href="/home/">Back</a>
@@ -0,0 +1,11 @@
1
+ <script>
2
+ import Cayo from '../../../components/Cayo.svelte';
3
+ </script>
4
+
5
+ howdyyy
6
+ <br><a href="/home/">Back</a>
7
+ <Cayo name="Cool" beans='on Howdy' />
8
+
9
+ <slot name="entry">
10
+ <script src="../main2.js" data-cayo-entry />
11
+ </slot>
@@ -0,0 +1,27 @@
1
+ <script context="module">
2
+ export const meta = {
3
+ title: 'Home',
4
+ };
5
+ </script>
6
+ <script>
7
+ import Cayo from '../../../components/Cayo.svelte';
8
+ </script>
9
+ I'm index howdy ok<br>
10
+ <a href="/howdy/">Howdy</a><br>
11
+ <a href="/hey/" class="red">Hey</a>
12
+
13
+ <Cayo beans='ayo'></Cayo>
14
+ <Cayo name="bad" beans='ayo'></Cayo>
15
+ <Cayo name="Cool" beans='ayo'></Cayo>
16
+ <Cayo name="Cool" beans='beeeeaaaaasnnss' />
17
+ <Cayo name="Cool" beans='NOT BEANS' />
18
+
19
+ <slot name="entry">
20
+ <script src="../main.js" data-cayo-entry />
21
+ </slot>
22
+
23
+ <style>
24
+ .red {
25
+ color: red;
26
+ }
27
+ </style>
@@ -0,0 +1,35 @@
1
+
2
+ // vite config example
3
+ import { defineConfig } from 'vite'
4
+ import { svelte } from '@sveltejs/vite-plugin-svelte'
5
+ import sveltePreprocess from 'svelte-preprocess'
6
+ // const viteConfig = defineConfig({
7
+ // // root: './.cayo/',
8
+ // plugins: [svelte({
9
+ // preprocess: sveltePreprocess({ preserve: ['json'] }),
10
+ // compilerOptions: {
11
+ // hydratable: true,
12
+ // },
13
+ // })],
14
+ // });
15
+
16
+ export default {
17
+ // projectRoot: '.',
18
+ // css: {
19
+ // internal: false,
20
+ // },
21
+ templateFileName: '__layout',
22
+ viteConfig: {
23
+ // base: '/vite/',
24
+ plugins: [svelte({
25
+ preprocess: sveltePreprocess({ preserve: ['json'] }),
26
+ compilerOptions: {
27
+ hydratable: true,
28
+ },
29
+ })],
30
+ server: {
31
+ // port: '5005',
32
+ },
33
+ },
34
+ // base: '/cayo/'
35
+ }