crelte 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/LICENSE.md +41 -0
  2. package/dist/Crelte.d.ts +55 -0
  3. package/dist/Crelte.d.ts.map +1 -0
  4. package/dist/Crelte.js +106 -0
  5. package/dist/CrelteBase.d.ts +16 -0
  6. package/dist/CrelteBase.d.ts.map +1 -0
  7. package/dist/CrelteBase.js +1 -0
  8. package/dist/CrelteRouted.d.ts +50 -0
  9. package/dist/CrelteRouted.d.ts.map +1 -0
  10. package/dist/CrelteRouted.js +88 -0
  11. package/dist/blocks/Blocks.d.ts +35 -0
  12. package/dist/blocks/Blocks.d.ts.map +1 -0
  13. package/dist/blocks/Blocks.js +100 -0
  14. package/dist/blocks/Blocks.svelte +21 -0
  15. package/dist/blocks/Blocks.svelte.d.ts +24 -0
  16. package/dist/blocks/Blocks.svelte.d.ts.map +1 -0
  17. package/dist/blocks/index.d.ts +5 -0
  18. package/dist/blocks/index.d.ts.map +1 -0
  19. package/dist/blocks/index.js +3 -0
  20. package/dist/cookies/ClientCookies.d.ts +9 -0
  21. package/dist/cookies/ClientCookies.d.ts.map +1 -0
  22. package/dist/cookies/ClientCookies.js +22 -0
  23. package/dist/cookies/ServerCookies.d.ts +13 -0
  24. package/dist/cookies/ServerCookies.d.ts.map +1 -0
  25. package/dist/cookies/ServerCookies.js +31 -0
  26. package/dist/cookies/index.d.ts +20 -0
  27. package/dist/cookies/index.d.ts.map +1 -0
  28. package/dist/cookies/index.js +1 -0
  29. package/dist/cookies/utils.d.ts +12 -0
  30. package/dist/cookies/utils.d.ts.map +1 -0
  31. package/dist/cookies/utils.js +32 -0
  32. package/dist/graphql/GraphQl.d.ts +60 -0
  33. package/dist/graphql/GraphQl.d.ts.map +1 -0
  34. package/dist/graphql/GraphQl.js +197 -0
  35. package/dist/graphql/gql.test.d.ts +2 -0
  36. package/dist/graphql/gql.test.d.ts.map +1 -0
  37. package/dist/graphql/gql.test.js +80 -0
  38. package/dist/graphql/index.d.ts +3 -0
  39. package/dist/graphql/index.d.ts.map +1 -0
  40. package/dist/graphql/index.js +2 -0
  41. package/dist/index.d.ts +67 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +83 -0
  44. package/dist/init/client.d.ts +13 -0
  45. package/dist/init/client.d.ts.map +1 -0
  46. package/dist/init/client.js +129 -0
  47. package/dist/init/server.d.ts +38 -0
  48. package/dist/init/server.d.ts.map +1 -0
  49. package/dist/init/server.js +95 -0
  50. package/dist/init/shared.d.ts +29 -0
  51. package/dist/init/shared.d.ts.map +1 -0
  52. package/dist/init/shared.js +154 -0
  53. package/dist/loadData/Globals.d.ts +33 -0
  54. package/dist/loadData/Globals.d.ts.map +1 -0
  55. package/dist/loadData/Globals.js +119 -0
  56. package/dist/loadData/index.d.ts +25 -0
  57. package/dist/loadData/index.d.ts.map +1 -0
  58. package/dist/loadData/index.js +39 -0
  59. package/dist/plugins/Events.d.ts +11 -0
  60. package/dist/plugins/Events.d.ts.map +1 -0
  61. package/dist/plugins/Events.js +29 -0
  62. package/dist/plugins/Plugins.d.ts +12 -0
  63. package/dist/plugins/Plugins.d.ts.map +1 -0
  64. package/dist/plugins/Plugins.js +12 -0
  65. package/dist/plugins/index.d.ts +5 -0
  66. package/dist/plugins/index.d.ts.map +1 -0
  67. package/dist/plugins/index.js +2 -0
  68. package/dist/routing/History.d.ts +22 -0
  69. package/dist/routing/History.d.ts.map +1 -0
  70. package/dist/routing/History.js +36 -0
  71. package/dist/routing/InnerRouter.d.ts +111 -0
  72. package/dist/routing/InnerRouter.d.ts.map +1 -0
  73. package/dist/routing/InnerRouter.js +397 -0
  74. package/dist/routing/PageLoader.d.ts +37 -0
  75. package/dist/routing/PageLoader.d.ts.map +1 -0
  76. package/dist/routing/PageLoader.js +72 -0
  77. package/dist/routing/Route.d.ts +82 -0
  78. package/dist/routing/Route.d.ts.map +1 -0
  79. package/dist/routing/Route.js +134 -0
  80. package/dist/routing/Router.d.ts +162 -0
  81. package/dist/routing/Router.d.ts.map +1 -0
  82. package/dist/routing/Router.js +333 -0
  83. package/dist/routing/Site.d.ts +47 -0
  84. package/dist/routing/Site.d.ts.map +1 -0
  85. package/dist/routing/Site.js +48 -0
  86. package/dist/routing/index.d.ts +5 -0
  87. package/dist/routing/index.d.ts.map +1 -0
  88. package/dist/routing/index.js +4 -0
  89. package/dist/ssr/SsrCache.d.ts +12 -0
  90. package/dist/ssr/SsrCache.d.ts.map +1 -0
  91. package/dist/ssr/SsrCache.js +50 -0
  92. package/dist/ssr/SsrComponents.d.ts +7 -0
  93. package/dist/ssr/SsrComponents.d.ts.map +1 -0
  94. package/dist/ssr/SsrComponents.js +30 -0
  95. package/dist/ssr/index.d.ts +4 -0
  96. package/dist/ssr/index.d.ts.map +1 -0
  97. package/dist/ssr/index.js +3 -0
  98. package/package.json +79 -0
  99. package/src/Crelte.ts +135 -0
  100. package/src/CrelteBase.ts +24 -0
  101. package/src/CrelteRouted.ts +128 -0
  102. package/src/blocks/Blocks.svelte +68 -0
  103. package/src/blocks/Blocks.ts +155 -0
  104. package/src/blocks/index.ts +14 -0
  105. package/src/cookies/ClientCookies.ts +30 -0
  106. package/src/cookies/ServerCookies.ts +42 -0
  107. package/src/cookies/index.ts +24 -0
  108. package/src/cookies/utils.ts +53 -0
  109. package/src/graphql/GraphQl.ts +281 -0
  110. package/src/graphql/gql.test.ts +123 -0
  111. package/src/graphql/index.ts +8 -0
  112. package/src/index.ts +109 -0
  113. package/src/init/client.ts +190 -0
  114. package/src/init/server.ts +177 -0
  115. package/src/init/shared.ts +221 -0
  116. package/src/loadData/Globals.ts +150 -0
  117. package/src/loadData/index.ts +67 -0
  118. package/src/plugins/Events.ts +50 -0
  119. package/src/plugins/Plugins.ts +23 -0
  120. package/src/plugins/index.ts +5 -0
  121. package/src/routing/History.ts +52 -0
  122. package/src/routing/InnerRouter.ts +469 -0
  123. package/src/routing/PageLoader.ts +112 -0
  124. package/src/routing/Route.ts +184 -0
  125. package/src/routing/Router.ts +476 -0
  126. package/src/routing/Site.ts +65 -0
  127. package/src/routing/index.ts +5 -0
  128. package/src/ssr/SsrCache.ts +61 -0
  129. package/src/ssr/SsrComponents.ts +34 -0
  130. package/src/ssr/index.ts +4 -0
