polen 0.11.0-next.26 → 0.11.0-next.28

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 (48) hide show
  1. package/build/api/builder/ssg/generate.d.ts.map +1 -1
  2. package/build/api/builder/ssg/generate.js +76 -50
  3. package/build/api/builder/ssg/generate.js.map +1 -1
  4. package/build/api/builder/ssg/page-generator.worker.js +59 -55
  5. package/build/api/builder/ssg/page-generator.worker.js.map +1 -1
  6. package/build/api/builder/ssg/server-runner.worker.js +34 -40
  7. package/build/api/builder/ssg/server-runner.worker.js.map +1 -1
  8. package/build/api/builder/ssg/worker-messages.d.ts +10 -0
  9. package/build/api/builder/ssg/worker-messages.d.ts.map +1 -1
  10. package/build/api/builder/ssg/worker-messages.js +7 -1
  11. package/build/api/builder/ssg/worker-messages.js.map +1 -1
  12. package/build/template/components/ReferenceLink.d.ts +1 -0
  13. package/build/template/components/ReferenceLink.d.ts.map +1 -1
  14. package/build/template/components/ReferenceLink.js.map +1 -1
  15. package/build/template/components/graphql/type-link.d.ts.map +1 -1
  16. package/build/template/components/graphql/type-link.js +7 -6
  17. package/build/template/components/graphql/type-link.js.map +1 -1
  18. package/build/vite/plugins/routes-manifest.d.ts.map +1 -1
  19. package/build/vite/plugins/routes-manifest.js +5 -2
  20. package/build/vite/plugins/routes-manifest.js.map +1 -1
  21. package/package.json +38 -48
  22. package/src/api/builder/ssg/generate.ts +111 -71
  23. package/src/api/builder/ssg/page-generator.worker.ts +106 -74
  24. package/src/api/builder/ssg/server-runner.worker.ts +39 -44
  25. package/src/api/builder/ssg/worker-messages.ts +11 -1
  26. package/src/template/components/ReferenceLink.tsx +1 -0
  27. package/src/template/components/graphql/type-link.tsx +21 -9
  28. package/src/vite/plugins/routes-manifest.ts +5 -2
  29. package/build/lib/extensible-data/$.d.ts +0 -2
  30. package/build/lib/extensible-data/$.d.ts.map +0 -1
  31. package/build/lib/extensible-data/$.js +0 -2
  32. package/build/lib/extensible-data/$.js.map +0 -1
  33. package/build/lib/extensible-data/extensible-data.d.ts +0 -17
  34. package/build/lib/extensible-data/extensible-data.d.ts.map +0 -1
  35. package/build/lib/extensible-data/extensible-data.js +0 -24
  36. package/build/lib/extensible-data/extensible-data.js.map +0 -1
  37. package/build/lib/vite-plugin-reactive-data/$.d.ts +0 -2
  38. package/build/lib/vite-plugin-reactive-data/$.d.ts.map +0 -1
  39. package/build/lib/vite-plugin-reactive-data/$.js +0 -2
  40. package/build/lib/vite-plugin-reactive-data/$.js.map +0 -1
  41. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +0 -32
  42. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +0 -1
  43. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +0 -85
  44. package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +0 -1
  45. package/src/lib/extensible-data/$.ts +0 -1
  46. package/src/lib/extensible-data/extensible-data.ts +0 -38
  47. package/src/lib/vite-plugin-reactive-data/$.ts +0 -1
  48. package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +0 -124
