@sitecore-feaas/clientside 0.1.34 → 0.1.35
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/cdn.js +17 -4
- package/build/cdn.js.map +1 -1
- package/build/components/FEAASComponent.js +5 -2
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/fetch.js +1 -1
- package/build/fetch.js.map +1 -1
- package/dist/browser/headless.esm.js +5 -5
- package/dist/browser/headless.esm.js.map +1 -1
- package/dist/browser/index.esm.js +4 -4
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/index.js +4 -4
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/react.esm.js +5 -5
- package/dist/browser/react.esm.js.map +1 -1
- package/dist/node/headless.esm.js +3 -3
- package/dist/node/headless.esm.js.map +3 -3
- package/dist/node/index.esm.js +3 -3
- package/dist/node/index.esm.js.map +3 -3
- package/dist/node/index.js +3 -3
- package/dist/node/index.js.map +3 -3
- package/dist/node/react.esm.js +3 -3
- package/dist/node/react.esm.js.map +3 -3
- package/headless.d.ts +1 -0
- package/package.json +2 -2
- package/react.d.ts +1 -0
- package/scripts/build.js +5 -1
- package/src/cdn.ts +19 -6
- package/src/components/FEAASComponent.tsx +21 -7
- package/src/fetch.ts +2 -2
- package/src/ui/react.tsx +12 -2
- package/test/FEAASComponent.react.test.tsx +44 -0
- package/test/FEAASComponent.test.tsx +4 -4
- package/test/cdn.ts +53 -1
- package/types/cdn.d.ts +2 -2
- package/types/cdn.d.ts.map +1 -1
- package/types/components/FEAASComponent.d.ts +17 -5
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/fetch.d.ts +3 -3
- package/types/fetch.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/tsbuildinfo_ui +1 -1
- package/types/ui/react.d.ts.map +1 -1
- package/build/headless.js +0 -23
- package/build/headless.js.map +0 -1
- package/build/ui/react.js +0 -7
- package/build/ui/react.js.map +0 -1
- package/dist/browser/headless.js +0 -69
- package/dist/browser/headless.js.map +0 -1
- package/dist/browser/react.js +0 -69
- package/dist/browser/react.js.map +0 -1
- package/dist/node/headless.js +0 -67
- package/dist/node/headless.js.map +0 -7
- package/dist/node/react.js +0 -67
- package/dist/node/react.js.map +0 -7
package/headless.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types/headless'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-feaas/clientside",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.35",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "webpack serve --open",
|
|
6
6
|
"build": "rm -rf dist;npm run types; npm run build:esbuild; npm run build:sourcemaps",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"./react": {
|
|
46
46
|
"localhost": "./build/react.js",
|
|
47
47
|
"development": "./build/react.js",
|
|
48
|
-
"types": "./types/react.d.ts",
|
|
48
|
+
"types": "./types/ui/react.d.ts",
|
|
49
49
|
"typescript": "./build/react.js",
|
|
50
50
|
"browser": "./dist/browser/react.esm.js",
|
|
51
51
|
"import": "./dist/node/react.esm.js",
|
package/react.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types/ui/react'
|
package/scripts/build.js
CHANGED
|
@@ -83,7 +83,11 @@ function compile({ input, output, ...step }) {
|
|
|
83
83
|
{ input: 'build/ui/react.js', output: 'dist/browser/react.js', platform: 'browser', format: 'cjs' },
|
|
84
84
|
{ input: 'build/ui/react.js', output: 'dist/browser/react.esm.js', platform: 'browser', format: 'esm' },
|
|
85
85
|
{ input: 'build/headless.js', output: 'dist/browser/headless.js', platform: 'browser', format: 'cjs' },
|
|
86
|
-
{ input: 'build/headless.js', output: 'dist/browser/headless.esm.js', platform: 'browser', format: 'esm' }
|
|
86
|
+
{ input: 'build/headless.js', output: 'dist/browser/headless.esm.js', platform: 'browser', format: 'esm' },
|
|
87
|
+
|
|
88
|
+
// backward compatability with pre-export maps
|
|
89
|
+
{ input: 'build/ui/react.js', output: 'react.js', platform: 'browser', format: 'cjs' },
|
|
90
|
+
{ input: 'build/headless.js', output: 'headless.js', platform: 'node', format: 'cjs' }
|
|
87
91
|
].map((step) => {
|
|
88
92
|
return compile(step)
|
|
89
93
|
})
|
package/src/cdn.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ValidatableRequestPhase
|
|
7
7
|
} from './fetch.js'
|
|
8
8
|
|
|
9
|
-
export const DEFAULT_CDN_URL = `https://
|
|
9
|
+
export const DEFAULT_CDN_URL = `https://feaas.blob.core.windows.net`
|
|
10
10
|
export type FEAASCDNComponentParams = {
|
|
11
11
|
cdn?: string
|
|
12
12
|
revision?: 'staging' | 'published' | 'saved' | number
|
|
@@ -41,7 +41,9 @@ export type FEAASCDNStylesheetSource = {
|
|
|
41
41
|
export type FEAASCDNStylesheetProps = FEAASCDNStylesheetParams | FEAASCDNStylesheetSource | string
|
|
42
42
|
|
|
43
43
|
export function parseComponentSource(source: string): FEAASCDNComponentParams {
|
|
44
|
-
const match = source.match(
|
|
44
|
+
const match = source.match(
|
|
45
|
+
/^(?:(.*?)\/components)?\/?([^\/]+)\/([^\/]+)(?:\/([^\/]+)(?:\/(published|staged|saved|\d+)(?:\.html?)?)?)?$/
|
|
46
|
+
)
|
|
45
47
|
if (match) {
|
|
46
48
|
var [, cdn, library, component, version, revision] = match
|
|
47
49
|
return { cdn, library, component, version, revision: revision as any }
|
|
@@ -63,19 +65,30 @@ export function getComponentSource(props: FEAASCDNComponentParams) {
|
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
export function getStylesheetSource(props: FEAASCDNStylesheetParams) {
|
|
66
|
-
return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/styles
|
|
67
|
-
props.revision == 'published' ? '' : props.revision
|
|
68
|
+
return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/styles/` : ''}${props.library}/${
|
|
69
|
+
!props.revision || props.revision == 'published' ? '' : props.revision
|
|
68
70
|
}`.replace(/\/$|\/\/(?!.+\/styles\/)/g, '')
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
export function parseStylesheetSource(source: string): FEAASCDNStylesheetParams {
|
|
72
|
-
const match = source.match(/^(?:(.*?)\/styles)
|
|
74
|
+
const match = source.match(/^(?:(.*?)\/styles\/)?([^\/]+)(?:\/(published|staged|saved|\d+)(?:.css)?)?$/)
|
|
73
75
|
if (match) {
|
|
74
76
|
var [, cdn, library, revision] = match
|
|
75
77
|
return { cdn, library, revision: revision as any }
|
|
78
|
+
// try parsing it as component url
|
|
79
|
+
} else {
|
|
80
|
+
const parsed = parseComponentSource(source) as Record<string, string>
|
|
81
|
+
if (parsed) {
|
|
82
|
+
var { cdn, library, revision } = parsed
|
|
83
|
+
if (revision?.match(/\d/)) revision = undefined
|
|
84
|
+
return { cdn, library, revision: revision as any }
|
|
85
|
+
}
|
|
76
86
|
}
|
|
77
87
|
}
|
|
78
|
-
export function getComponentURL(props: FEAASCDNComponentProps) {
|
|
88
|
+
export function getComponentURL(props: FEAASCDNComponentProps | string) {
|
|
89
|
+
if (typeof props == 'string') {
|
|
90
|
+
props = { src: props }
|
|
91
|
+
}
|
|
79
92
|
if ('src' in props) {
|
|
80
93
|
props = {
|
|
81
94
|
...parseComponentSource(props.src)
|
|
@@ -7,7 +7,9 @@ export function FEAASComponentsProps(element: FEAASBase = this) {
|
|
|
7
7
|
let data: any
|
|
8
8
|
const src = element.getAttribute('src')
|
|
9
9
|
if (src) {
|
|
10
|
-
|
|
10
|
+
const parsed = parseComponentSource(src)
|
|
11
|
+
if (!parsed) throw new Error(`Could not parse FEAAS Component source: ${src}`)
|
|
12
|
+
var { cdn, library, component, version, revision } = parsed
|
|
11
13
|
}
|
|
12
14
|
const dataValue = element.getAttribute('data')
|
|
13
15
|
if (dataValue != null && dataValue != '') {
|
|
@@ -160,18 +162,30 @@ export class FEAASComponent extends FEAASBase<FEAASComponentsProps, string> {
|
|
|
160
162
|
declare global {
|
|
161
163
|
namespace JSX {
|
|
162
164
|
interface IntrinsicElements {
|
|
163
|
-
'feaas-component':
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
'feaas-component': {
|
|
166
|
+
data?: any
|
|
167
|
+
template?: string
|
|
168
|
+
instance?: string
|
|
169
|
+
editable?: boolean
|
|
167
170
|
children?: any
|
|
168
171
|
dangerouslySetInnerHTML?: { __html: string }
|
|
169
172
|
'last-modified'?: string
|
|
170
173
|
'with-stylesheet'?: 'false' | 'true' | ''
|
|
171
|
-
}
|
|
174
|
+
} & (
|
|
175
|
+
| {
|
|
176
|
+
/** @deprecated Use cdn instead */
|
|
177
|
+
hostname?: string
|
|
178
|
+
cdn?: string
|
|
179
|
+
library: string
|
|
180
|
+
component: string
|
|
181
|
+
version?: string
|
|
182
|
+
revision?: FEAASComponentsProps['revision']
|
|
183
|
+
}
|
|
184
|
+
| { src: string }
|
|
185
|
+
)
|
|
172
186
|
}
|
|
173
187
|
}
|
|
174
188
|
}
|
|
175
189
|
FEAASComponent.register('feaas-component')
|
|
176
190
|
|
|
177
|
-
export { FEAASComponent as Component }
|
|
191
|
+
export { FEAASComponent as Component, FEAASComponentsProps as ComponentProps }
|
package/src/fetch.ts
CHANGED
|
@@ -19,7 +19,7 @@ export interface ValidatableRequest {
|
|
|
19
19
|
url: Parameters<typeof fetch>[0]
|
|
20
20
|
options?: Parameters<typeof fetch>[1]
|
|
21
21
|
validator?: (resposne: Response) => boolean
|
|
22
|
-
callback?: (response: Response, status: ValidatableRequestPhase) => any
|
|
22
|
+
callback?: (response: Response, status: ValidatableRequestPhase, isCached: boolean) => any
|
|
23
23
|
isCached?: boolean
|
|
24
24
|
response?: Response
|
|
25
25
|
cache?: FetchCache
|
|
@@ -93,7 +93,7 @@ export async function fetchWithCacheAwareness(
|
|
|
93
93
|
const isCached =
|
|
94
94
|
new Date(response.headers.get('date')) < date ||
|
|
95
95
|
(promise && phase == 'initial' && (cachedRequest.phase == 'updated' || cachedRequest.phase == 'check'))
|
|
96
|
-
await callback?.(response, phase)
|
|
96
|
+
await callback?.(response, phase, isCached)
|
|
97
97
|
return {
|
|
98
98
|
url,
|
|
99
99
|
options,
|
package/src/ui/react.tsx
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
export * from './index.js'
|
|
2
|
-
import { FEAASComponentProps } from './index.js'
|
|
2
|
+
import { FEAASComponentProps, renderHTMLContent } from './index.js'
|
|
3
3
|
import React from 'react'
|
|
4
4
|
|
|
5
5
|
export function FEAASEmbed({ data, ...props }: FEAASComponentProps & { src: string }) {
|
|
6
|
-
|
|
6
|
+
if ('template' in props) {
|
|
7
|
+
var html = renderHTMLContent(props.template, data || {})
|
|
8
|
+
}
|
|
9
|
+
return (
|
|
10
|
+
<feaas-component
|
|
11
|
+
{...props}
|
|
12
|
+
template={null}
|
|
13
|
+
data={data ? JSON.stringify(data) : null}
|
|
14
|
+
dangerouslySetInnerHTML={{ __html: html || '' }}
|
|
15
|
+
/>
|
|
16
|
+
)
|
|
7
17
|
}
|
|
8
18
|
export const Component = FEAASEmbed
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { beforeEach, afterAll, beforeAll, describe, expect, it, vi } from 'vitest'
|
|
2
|
+
import { FEAASComponent } from '../src/components/FEAASComponent.js'
|
|
3
|
+
import { renderDOMContent } from '../src/dom/rendering.js'
|
|
4
|
+
import { clearFetchCache } from '../src/fetch.js'
|
|
5
|
+
import { Component } from '../src/ui/react.js'
|
|
6
|
+
import ReactDOM from 'react-dom'
|
|
7
|
+
import React from 'react'
|
|
8
|
+
|
|
9
|
+
describe('React', () => {
|
|
10
|
+
it('render react component', () => {
|
|
11
|
+
const div = document.createElement('div')
|
|
12
|
+
const root = ReactDOM.render(
|
|
13
|
+
<section>
|
|
14
|
+
<Component src='library/test'></Component>
|
|
15
|
+
</section>,
|
|
16
|
+
div
|
|
17
|
+
)
|
|
18
|
+
expect(div.innerHTML).toEqual('<section><feaas-component src="library/test"></feaas-component></section>')
|
|
19
|
+
})
|
|
20
|
+
it('render react template', () => {
|
|
21
|
+
const div = document.createElement('div')
|
|
22
|
+
const root = ReactDOM.render(
|
|
23
|
+
<section>
|
|
24
|
+
<Component src='library/test' template={'<div data-path-src="abc">'}></Component>
|
|
25
|
+
</section>,
|
|
26
|
+
div
|
|
27
|
+
)
|
|
28
|
+
expect(div.innerHTML).toEqual(
|
|
29
|
+
'<section><feaas-component src="library/test"><div data-path-src="abc"></div></feaas-component></section>'
|
|
30
|
+
)
|
|
31
|
+
})
|
|
32
|
+
it('render template with data', () => {
|
|
33
|
+
const div = document.createElement('div')
|
|
34
|
+
const root = ReactDOM.render(
|
|
35
|
+
<section>
|
|
36
|
+
<Component src='library/test' template={'<div data-path-src="abc">'} data={{ abc: 321 }}></Component>
|
|
37
|
+
</section>,
|
|
38
|
+
div
|
|
39
|
+
)
|
|
40
|
+
expect(div.innerHTML).toEqual(
|
|
41
|
+
'<section><feaas-component src="library/test" data="{"abc":321}" library="library" component="test"><div data-path-src="abc"></div></feaas-component></section>'
|
|
42
|
+
)
|
|
43
|
+
})
|
|
44
|
+
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
2
2
|
import { FEAASComponent } from '../src/components/FEAASComponent.js'
|
|
3
3
|
import { renderDOMContent } from '../src/dom/rendering.js'
|
|
4
4
|
import { clearFetchCache } from '../src/fetch.js'
|
|
@@ -46,7 +46,7 @@ describe('Components', () => {
|
|
|
46
46
|
it('should load component using src attribute shorthand', async () => {
|
|
47
47
|
const spy = vi.spyOn(global, 'fetch')
|
|
48
48
|
spy.mockImplementation(async (url: string, options: Parameters<typeof fetch>[1] = {}) => {
|
|
49
|
-
if (url.match('http://a/components/b/c/d/
|
|
49
|
+
if (url.match('http://a/components/b/c/d/1.html')) {
|
|
50
50
|
return new Response('TODAY', {
|
|
51
51
|
headers: {
|
|
52
52
|
date: now.toUTCString(),
|
|
@@ -58,7 +58,7 @@ describe('Components', () => {
|
|
|
58
58
|
|
|
59
59
|
// Fixme change to production component
|
|
60
60
|
document.body.innerHTML =
|
|
61
|
-
'<feaas-component with-stylesheet="false" src="http://a/components/b/c/d/
|
|
61
|
+
'<feaas-component with-stylesheet="false" src="http://a/components/b/c/d/1.html"></feaas-component>'
|
|
62
62
|
|
|
63
63
|
const component = document.body.firstElementChild as FEAASComponent
|
|
64
64
|
|
|
@@ -66,7 +66,7 @@ describe('Components', () => {
|
|
|
66
66
|
expect(spy).toHaveBeenCalledTimes(1)
|
|
67
67
|
|
|
68
68
|
expect(component.outerHTML).toBe(
|
|
69
|
-
`<feaas-component with-stylesheet="false" src="http://a/components/b/c/d/
|
|
69
|
+
`<feaas-component with-stylesheet="false" src="http://a/components/b/c/d/1.html" cdn="http://a" library="b" component="c" version="d" revision="1" class="-feaas">TODAY</feaas-component>`
|
|
70
70
|
)
|
|
71
71
|
})
|
|
72
72
|
|
package/test/cdn.ts
CHANGED
|
@@ -22,9 +22,14 @@ describe('CDN', function () {
|
|
|
22
22
|
].forEach((expression) => {
|
|
23
23
|
expect(getComponentSource(parseComponentSource(expression))).toEqual(expression)
|
|
24
24
|
})
|
|
25
|
-
expect(getComponentSource(parseComponentSource('library/component/version/
|
|
25
|
+
expect(getComponentSource(parseComponentSource('library/component/version/12.html'))).toEqual(
|
|
26
|
+
'library/component/version/12'
|
|
27
|
+
)
|
|
28
|
+
expect(getComponentSource(parseComponentSource('library/component/version/1'))).toEqual(
|
|
26
29
|
'library/component/version/1'
|
|
27
30
|
)
|
|
31
|
+
expect(parseComponentSource('library/component/version/z.html')).toEqual(undefined)
|
|
32
|
+
expect(parseComponentSource('library/component/version/z')).toEqual(undefined)
|
|
28
33
|
expect(
|
|
29
34
|
parseComponentSource('https://feaaslocal.blob.core.windows.net/components/library/component/version/1.html')
|
|
30
35
|
).toEqual({
|
|
@@ -34,6 +39,13 @@ describe('CDN', function () {
|
|
|
34
39
|
revision: '1',
|
|
35
40
|
version: 'version'
|
|
36
41
|
})
|
|
42
|
+
expect(parseComponentSource('library/component')).toEqual({
|
|
43
|
+
cdn: undefined,
|
|
44
|
+
component: 'component',
|
|
45
|
+
library: 'library',
|
|
46
|
+
revision: undefined,
|
|
47
|
+
version: undefined
|
|
48
|
+
})
|
|
37
49
|
expect(
|
|
38
50
|
getComponentSource(parseComponentSource(DEFAULT_CDN_URL + '/components/library/component/version/1.html'))
|
|
39
51
|
).toEqual('library/component/version/1')
|
|
@@ -47,6 +59,45 @@ describe('CDN', function () {
|
|
|
47
59
|
).toEqual('library/component')
|
|
48
60
|
})
|
|
49
61
|
it('should parse and serialize stylesheet src', function () {
|
|
62
|
+
expect(
|
|
63
|
+
getStylesheetURL(
|
|
64
|
+
parseStylesheetSource('https://feaaslocal.blob.core.windows.net/components/library/component/version/1')
|
|
65
|
+
)
|
|
66
|
+
).toEqual('https://feaaslocal.blob.core.windows.net/styles/library/published.css')
|
|
67
|
+
expect(
|
|
68
|
+
getStylesheetSource(
|
|
69
|
+
parseStylesheetSource('https://feaaslocal.blob.core.windows.net/components/library/component/version')
|
|
70
|
+
)
|
|
71
|
+
).toEqual('https://feaaslocal.blob.core.windows.net/styles/library')
|
|
72
|
+
expect(
|
|
73
|
+
getStylesheetSource(
|
|
74
|
+
parseStylesheetSource('https://feaaslocal.blob.core.windows.net/components/library/component')
|
|
75
|
+
)
|
|
76
|
+
).toEqual('https://feaaslocal.blob.core.windows.net/styles/library')
|
|
77
|
+
expect(getStylesheetURL(parseStylesheetSource('library/component'))).toEqual(
|
|
78
|
+
DEFAULT_CDN_URL + '/styles/library/published.css'
|
|
79
|
+
)
|
|
80
|
+
expect(parseStylesheetSource('library/1')).toEqual({
|
|
81
|
+
cdn: undefined,
|
|
82
|
+
library: 'library',
|
|
83
|
+
revision: '1'
|
|
84
|
+
})
|
|
85
|
+
expect(parseStylesheetSource('library/published')).toEqual({
|
|
86
|
+
cdn: undefined,
|
|
87
|
+
library: 'library',
|
|
88
|
+
revision: 'published'
|
|
89
|
+
})
|
|
90
|
+
expect(parseStylesheetSource('library/component')).toEqual({
|
|
91
|
+
cdn: undefined,
|
|
92
|
+
library: 'library',
|
|
93
|
+
revision: undefined
|
|
94
|
+
})
|
|
95
|
+
expect(parseStylesheetSource('library')).toEqual({
|
|
96
|
+
cdn: undefined,
|
|
97
|
+
library: 'library',
|
|
98
|
+
revision: undefined
|
|
99
|
+
})
|
|
100
|
+
expect(getStylesheetSource(parseStylesheetSource('library/component/version'))).toEqual('library')
|
|
50
101
|
expect(
|
|
51
102
|
getStylesheetSource(
|
|
52
103
|
parseStylesheetSource('https://feaaslocal.blob.core.windows.net/styles/clean-demo/published.css')
|
|
@@ -55,6 +106,7 @@ describe('CDN', function () {
|
|
|
55
106
|
expect(
|
|
56
107
|
getStylesheetSource(parseStylesheetSource('//feaaslocal.blob.core.windows.net/styles/clean-demo/published.css'))
|
|
57
108
|
).toEqual('//feaaslocal.blob.core.windows.net/styles/clean-demo')
|
|
109
|
+
expect(getStylesheetURL('clean-demo')).toEqual(DEFAULT_CDN_URL + '/styles/clean-demo/published.css')
|
|
58
110
|
expect(getStylesheetURL('https://feaaslocal.blob.core.windows.net/styles/clean-demo')).toEqual(
|
|
59
111
|
'https://feaaslocal.blob.core.windows.net/styles/clean-demo/published.css'
|
|
60
112
|
)
|
package/types/cdn.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ValidatableRequestPhase } from './fetch.js';
|
|
2
|
-
export declare const DEFAULT_CDN_URL = "https://
|
|
2
|
+
export declare const DEFAULT_CDN_URL = "https://feaas.blob.core.windows.net";
|
|
3
3
|
export type FEAASCDNComponentParams = {
|
|
4
4
|
cdn?: string;
|
|
5
5
|
revision?: 'staging' | 'published' | 'saved' | number;
|
|
@@ -31,7 +31,7 @@ export declare function parseComponentSource(source: string): FEAASCDNComponentP
|
|
|
31
31
|
export declare function getComponentSource(props: FEAASCDNComponentParams): string;
|
|
32
32
|
export declare function getStylesheetSource(props: FEAASCDNStylesheetParams): string;
|
|
33
33
|
export declare function parseStylesheetSource(source: string): FEAASCDNStylesheetParams;
|
|
34
|
-
export declare function getComponentURL(props: FEAASCDNComponentProps): string;
|
|
34
|
+
export declare function getComponentURL(props: FEAASCDNComponentProps | string): string;
|
|
35
35
|
export declare function getStylesheetURL(props: FEAASCDNStylesheetProps): string;
|
|
36
36
|
export declare function fetchAndRevalidateComponent(props: FEAASCDNComponentProps, callback?: (html: string) => void, dontRevalidate?: boolean): Promise<import("./fetch.js").ValidatableRequest & Required<Pick<import("./fetch.js").ValidatableRequest, "response">>>;
|
|
37
37
|
/** Fetches HTML of a component. */
|
package/types/cdn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"cdn.d.ts","sourceRoot":"","sources":["../src/cdn.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,uBAAuB,EACxB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,eAAe,wCAAwC,CAAA;AACpE,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IACrD,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,qCAAqC,GAAG;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,CAAC,uBAAuB,GAAG,uBAAuB,CAAC,GACtF,qCAAqC,CAAA;AAEvC,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IAErD,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,MAAM,CAAA;AAElG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAQ5E;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,UAahE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,UAIlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,CAc9E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,UAYrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,UAY9D;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,sBAAsB,EAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACjC,cAAc,UAAQ,0HA8CvB;AAED,mCAAmC;AACnC,wBAAsB,cAAc,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;;;;;;;;IAvJzE,oCAAoC;;;;;;;;GAkKrC;AAED,MAAM,MAAM,6BAA6B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAA;AACjG,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,6BAA6B,qBAoBxC"}
|
|
@@ -62,18 +62,30 @@ export declare class FEAASComponent extends FEAASBase<FEAASComponentsProps, stri
|
|
|
62
62
|
declare global {
|
|
63
63
|
namespace JSX {
|
|
64
64
|
interface IntrinsicElements {
|
|
65
|
-
'feaas-component':
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
'feaas-component': {
|
|
66
|
+
data?: any;
|
|
67
|
+
template?: string;
|
|
68
|
+
instance?: string;
|
|
69
|
+
editable?: boolean;
|
|
68
70
|
children?: any;
|
|
69
71
|
dangerouslySetInnerHTML?: {
|
|
70
72
|
__html: string;
|
|
71
73
|
};
|
|
72
74
|
'last-modified'?: string;
|
|
73
75
|
'with-stylesheet'?: 'false' | 'true' | '';
|
|
74
|
-
}
|
|
76
|
+
} & ({
|
|
77
|
+
/** @deprecated Use cdn instead */
|
|
78
|
+
hostname?: string;
|
|
79
|
+
cdn?: string;
|
|
80
|
+
library: string;
|
|
81
|
+
component: string;
|
|
82
|
+
version?: string;
|
|
83
|
+
revision?: FEAASComponentsProps['revision'];
|
|
84
|
+
} | {
|
|
85
|
+
src: string;
|
|
86
|
+
});
|
|
75
87
|
}
|
|
76
88
|
}
|
|
77
89
|
}
|
|
78
|
-
export { FEAASComponent as Component };
|
|
90
|
+
export { FEAASComponent as Component, FEAASComponentsProps as ComponentProps };
|
|
79
91
|
//# sourceMappingURL=FEAASComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAAgB;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"FEAASComponent.d.ts","sourceRoot":"","sources":["../../src/components/FEAASComponent.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,SAAgB;;;;;;;;;;;;;;EA6B7D;AACD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC1E,qBAAa,cAAe,SAAQ,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACzE,MAAM,CAAC,kBAAkB,WAYxB;IAED,YAAY;;;;;;;;;;;;;;OAOsB;IAElC,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,IAAI,EAAE,GAAG;IAIjB,QAAQ;;;;;;;;;;;;;;;IAIR,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUhF,SAAS,IAAI,GAAG;;IAahB,IAAI;IASJ,WAAW;IAaX,aAAa;IAMb,MAAM,SAAU,MAAM,UAGrB;IAEK,IAAI;IAsBV,MAAM;CAYP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,iBAAiB,EAAE;gBACjB,IAAI,CAAC,EAAE,GAAG,CAAA;gBACV,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,kCAAkC;gBAClC,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,CAClB,CAAA;SACF;KACF;CACF;AAGD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,oBAAoB,IAAI,cAAc,EAAE,CAAA"}
|
package/types/fetch.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface ValidatableRequest {
|
|
|
18
18
|
url: Parameters<typeof fetch>[0];
|
|
19
19
|
options?: Parameters<typeof fetch>[1];
|
|
20
20
|
validator?: (resposne: Response) => boolean;
|
|
21
|
-
callback?: (response: Response, status: ValidatableRequestPhase) => any;
|
|
21
|
+
callback?: (response: Response, status: ValidatableRequestPhase, isCached: boolean) => any;
|
|
22
22
|
isCached?: boolean;
|
|
23
23
|
response?: Response;
|
|
24
24
|
cache?: FetchCache;
|
|
@@ -40,7 +40,7 @@ export declare function fetchWithCacheAwareness({ url, options, validator, callb
|
|
|
40
40
|
isCached: boolean;
|
|
41
41
|
response: Response;
|
|
42
42
|
validator: (resposne: Response) => boolean;
|
|
43
|
-
callback: (response: Response, status: "initial" | "check" | "updated") => any;
|
|
43
|
+
callback: (response: Response, status: "initial" | "check" | "updated", isCached: boolean) => any;
|
|
44
44
|
cache: FetchCache;
|
|
45
45
|
}>;
|
|
46
46
|
export declare function fetchToValidateCache(request: ValidatableRequest & Required<Pick<ValidatableRequest, 'response'>>): Promise<ValidatableRequest & Required<Pick<ValidatableRequest, "response">>>;
|
|
@@ -50,7 +50,7 @@ export declare function fetchBypassingCache(request: ValidatableRequest): Promis
|
|
|
50
50
|
isCached: boolean;
|
|
51
51
|
response: Response;
|
|
52
52
|
validator: (resposne: Response) => boolean;
|
|
53
|
-
callback: (response: Response, status: "initial" | "check" | "updated") => any;
|
|
53
|
+
callback: (response: Response, status: "initial" | "check" | "updated", isCached: boolean) => any;
|
|
54
54
|
cache: FetchCache;
|
|
55
55
|
}>;
|
|
56
56
|
export {};
|
package/types/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,MAAM,0CAA2C,CAAA;AACvD,MAAM,MAAM,uBAAuB,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAC1D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAA;IAC3C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,KAAK,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,MAAM,0CAA2C,CAAA;AACvD,MAAM,MAAM,uBAAuB,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AAC3D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAC1D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAA;IAC3C,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,KAAK,GAAG,CAAA;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,uBAAuB,CAAA;IAC9B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAClC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;CACnC,CAAA;AAED,eAAO,IAAI,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAM,CAAA;AAC7D,wBAAgB,eAAe,SAE9B;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACvC,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC3C,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,EACzC,KAAK,GAAE,UAAuB,qBAM/B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,UAAQ,qBAajF;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAChE,KAAK,GAAE,uBAAmC;;;;;;;;GAmC3C;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,gFA0B7E;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB;;;;;;;;GAWpE"}
|