@sitecore-feaas/clientside 0.3.0 → 0.3.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.
- package/build/components/FEAASComponent.js +8 -4
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASElement.js +18 -4
- package/build/components/FEAASElement.js.map +1 -1
- package/build/dom/rendering.js +1 -1
- package/build/dom/rendering.js.map +1 -1
- package/build/headless.js +4 -5
- package/build/headless.js.map +1 -1
- package/build/ui/FEAASPicker.js +10 -1
- package/build/ui/FEAASPicker.js.map +1 -1
- package/build/ui/react.js +14 -6
- package/build/ui/react.js.map +1 -1
- package/build/{dom → utils}/data.js +3 -0
- package/build/utils/data.js.map +1 -0
- package/build/utils/datapath.js +6 -2
- package/build/utils/datapath.js.map +1 -1
- package/build/utils/settings.js +154 -52
- package/build/utils/settings.js.map +1 -1
- package/dist/browser/headless.cjs +6 -6
- package/dist/browser/headless.cjs.map +4 -4
- package/dist/browser/headless.esm.js +6 -6
- package/dist/browser/headless.esm.js.map +1 -1
- package/dist/browser/index.cjs +7 -7
- package/dist/browser/index.cjs.map +4 -4
- package/dist/browser/index.esm.js +7 -7
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/react.cjs +6 -6
- package/dist/browser/react.cjs.map +4 -4
- package/dist/browser/react.esm.js +6 -6
- package/dist/browser/react.esm.js.map +1 -1
- package/dist/node/headless.cjs +4 -4
- package/dist/node/headless.cjs.map +4 -4
- package/dist/node/headless.esm.js +4 -4
- package/dist/node/headless.esm.js.map +4 -4
- package/dist/node/index.cjs +6 -6
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.esm.js +6 -6
- package/dist/node/index.esm.js.map +4 -4
- package/dist/node/react.cjs +5 -5
- package/dist/node/react.cjs.map +4 -4
- package/dist/node/react.esm.js +5 -5
- package/dist/node/react.esm.js.map +4 -4
- package/headless.cjs +4 -4
- package/headless.cjs.map +4 -4
- package/headless.js +4 -4
- package/headless.js.map +4 -4
- package/package.json +1 -1
- package/react.cjs +6 -6
- package/react.cjs.map +4 -4
- package/react.js +6 -6
- package/react.js.map +4 -4
- package/src/components/FEAASComponent.tsx +11 -5
- package/src/components/FEAASElement.tsx +18 -3
- package/src/dom/component.ts +2 -2
- package/src/dom/html.ts +2 -2
- package/src/dom/rendering.ts +9 -7
- package/src/headless.ts +5 -5
- package/src/ui/FEAASPicker.tsx +10 -2
- package/src/ui/react.tsx +14 -6
- package/src/{dom → utils}/data.ts +3 -1
- package/src/utils/datapath.ts +7 -2
- package/src/utils/settings.ts +184 -53
- package/test/FEAASComponentData.test.tsx +56 -52
- package/test/ServerComponent.test.tsx +2 -2
- package/test/cdn.ts +1 -1
- package/test/datasettings.test.ts +248 -0
- package/test/{extras.ts → extras.test.ts} +1 -1
- package/test/fetch.ts +2 -2
- package/types/components/FEAASComponent.d.ts +7 -4
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASElement.d.ts +1 -0
- package/types/components/FEAASElement.d.ts.map +1 -1
- package/types/dom/component.d.ts +2 -2
- package/types/dom/component.d.ts.map +1 -1
- package/types/dom/html.d.ts +2 -2
- package/types/dom/html.d.ts.map +1 -1
- package/types/dom/rendering.d.ts +8 -7
- package/types/dom/rendering.d.ts.map +1 -1
- package/types/headless.d.ts +5 -5
- package/types/headless.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/ui/FEAASPicker.d.ts.map +1 -1
- package/types/ui/react.d.ts +3 -3
- package/types/ui/react.d.ts.map +1 -1
- package/types/ui/tsbuildinfo +1 -1
- package/types/{dom → utils}/data.d.ts +1 -1
- package/types/utils/data.d.ts.map +1 -0
- package/types/utils/datapath.d.ts +1 -0
- package/types/utils/datapath.d.ts.map +1 -1
- package/types/utils/settings.d.ts +85 -9
- package/types/utils/settings.d.ts.map +1 -1
- package/build/dom/data.js.map +0 -1
- package/build/utils/fetch.js +0 -40
- package/build/utils/fetch.js.map +0 -1
- package/src/utils/fetch.ts +0 -60
- package/test/cjs/tsconfig.json +0 -9
- package/test/fetch-data.ts +0 -55
- package/test/settings.test.ts +0 -78
- package/types/dom/data.d.ts.map +0 -1
- package/types/utils/fetch.d.ts +0 -9
- package/types/utils/fetch.d.ts.map +0 -1
|
@@ -6,6 +6,7 @@ const earliest = new Date(2000, 1, 1, 0, 0, 0)
|
|
|
6
6
|
const earlier = new Date(2000, 1, 2, 0, 0, 0)
|
|
7
7
|
const now = new Date(2000, 1, 2, 12, 0, 0)
|
|
8
8
|
|
|
9
|
+
var delayLength = 16
|
|
9
10
|
describe('FEAAS component data', () => {
|
|
10
11
|
beforeAll(() => {
|
|
11
12
|
vi.setSystemTime(now)
|
|
@@ -28,12 +29,12 @@ describe('FEAAS component data', () => {
|
|
|
28
29
|
expect(resolved.map(({ name }) => name)).to.eql(promises.map(({ name }) => name))
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
const
|
|
32
|
+
const freshRequestSpy = (dataDelay = 1, htmlDelay = 1, stylesDelay = 1) => {
|
|
32
33
|
return vi
|
|
33
34
|
.spyOn(global, 'fetch')
|
|
34
35
|
.mockImplementation(async (url: string, options: Parameters<typeof fetch>[1] = {}) => {
|
|
35
36
|
if (url.includes('.css')) {
|
|
36
|
-
await new Promise((resolve) => setTimeout(resolve, stylesDelay))
|
|
37
|
+
await new Promise((resolve) => setTimeout(resolve, stylesDelay * delayLength))
|
|
37
38
|
return new Response('YESTERDAY {}', {
|
|
38
39
|
headers: {
|
|
39
40
|
date: now.toUTCString(),
|
|
@@ -43,8 +44,8 @@ describe('FEAAS component data', () => {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
if (url.includes('CDN')) {
|
|
46
|
-
await new Promise((resolve) => setTimeout(resolve, htmlDelay))
|
|
47
|
-
return new Response('
|
|
47
|
+
await new Promise((resolve) => setTimeout(resolve, htmlDelay * delayLength))
|
|
48
|
+
return new Response('<var data-path="text">Default</var>', {
|
|
48
49
|
headers: {
|
|
49
50
|
date: now.toUTCString(),
|
|
50
51
|
'last-modified': earlier.toUTCString()
|
|
@@ -53,36 +54,28 @@ describe('FEAAS component data', () => {
|
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
if (url === 'http://my-url') {
|
|
56
|
-
await new Promise((resolve) => setTimeout(resolve, dataDelay))
|
|
57
|
+
await new Promise((resolve) => setTimeout(resolve, dataDelay * delayLength))
|
|
57
58
|
return new Response(JSON.stringify({ text: 'My new text' }), {})
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
if (url === 'http://my-url2') {
|
|
61
|
-
await new Promise((resolve) => setTimeout(resolve, dataDelay))
|
|
62
|
+
await new Promise((resolve) => setTimeout(resolve, dataDelay * delayLength))
|
|
62
63
|
return new Response(JSON.stringify({ text: 'My new text2' }), {})
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
await new Promise((resolve) => setTimeout(resolve, htmlDelay))
|
|
66
|
-
return new Response('C', {
|
|
67
|
-
headers: {
|
|
68
|
-
date: now.toUTCString(),
|
|
69
|
-
'last-modified': earlier.toUTCString()
|
|
70
|
-
}
|
|
71
|
-
})
|
|
72
65
|
})
|
|
73
66
|
}
|
|
74
67
|
|
|
75
68
|
describe('Should render component using stale cache, no data initially, then data as object', async () => {
|
|
76
69
|
const runWithDelay = async (delays: number[]) => {
|
|
77
|
-
const spy =
|
|
78
|
-
document.body.innerHTML = `<feaas-component
|
|
70
|
+
const spy = freshRequestSpy(delays[0], delays[1], delays[2])
|
|
71
|
+
document.body.innerHTML = `<feaas-component library="L" cdn="CDN" component="C" version="V" revision="R"></feaas-component>`
|
|
79
72
|
const component = document.body.firstElementChild as FEAASComponent
|
|
80
73
|
const updateCall = vi.spyOn(component, 'update')
|
|
81
74
|
await expect(component.whenDataReady).resolves.toEqual({})
|
|
82
75
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
83
76
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
84
77
|
expect(component.readyData).toEqual({})
|
|
85
|
-
expect(component.innerHTML).toEqual('
|
|
78
|
+
expect(component.innerHTML).toEqual('<var data-path="text">Default</var>')
|
|
86
79
|
expect(spy).toHaveBeenCalledTimes(2)
|
|
87
80
|
await checkRaceCondition([
|
|
88
81
|
{ promise: component.whenDataReady, name: 'when data ready' },
|
|
@@ -94,7 +87,7 @@ describe('FEAAS component data', () => {
|
|
|
94
87
|
await expect(component.whenDataReady).resolves.toEqual({ text: 'this is text' })
|
|
95
88
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
96
89
|
expect(updateCall).toHaveBeenCalledTimes(2)
|
|
97
|
-
expect(component.innerHTML).toEqual('this is text')
|
|
90
|
+
expect(component.innerHTML).toEqual('<var data-path="text">this is text</var>')
|
|
98
91
|
expect(component.readyData).toEqual({ text: 'this is text' })
|
|
99
92
|
expect(spy).toHaveBeenCalledTimes(2)
|
|
100
93
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
@@ -103,27 +96,32 @@ describe('FEAAS component data', () => {
|
|
|
103
96
|
{ promise: component.whenRendered, name: 'when rendered' },
|
|
104
97
|
{ promise: component.whenLoaded, name: 'when loaded' }
|
|
105
98
|
])
|
|
99
|
+
component.set({ data: { text: 'this is updated text' } })
|
|
100
|
+
await expect(component.whenDataReady).resolves.toEqual({ text: 'this is updated text' })
|
|
101
|
+
await expect(component.whenRendered).resolves.toEqual(component)
|
|
102
|
+
expect(updateCall).toHaveBeenCalledTimes(3)
|
|
103
|
+
expect(component.innerHTML).toEqual('<var data-path="text">this is updated text</var>')
|
|
106
104
|
}
|
|
107
105
|
|
|
108
|
-
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([
|
|
109
|
-
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([
|
|
110
|
-
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([
|
|
111
|
-
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([
|
|
112
|
-
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([
|
|
113
|
-
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([
|
|
106
|
+
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([1, 2, 3]))
|
|
107
|
+
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([1, 3, 2]))
|
|
108
|
+
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([2, 1, 3]))
|
|
109
|
+
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([2, 3, 1]))
|
|
110
|
+
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([3, 1, 2]))
|
|
111
|
+
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([3, 2, 1]))
|
|
114
112
|
})
|
|
115
113
|
|
|
116
114
|
describe('Should render component using stale cache and data as object first, then settings', () => {
|
|
117
115
|
const runWithDelay = async (delays: number[]) => {
|
|
118
|
-
const spy =
|
|
119
|
-
document.body.innerHTML = `<feaas-component data='{"text": "this is text"}'
|
|
116
|
+
const spy = freshRequestSpy(delays[0], delays[1], delays[2])
|
|
117
|
+
document.body.innerHTML = `<feaas-component data='{"text": "this is text"}' library="L" cdn="CDN" component="C" version="V" revision="R"></feaas-component>`
|
|
120
118
|
const component = document.body.firstElementChild as FEAASComponent
|
|
121
119
|
const updateCall = vi.spyOn(component, 'update')
|
|
122
120
|
await expect(component.whenDataReady).resolves.toEqual({ text: 'this is text' })
|
|
123
121
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
124
122
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
125
123
|
expect(component.readyData).toEqual({ text: 'this is text' })
|
|
126
|
-
expect(component.innerHTML).toEqual('this is text')
|
|
124
|
+
expect(component.innerHTML).toEqual('<var data-path="text">this is text</var>')
|
|
127
125
|
expect(spy).toHaveBeenCalledTimes(2)
|
|
128
126
|
await checkRaceCondition([
|
|
129
127
|
{ promise: component.whenDataReady, name: 'when data ready' },
|
|
@@ -135,7 +133,7 @@ describe('FEAAS component data', () => {
|
|
|
135
133
|
await expect(component.whenDataReady).resolves.toEqual({ text: 'My new text' })
|
|
136
134
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
137
135
|
expect(updateCall).toHaveBeenCalledTimes(2)
|
|
138
|
-
expect(component.innerHTML).toEqual('My new text')
|
|
136
|
+
expect(component.innerHTML).toEqual('<var data-path="text">My new text</var>')
|
|
139
137
|
expect(component.readyData).toEqual({ text: 'My new text' })
|
|
140
138
|
expect(spy).toHaveBeenCalledTimes(3)
|
|
141
139
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
@@ -146,25 +144,25 @@ describe('FEAAS component data', () => {
|
|
|
146
144
|
])
|
|
147
145
|
}
|
|
148
146
|
|
|
149
|
-
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([
|
|
150
|
-
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([
|
|
151
|
-
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([
|
|
152
|
-
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([
|
|
153
|
-
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([
|
|
154
|
-
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([
|
|
147
|
+
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([1, 2, 3]))
|
|
148
|
+
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([1, 3, 2]))
|
|
149
|
+
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([2, 1, 3]))
|
|
150
|
+
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([2, 3, 1]))
|
|
151
|
+
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([3, 1, 2]))
|
|
152
|
+
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([3, 2, 1]))
|
|
155
153
|
})
|
|
156
154
|
|
|
157
155
|
describe('Should render component using stale cache and data as settings', () => {
|
|
158
156
|
const runWithDelay = async (delays: number[]) => {
|
|
159
|
-
const spy =
|
|
160
|
-
document.body.innerHTML = `<feaas-component data='{ "jsonpath": "$", "url": "http://my-url" }'
|
|
157
|
+
const spy = freshRequestSpy(delays[0], delays[1], delays[2])
|
|
158
|
+
document.body.innerHTML = `<feaas-component data='{ "jsonpath": "$", "url": "http://my-url" }' library="L" cdn="CDN" component="C" version="V" revision="R"></feaas-component>`
|
|
161
159
|
const component = document.body.firstElementChild as FEAASComponent
|
|
162
160
|
const updateCall = vi.spyOn(component, 'update')
|
|
163
161
|
await expect(component.whenDataReady).resolves.toEqual({ text: 'My new text' })
|
|
164
162
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
165
163
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
166
164
|
expect(component.readyData).toEqual({ text: 'My new text' })
|
|
167
|
-
expect(component.innerHTML).toEqual('My new text')
|
|
165
|
+
expect(component.innerHTML).toEqual('<var data-path="text">My new text</var>')
|
|
168
166
|
expect(spy).toHaveBeenCalledTimes(3)
|
|
169
167
|
await checkRaceCondition([
|
|
170
168
|
{ promise: component.whenDataReady, name: 'when data ready' },
|
|
@@ -174,24 +172,30 @@ describe('FEAAS component data', () => {
|
|
|
174
172
|
expect(updateCall).toHaveBeenCalledTimes(1)
|
|
175
173
|
}
|
|
176
174
|
|
|
177
|
-
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([
|
|
178
|
-
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([
|
|
179
|
-
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([
|
|
180
|
-
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([
|
|
181
|
-
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([
|
|
182
|
-
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([
|
|
175
|
+
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([1, 2, 3]))
|
|
176
|
+
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([1, 3, 2]))
|
|
177
|
+
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([2, 1, 3]))
|
|
178
|
+
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([2, 3, 1]))
|
|
179
|
+
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([3, 1, 2]))
|
|
180
|
+
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([3, 2, 1]))
|
|
183
181
|
})
|
|
184
182
|
|
|
185
183
|
describe('Should render component using stale cache and data as mapping', () => {
|
|
186
184
|
const runWithDelay = async (delays: number[]) => {
|
|
187
|
-
const spy =
|
|
185
|
+
const spy = freshRequestSpy(delays[0], delays[1], delays[2])
|
|
188
186
|
document.body.innerHTML = `<feaas-component data='{ "datasource-1": {"jsonpath": "$", "url": "http://my-url"}, "datasource-2": {"jsonpath": "$", "url": "http://my-url2"} }' data-path="datasource-2.text" library="L" cdn="CDN" component="C" version="V" revision="R"></feaas-component>`
|
|
189
187
|
const component = document.body.firstElementChild as FEAASComponent
|
|
190
188
|
const updateCall = vi.spyOn(component, 'update')
|
|
191
|
-
await expect(component.whenDataReady).resolves.toEqual({
|
|
189
|
+
await expect(component.whenDataReady).resolves.toEqual({
|
|
190
|
+
'datasource-1': { text: 'My new text' },
|
|
191
|
+
'datasource-2': { text: 'My new text2' }
|
|
192
|
+
})
|
|
192
193
|
await expect(component.whenRendered).resolves.toEqual(component)
|
|
193
194
|
await expect(component.whenLoaded).resolves.toBeTruthy()
|
|
194
|
-
expect(component.readyData).toEqual({
|
|
195
|
+
expect(component.readyData).toEqual({
|
|
196
|
+
'datasource-1': { text: 'My new text' },
|
|
197
|
+
'datasource-2': { text: 'My new text2' }
|
|
198
|
+
})
|
|
195
199
|
expect(component.innerHTML).toEqual('My new text2')
|
|
196
200
|
expect(spy).toHaveBeenCalledTimes(4)
|
|
197
201
|
await checkRaceCondition([
|
|
@@ -202,12 +206,12 @@ describe('FEAAS component data', () => {
|
|
|
202
206
|
expect(updateCall).toHaveBeenCalledTimes(1)
|
|
203
207
|
}
|
|
204
208
|
|
|
205
|
-
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([
|
|
206
|
-
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([
|
|
207
|
-
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([
|
|
208
|
-
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([
|
|
209
|
-
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([
|
|
210
|
-
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([
|
|
209
|
+
it('DATA -> HTML -> STYLESHEET', async () => await runWithDelay([1, 2, 3]))
|
|
210
|
+
it('DATA -> STYLESHEET -> HTML', async () => await runWithDelay([1, 3, 2]))
|
|
211
|
+
it('HTML -> DATA -> STYLESHEET', async () => await runWithDelay([2, 1, 3]))
|
|
212
|
+
it('STYLESHEET -> DATA -> HTML', async () => await runWithDelay([2, 3, 1]))
|
|
213
|
+
it('HTML -> STYLESHEET -> DATA', async () => await runWithDelay([3, 1, 2]))
|
|
214
|
+
it('STYLESHEET -> HTML -> DATA', async () => await runWithDelay([3, 2, 1]))
|
|
211
215
|
})
|
|
212
216
|
|
|
213
217
|
// TODO
|
|
@@ -2,7 +2,7 @@ import React from 'react'
|
|
|
2
2
|
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
3
|
import { ServerComponent } from '../src/ui/react.js'
|
|
4
4
|
import { FEAASComponent } from '../src/components/FEAASComponent.js'
|
|
5
|
-
import {test} from './FEAASComponent.react.test.js'
|
|
5
|
+
import { test } from './FEAASComponent.react.test.js'
|
|
6
6
|
|
|
7
7
|
const earliest = new Date(2000, 1, 1, 0, 0, 0)
|
|
8
8
|
const earlier = new Date(2000, 1, 2, 0, 0, 0)
|
|
@@ -23,7 +23,7 @@ describe('React Server', () => {
|
|
|
23
23
|
async (url: string, options: Parameters<typeof fetch>[1] = {}) => new Response('{"data": "1"}')
|
|
24
24
|
)
|
|
25
25
|
|
|
26
|
-
const Component = await ServerComponent({ src: 'library/test', data: { url: 'http://
|
|
26
|
+
const Component = await ServerComponent({ src: 'library/test', data: { url: 'http://127.0.0.1:4000/api/data' } })
|
|
27
27
|
|
|
28
28
|
await test(
|
|
29
29
|
<>{Component}</>,
|
package/test/cdn.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parseStylesheetSource,
|
|
8
8
|
getStylesheetURL
|
|
9
9
|
} from '../src/cdn.js'
|
|
10
|
-
import { CH1Node, serializeCH1RichText } from '../src/
|
|
10
|
+
import { CH1Node, serializeCH1RichText } from '../src/utils/data.js'
|
|
11
11
|
describe('CDN', function () {
|
|
12
12
|
it('should parse and serialize component src', function () {
|
|
13
13
|
;[
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { vi, describe, it, expect } from 'vitest'
|
|
2
|
+
import { DataSettings } from '../src/utils/settings.js'
|
|
3
|
+
|
|
4
|
+
describe('DataSettings', () => {
|
|
5
|
+
describe('.clean', () => {
|
|
6
|
+
it('should clean', () => {
|
|
7
|
+
expect(
|
|
8
|
+
DataSettings.clean({
|
|
9
|
+
url: 'http://url',
|
|
10
|
+
method: 'post',
|
|
11
|
+
params: { first: '1' },
|
|
12
|
+
headers: { 'Content-type': 'multipart/form-data' },
|
|
13
|
+
body: { key: 'value' }
|
|
14
|
+
})
|
|
15
|
+
).to.eql({
|
|
16
|
+
url: 'http://url',
|
|
17
|
+
method: 'POST',
|
|
18
|
+
params: { first: '1' },
|
|
19
|
+
headers: { 'Content-Type': 'multipart/form-data' },
|
|
20
|
+
body: { key: 'value' }
|
|
21
|
+
})
|
|
22
|
+
expect(DataSettings.clean({})).to.eql({ url: '' })
|
|
23
|
+
expect(
|
|
24
|
+
DataSettings.clean({
|
|
25
|
+
headers: {
|
|
26
|
+
accept: 'a-z'
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
).to.eql({
|
|
30
|
+
url: '',
|
|
31
|
+
headers: {
|
|
32
|
+
Accept: 'a-z'
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
describe('.toFetchArguments', () => {
|
|
38
|
+
it('with no settings', () => {
|
|
39
|
+
const fetchArgs = DataSettings.toFetchArguments()
|
|
40
|
+
|
|
41
|
+
expect(fetchArgs).toEqual([
|
|
42
|
+
'',
|
|
43
|
+
{
|
|
44
|
+
body: undefined,
|
|
45
|
+
headers: { Accept: 'application/json' },
|
|
46
|
+
method: 'GET'
|
|
47
|
+
}
|
|
48
|
+
])
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
it('with url, params and post', () => {
|
|
52
|
+
const fetchArgs = DataSettings.toFetchArguments({ url: 'http://url', method: 'post', params: { first: '1' } })
|
|
53
|
+
|
|
54
|
+
expect(fetchArgs).toEqual([
|
|
55
|
+
'http://url?first=1',
|
|
56
|
+
{ method: 'POST', body: undefined, headers: { Accept: 'application/json' } }
|
|
57
|
+
])
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('with url, params and post, body and headers application/json', () => {
|
|
61
|
+
const fetchArgs = DataSettings.toFetchArguments({
|
|
62
|
+
url: 'http://url',
|
|
63
|
+
method: 'Post',
|
|
64
|
+
params: { first: '1' },
|
|
65
|
+
headers: { 'content-type': 'application/json', accept: 'abc' },
|
|
66
|
+
body: { key: 'value' }
|
|
67
|
+
})
|
|
68
|
+
|
|
69
|
+
expect(fetchArgs).toEqual([
|
|
70
|
+
'http://url?first=1',
|
|
71
|
+
{
|
|
72
|
+
method: 'POST',
|
|
73
|
+
headers: { 'Content-Type': 'application/json', Accept: 'abc' },
|
|
74
|
+
body: '{"key":"value"}'
|
|
75
|
+
}
|
|
76
|
+
])
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
it('with url, params and post, body and headers multipart-form-data', () => {
|
|
80
|
+
const fetchArgs = DataSettings.toFetchArguments({
|
|
81
|
+
url: 'http://url',
|
|
82
|
+
method: 'post',
|
|
83
|
+
params: { first: '1' },
|
|
84
|
+
headers: { 'Content-type': 'multipart/form-data' },
|
|
85
|
+
body: { key: 'value' }
|
|
86
|
+
})
|
|
87
|
+
|
|
88
|
+
const form = new FormData()
|
|
89
|
+
|
|
90
|
+
form.append('key', 'value')
|
|
91
|
+
|
|
92
|
+
expect(fetchArgs).toEqual([
|
|
93
|
+
'http://url?first=1',
|
|
94
|
+
{
|
|
95
|
+
method: 'POST',
|
|
96
|
+
headers: { Accept: 'application/json', 'Content-Type': 'multipart/form-data' },
|
|
97
|
+
body: form
|
|
98
|
+
}
|
|
99
|
+
])
|
|
100
|
+
})
|
|
101
|
+
|
|
102
|
+
it('with url, params and post, body and headers url params', () => {
|
|
103
|
+
const fetchArgs = DataSettings.toFetchArguments({
|
|
104
|
+
url: 'http://url',
|
|
105
|
+
method: 'post',
|
|
106
|
+
params: { first: '1', second: '2' },
|
|
107
|
+
headers: { 'Content-type': 'application/x-www-form-urlencoded' },
|
|
108
|
+
body: { key: 'value' }
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
expect(fetchArgs).toEqual([
|
|
112
|
+
'http://url?first=1&second=2',
|
|
113
|
+
{
|
|
114
|
+
method: 'POST',
|
|
115
|
+
headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
116
|
+
body: new URLSearchParams({ key: 'value' })
|
|
117
|
+
}
|
|
118
|
+
])
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
describe('.fetch', () => {
|
|
122
|
+
it('fetches when passed data object', async () => {
|
|
123
|
+
const result = await DataSettings.fetch({ hello: 'world' })
|
|
124
|
+
|
|
125
|
+
expect(result).toEqual({ hello: 'world' })
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
it('fetches when passed settings object', async () => {
|
|
129
|
+
const spy = vi.spyOn(global, 'fetch')
|
|
130
|
+
spy.mockImplementation(
|
|
131
|
+
async (url: string, options?: Parameters<typeof fetch>[1]) =>
|
|
132
|
+
new Response(JSON.stringify({ data: 'My data' }), {})
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
const result = await DataSettings.fetch({ jsonpath: '$', url: 'http://my-url' })
|
|
136
|
+
|
|
137
|
+
expect(result).toEqual({ data: 'My data' })
|
|
138
|
+
|
|
139
|
+
expect(spy).toHaveBeenCalledOnce()
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
it('fetches when passed mapping object', async () => {
|
|
143
|
+
const spy = vi.spyOn(global, 'fetch')
|
|
144
|
+
spy.mockImplementation(async (url: string, options?: Parameters<typeof fetch>[1]) => {
|
|
145
|
+
if (url === 'http://my-url1') return new Response(JSON.stringify({ data: 'My data1' }), {})
|
|
146
|
+
if (url === 'http://my-url2') return new Response(JSON.stringify({ data: 'My data2' }), {})
|
|
147
|
+
throw new Error('Fetch failed')
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
const inputData = {
|
|
151
|
+
datasourceId1: { jsonpath: '$', url: 'http://my-url1' },
|
|
152
|
+
datasourceId2: { data: 'This is plain data' },
|
|
153
|
+
datasourceId3: { jsonpath: '$', url: 'http://my-url2' },
|
|
154
|
+
datasourceId4: { jsonpath: '$', url: 'http://bad-url' }
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const result = await DataSettings.fetch(inputData)
|
|
158
|
+
|
|
159
|
+
expect(result).to.have.property('datasourceId1')
|
|
160
|
+
expect((result as Record<keyof typeof inputData, any>).datasourceId1).toEqual({ data: 'My data1' })
|
|
161
|
+
|
|
162
|
+
expect(result).to.have.property('datasourceId2')
|
|
163
|
+
expect((result as Record<keyof typeof inputData, any>).datasourceId2).toEqual({ data: 'This is plain data' })
|
|
164
|
+
|
|
165
|
+
expect(result).to.have.property('datasourceId3')
|
|
166
|
+
expect((result as Record<keyof typeof inputData, any>).datasourceId3).toEqual({ data: 'My data2' })
|
|
167
|
+
|
|
168
|
+
expect(result).to.have.property('datasourceId4')
|
|
169
|
+
expect((result as Record<keyof typeof inputData, any>).datasourceId4).toEqual({})
|
|
170
|
+
|
|
171
|
+
expect(spy).toHaveBeenCalledTimes(3)
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
it('should serialize body', async () => {
|
|
175
|
+
const spy = vi.spyOn(global, 'fetch')
|
|
176
|
+
spy.mockImplementation(async (url: string, options?: Parameters<typeof fetch>[1]) => {
|
|
177
|
+
return new Response(JSON.stringify(options), {})
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
const inputData = {
|
|
181
|
+
datasourceId1: {
|
|
182
|
+
url: 'http://my-url1',
|
|
183
|
+
headers: { 'content-type': 'application/json' },
|
|
184
|
+
body: { a: 1 },
|
|
185
|
+
method: 'put'
|
|
186
|
+
},
|
|
187
|
+
datasourceId2: {
|
|
188
|
+
url: 'http://my-url2',
|
|
189
|
+
headers: { 'content-type': 'multipart/form-data' },
|
|
190
|
+
body: { a: 1 },
|
|
191
|
+
method: 'post'
|
|
192
|
+
},
|
|
193
|
+
datasourceId3: {
|
|
194
|
+
url: 'http://my-url3',
|
|
195
|
+
headers: { 'Content-type': 'application/x-www-form-urlencoded' },
|
|
196
|
+
body: { a: 1 },
|
|
197
|
+
method: 'patch'
|
|
198
|
+
},
|
|
199
|
+
datasourceId4: {
|
|
200
|
+
url: 'http://my-url4',
|
|
201
|
+
body: { a: 1 }
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
const result = await DataSettings.fetch(inputData)
|
|
206
|
+
|
|
207
|
+
expect(spy).toHaveBeenNthCalledWith(1, 'http://my-url1', {
|
|
208
|
+
headers: {
|
|
209
|
+
Accept: 'application/json',
|
|
210
|
+
'Content-Type': 'application/json'
|
|
211
|
+
},
|
|
212
|
+
body: '{"a":1}',
|
|
213
|
+
method: 'put'
|
|
214
|
+
})
|
|
215
|
+
expect(spy).toHaveBeenNthCalledWith(2, 'http://my-url2', {
|
|
216
|
+
headers: {
|
|
217
|
+
Accept: 'application/json',
|
|
218
|
+
'Content-Type': 'multipart/form-data'
|
|
219
|
+
},
|
|
220
|
+
body: (() => {
|
|
221
|
+
const f = new FormData()
|
|
222
|
+
f.append('a', '1')
|
|
223
|
+
return f
|
|
224
|
+
})(),
|
|
225
|
+
method: 'post'
|
|
226
|
+
})
|
|
227
|
+
expect(spy).toHaveBeenNthCalledWith(3, 'http://my-url3', {
|
|
228
|
+
headers: {
|
|
229
|
+
Accept: 'application/json',
|
|
230
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
231
|
+
},
|
|
232
|
+
body: (() => {
|
|
233
|
+
const f = new URLSearchParams()
|
|
234
|
+
f.append('a', '1')
|
|
235
|
+
return f
|
|
236
|
+
})(),
|
|
237
|
+
method: 'patch'
|
|
238
|
+
})
|
|
239
|
+
expect(spy).toHaveBeenNthCalledWith(4, 'http://my-url4', {
|
|
240
|
+
body: undefined,
|
|
241
|
+
headers: {
|
|
242
|
+
Accept: 'application/json'
|
|
243
|
+
},
|
|
244
|
+
method: 'get'
|
|
245
|
+
})
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, it, assert, beforeAll, expect } from 'vitest'
|
|
2
|
-
import { CH1Node, serializeCH1RichText } from '../src/
|
|
2
|
+
import { CH1Node, serializeCH1RichText } from '../src/utils/data.js'
|
|
3
3
|
describe('Extras', function () {
|
|
4
4
|
it('should serialize content hub', function () {
|
|
5
5
|
const data: CH1Node = {
|
package/test/fetch.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { vi, describe, it, assert, beforeAll, expect, beforeEach } from 'vitest'
|
|
2
|
-
import { CH1Node, serializeCH1RichText } from '../src/
|
|
2
|
+
import { CH1Node, serializeCH1RichText } from '../src/utils/data.js'
|
|
3
3
|
import { clearFetchCache, fetchAndRevalidate } from '../src/fetch.js'
|
|
4
4
|
const yesterday = new Date(2000, 1, 1, 0, 0, 0)
|
|
5
5
|
const yesterdayNoon = new Date(2000, 1, 2, 12, 0, 0)
|
|
@@ -113,7 +113,7 @@ describe('Fetch', () => {
|
|
|
113
113
|
})
|
|
114
114
|
} else {
|
|
115
115
|
return new Response('A', {
|
|
116
|
-
headers: {
|
|
116
|
+
headers: {
|
|
117
117
|
date: yesterday.toUTCString()
|
|
118
118
|
}
|
|
119
119
|
})
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ControlledPromise } from '../utils/promise.js';
|
|
2
|
+
import { DataOptions } from '../utils/settings.js';
|
|
2
3
|
import { FEAASElement } from './FEAASElement.js';
|
|
3
4
|
export declare function FEAASComponentsProps(element: FEAASElement): {
|
|
4
|
-
data:
|
|
5
|
+
data: DataOptions;
|
|
5
6
|
cdn: string;
|
|
6
7
|
library: string;
|
|
7
8
|
component: string;
|
|
@@ -45,7 +46,7 @@ export declare class FEAASComponent extends FEAASElement<FEAASComponentsProps, s
|
|
|
45
46
|
whenDataReady: ControlledPromise<any>;
|
|
46
47
|
static observedAttributes: string[];
|
|
47
48
|
defaultProps: Partial<{
|
|
48
|
-
data:
|
|
49
|
+
data: DataOptions;
|
|
49
50
|
cdn: string;
|
|
50
51
|
library: string;
|
|
51
52
|
component: string;
|
|
@@ -60,9 +61,9 @@ export declare class FEAASComponent extends FEAASElement<FEAASComponentsProps, s
|
|
|
60
61
|
withStylesheet: boolean;
|
|
61
62
|
}>;
|
|
62
63
|
needsRefresh: boolean;
|
|
63
|
-
setData(data:
|
|
64
|
+
setData(data: DataOptions): void;
|
|
64
65
|
getProps(): {
|
|
65
|
-
data:
|
|
66
|
+
data: DataOptions;
|
|
66
67
|
cdn: string;
|
|
67
68
|
library: string;
|
|
68
69
|
component: string;
|
|
@@ -76,6 +77,7 @@ export declare class FEAASComponent extends FEAASElement<FEAASComponentsProps, s
|
|
|
76
77
|
lastModified: string;
|
|
77
78
|
withStylesheet: boolean;
|
|
78
79
|
};
|
|
80
|
+
isJSONAttribute(prop: keyof FEAASComponentsProps): boolean;
|
|
79
81
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
80
82
|
fetchData(): Promise<void>;
|
|
81
83
|
getEditor(): any;
|
|
@@ -94,6 +96,7 @@ declare global {
|
|
|
94
96
|
interface IntrinsicElements {
|
|
95
97
|
'feaas-component': {
|
|
96
98
|
data?: any;
|
|
99
|
+
suppressHydrationWarning?: boolean;
|
|
97
100
|
template?: string;
|
|
98
101
|
instance?: string;
|
|
99
102
|
editable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY;;;;;;;;;;;;;;EAkCzD;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAC5E,SAAS,EAAE,GAAG,CAAK;IACnB,aAAa,yBAGZ;IAED,MAAM,CAAC,kBAAkB,WAYxB;IAED,YAAY;;;;;;;;;;;;;;OAQsB;IAElC,YAAY,EAAE,OAAO,CAAA;IAErB,OAAO,CAAC,IAAI,EAAE,WAAW;IAIzB,QAAQ;;;;;;;;;;;;;;;IAIR,eAAe,CAAC,IAAI,EAAE,MAAM,oBAAoB;IAIhD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAkB1E,SAAS;IAef,SAAS,IAAI,GAAG;;IAkBhB,IAAI;IASJ,WAAW;IAaX,aAAa;IAMb,MAAM,SAAU,MAAM,UAGrB;IAEK,IAAI;IAkCV,eAAe,EAAE,OAAO,CAAA;IAExB,KAAK;IAML,MAAM;CAaP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,iBAAiB,EAAE;gBACjB,IAAI,CAAC,EAAE,GAAG,CAAA;gBACV,wBAAwB,CAAC,EAAE,OAAO,CAAA;gBAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;gBACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;gBAClB,QAAQ,CAAC,EAAE,GAAG,CAAA;gBACd,uBAAuB,CAAC,EAAE;oBAAE,MAAM,EAAE,MAAM,CAAA;iBAAE,CAAA;gBAC5C,eAAe,CAAC,EAAE,MAAM,CAAA;gBACxB,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,EAAE,CAAA;aAC1C,GAAG,CACA;gBACE;;mBAEG;gBACH,QAAQ,CAAC,EAAE,MAAM,CAAA;gBACjB,GAAG,CAAC,EAAE,MAAM,CAAA;gBACZ,OAAO,EAAE,MAAM,CAAA;gBACf,SAAS,EAAE,MAAM,CAAA;gBACjB,OAAO,CAAC,EAAE,MAAM,CAAA;gBAChB,QAAQ,CAAC,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAA;aAC5C,GACD;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,GACf;gBAAE,QAAQ,EAAE,MAAM,CAAA;aAAE,CACvB,CAAA;SACF;KACF;CACF;AAGD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,oBAAoB,IAAI,cAAc,EAAE,CAAA"}
|
|
@@ -75,6 +75,7 @@ export declare class FEAASElement<Props = any, Payload = any> extends WebCompone
|
|
|
75
75
|
*/
|
|
76
76
|
mount(): void;
|
|
77
77
|
dispatchEventIndirectly(event: Event): void;
|
|
78
|
+
isJSONAttribute(attribute: keyof Props): boolean;
|
|
78
79
|
log(...args: any): void;
|
|
79
80
|
/** Nothing special happens on unmount, except setting a flag */
|
|
80
81
|
unmount(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASElement.d.ts","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FEAASElement.d.ts","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"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"}
|
package/types/dom/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DataScopes } from '../utils/settings.js';
|
|
2
2
|
import { FEAASComponentProps } from './rendering.js';
|
|
3
|
-
export declare function renderComponentElement(content: string, datasources?:
|
|
3
|
+
export declare function renderComponentElement(content: string, datasources?: DataScopes): HTMLDivElement;
|
|
4
4
|
export declare function renderComponent(props: FEAASComponentProps, root?: HTMLElement): HTMLElement;
|
|
5
5
|
export declare function renderComponentPromise(props: FEAASComponentProps, root?: HTMLElement): Promise<HTMLElement>;
|
|
6
6
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/dom/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/dom/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAsC,MAAM,gBAAgB,CAAA;AAExF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,kBAS/E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,WAAW,eAG7E;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,WAAW,wBAc1F"}
|