@@ -1 +0,0 @@
1
- {"version":3,"file":"vite-plugin-reactive-data.js","sourceRoot":"","sources":["../../../src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAoB,MAAM,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AA8BjE,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAA4B,EAAU,EAAE;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAA;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,eAAe,CAAA;IAE5C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnC,KAAK,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;IAElC,IAAI,OAAsB,CAAA;IAC1B,IAAI,sBAAsB,GAAG,KAAK,CAAA;IAElC,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,sBAAsB,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;YAC1C,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,mBAAmB,EAAE;gBACzB,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ;gBACR,IAAI,EAAE,6BAA6B;aACpC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,sBAAsB;YAAE,OAAM,CAAC,oBAAoB;QAEvD,sBAAsB,GAAG,IAAI,CAAA;QAE7B,IAAI,CAAC,OAAO;YAAE,OAAM,CAAC,+BAA+B;QAEpD,aAAa,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,uCAAuC;IACvC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;QAC3B,CAAC;aAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IAED,qCAAqC;IACrC,MAAM,CAAC,GAAG,EAAE;QACV,oCAAoC;QACpC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;QACtB,KAAK,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAEnC,kBAAkB,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI;QAEJ,eAAe,CAAC,OAAO;YACrB,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAC7B,OAAO,GAAG,OAAO,CAAA;YACjB,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,KAAK,CAAC,kDAAkD,CAAC,CAAA;gBACzD,aAAa,EAAE,CAAA;YACjB,CAAC;QACH,CAAC;QAED,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO,QAAQ,CAAA;YACjB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,oCAAoC;QACpC,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,QAAQ;gBAAE,OAAM;YAE3B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;YACtB,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;YAE5B,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC3B,GAAG,EAAE,IAAI;aACV,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export * as ExtensibleData from './extensible-data.js'
@@ -1,38 +0,0 @@
1
- import { computed, reactive } from '@vue/reactivity'
2
- import type { ComputedRef, UnwrapRefSimple } from '@vue/reactivity'
3
-
4
- type Join<$Data> = (chunks: $Data[]) => $Data
5
- type Create<$Data> = () => $Data
6
-
7
- interface DataTypeOperations<$Data> {
8
- join: Join<$Data>
9
- create: Create<$Data>
10
- }
11
-
12
- export const create = <$Data extends object = object>(dataTypeOperations: DataTypeOperations<$Data>) => {
13
- return new ExtensibleData<$Data>(dataTypeOperations)
14
- }
15
-
16
- export class ExtensibleData<$Data extends object = object> {
17
- public value: ComputedRef<$Data> = computed(() => {
18
- const namespacedDataItems = Array.from(this.namespacedReactiveData.values())
19
- const data = this.dataTypeOperations.join(namespacedDataItems as $Data[])
20
- return data
21
- })
22
-
23
- private namespacedReactiveData = reactive(new Map<string, $Data>())
24
-
25
- private dataTypeOperations: DataTypeOperations<$Data>
26
-
27
- constructor(dataTypeOperations: DataTypeOperations<$Data>) {
28
- this.dataTypeOperations = dataTypeOperations
29
- }
30
-
31
- get(namespace: string): $Data {
32
- if (!this.namespacedReactiveData.has(namespace)) {
33
- const data = this.dataTypeOperations.create()
34
- this.namespacedReactiveData.set(namespace, data as UnwrapRefSimple<$Data>)
35
- }
36
- return this.namespacedReactiveData.get(namespace)! as $Data
37
- }
38
- }
@@ -1 +0,0 @@
1
- export * as VitePluginReactiveData from './vite-plugin-reactive-data.js'
@@ -1,124 +0,0 @@
1
- import type { VitePluginJson } from '#lib/vite-plugin-json'
2
- import { debugPolen } from '#singletons/debug'
3
- import { type ComputedRef, effect, isRef } from '@vue/reactivity'
4
- import type { Plugin, ViteDevServer } from 'vite'
5
-
6
- interface ReactiveDataOptions {
7
- /**
8
- * Virtual module ID (e.g., 'virtual:polen/navbar') that this data will be exported from.
9
- * The appropriate extension will be appended automatically based on moduleType.
10
- */
11
- moduleId: string
12
- /**
13
- * The reactive data to expose.
14
- * Can be either:
15
- * - A Vue computed ref (recommended)
16
- * - A function that returns reactive data
17
- * - A reactive value directly
18
- */
19
- data: ComputedRef<object | unknown[]> | (() => object | unknown[]) | object | unknown[]
20
- /**
21
- * JSON codec to use
22
- * Default: JSON
23
- * Only used when includeJsonPlugin is true
24
- */
25
- codec?: VitePluginJson.Codec
26
- /**
27
- * Custom plugin name. Can use to help identify this plugin in logs if using many instances of this plugin.
28
- @default 'reactive-data'
29
- */
30
- name?: string
31
- }
32
-
33
- const pluginDebug = debugPolen.sub(`vite-reactive-data`)
34
-
35
- export const create = (options: ReactiveDataOptions): Plugin => {
36
- const codec = options.codec ?? JSON
37
- const moduleId = options.moduleId
38
- const name = options.name ?? `reactive-data`
39
-
40
- const debug = pluginDebug.sub(name)
41
- debug(`constructor`, { moduleId })
42
-
43
- let $server: ViteDevServer
44
- let $invalidationScheduled = false
45
-
46
- const tryInvalidate = () => {
47
- $invalidationScheduled = false
48
- if (!$server) throw new Error(`Server not available yet - this should be impossible`)
49
- const moduleNode = $server.moduleGraph.getModuleById(moduleId)
50
- if (moduleNode) {
51
- debug(`invalidate`, { id: moduleNode.id })
52
- $server.moduleGraph.invalidateModule(moduleNode)
53
- } else {
54
- debug(`cannot invalidate`, {
55
- reason: `notInModuleGraph`,
56
- moduleId,
57
- hint: `maybe it was not loaded yet`,
58
- })
59
- }
60
- }
61
-
62
- const scheduleInvalidate = () => {
63
- if ($invalidationScheduled) return // already scheduled
64
-
65
- $invalidationScheduled = true
66
-
67
- if (!$server) return // server will flush when ready
68
-
69
- tryInvalidate()
70
- }
71
-
72
- // Helper to get the current data value
73
- const getData = () => {
74
- if (isRef(options.data)) {
75
- return options.data.value
76
- } else if (typeof options.data === `function`) {
77
- return options.data()
78
- } else {
79
- return options.data
80
- }
81
- }
82
-
83
- // Set up reactive effect immediately
84
- effect(() => {
85
- // Access data to track dependencies
86
- const data = getData()
87
- debug(`effect triggered`, { data })
88
-
89
- scheduleInvalidate()
90
- })
91
-
92
- return {
93
- name,
94
-
95
- configureServer(_server) {
96
- debug(`hook configureServer`)
97
- $server = _server
98
- if ($invalidationScheduled) {
99
- debug(`try invalidate scheduled before server was ready`)
100
- tryInvalidate()
101
- }
102
- },
103
-
104
- resolveId(id) {
105
- if (id === moduleId) {
106
- return moduleId
107
- }
108
- },
109
-
110
- // todo make use of Vite's builtin json plugin
111
- // for example, call it here somehow
112
- load(id) {
113
- if (id !== moduleId) return
114
-
115
- const data = getData()
116
- debug(`hook load`, { data })
117
-
118
- return {
119
- code: codec.stringify(data),
120
- map: null,
121
- }
122
- },
123
- }
124
- }