@@ -0,0 +1,61 @@
1
+ export async function calcKey(data: any) {
2
+ // Convert the string data to an ArrayBuffer
3
+ const encoder = new TextEncoder();
4
+ const dataBuffer = encoder.encode(JSON.stringify(data));
5
+
6
+ // Use the Web Crypto API to hash the data with SHA-1
7
+ const hashBuffer = await crypto.subtle.digest('SHA-1', dataBuffer);
8
+
9
+ // Convert the ArrayBuffer to a hex string
10
+ const hashArray = Array.from(new Uint8Array(hashBuffer)); // Create an array from the buffer
11
+ const hashHex = hashArray
12
+ .map(b => b.toString(16).padStart(2, '0'))
13
+ .join(''); // Convert to hex string
14
+
15
+ return hashHex;
16
+ }
17
+
18
+ export default class SsrCache {
19
+ private store: Record<string, any>;
20
+
21
+ constructor() {
22
+ this.store = {};
23
+
24
+ // @ts-ignore
25
+ if (typeof window !== 'undefined' && window.SSR_STORE) {
26
+ // @ts-ignore
27
+ this.store = window.SSR_STORE;
28
+ }
29
+ }
30
+
31
+ /// check if the value is in the cache else calls the fn
32
+ async load<T>(key: string, fn: () => Promise<T>) {
33
+ if (key in this.store) return this.store[key];
34
+ const v = await fn();
35
+ this.set(key, v);
36
+ return v;
37
+ }
38
+
39
+ /// returns null if the data does not exists
40
+ get<T>(key: string): T | null {
41
+ return this.store[key] ?? null;
42
+ }
43
+
44
+ set<T>(key: string, val: T): T {
45
+ return (this.store[key] = val);
46
+ }
47
+
48
+ clear() {
49
+ this.store = {};
50
+ }
51
+
52
+ // internal
53
+ private exportAsJson(): string {
54
+ return JSON.stringify(this.store).replace(/</g, '\\u003c');
55
+ }
56
+
57
+ // internal
58
+ _exportToHead(): string {
59
+ return `\n\t\t<script>window.SSR_STORE = ${this.exportAsJson()};</script>`;
60
+ }
61
+ }
@@ -0,0 +1,34 @@
1
+ export default class SsrComponents {
2
+ private modules: Set<string>;
3
+
4
+ constructor() {
5
+ this.modules = new Set();
6
+ }
7
+
8
+ /// ctx: Map
9
+ addToContext(ctx: Map<string, any>) {
10
+ ctx.set('modules', this.modules);
11
+ }
12
+
13
+ /// Returns preload for js and link stylesheet for css
14
+ ///
15
+ /// ssrManifest: {}, gets generated by client build
16
+ toHead(ssrManifest: Record<string, string[]>) {
17
+ const requirements = new Set<string>();
18
+ for (const mod of this.modules) {
19
+ const deps = ssrManifest[mod] ?? [];
20
+ deps.forEach(dep => requirements.add(dep));
21
+ }
22
+
23
+ let head = '';
24
+ for (const req of requirements) {
25
+ if (req.endsWith('.js')) {
26
+ head += `\n\t\t<link rel="preload" href="${req}" as="script">`;
27
+ } else if (req.endsWith('.css')) {
28
+ head += `\n\t\t<link rel="stylesheet" href="${req}">`;
29
+ }
30
+ }
31
+
32
+ return head;
33
+ }
34
+ }
@@ -0,0 +1,4 @@
1
+ import SsrCache from './SsrCache.js';
2
+ import SsrComponents from './SsrComponents.js';
3
+
4
+ export { SsrCache, SsrComponents };