@sitecore-feaas/clientside 0.1.33 → 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.
Files changed (54) hide show
  1. package/build/cdn.js +18 -5
  2. package/build/cdn.js.map +1 -1
  3. package/build/components/FEAASComponent.js +5 -2
  4. package/build/components/FEAASComponent.js.map +1 -1
  5. package/build/fetch.js +1 -1
  6. package/build/fetch.js.map +1 -1
  7. package/dist/browser/headless.esm.js +5 -5
  8. package/dist/browser/headless.esm.js.map +1 -1
  9. package/dist/browser/index.esm.js +4 -4
  10. package/dist/browser/index.esm.js.map +1 -1
  11. package/dist/browser/index.js +4 -4
  12. package/dist/browser/index.js.map +1 -1
  13. package/dist/browser/react.esm.js +5 -5
  14. package/dist/browser/react.esm.js.map +1 -1
  15. package/dist/node/headless.esm.js +3 -3
  16. package/dist/node/headless.esm.js.map +3 -3
  17. package/dist/node/index.esm.js +3 -3
  18. package/dist/node/index.esm.js.map +3 -3
  19. package/dist/node/index.js +3 -3
  20. package/dist/node/index.js.map +3 -3
  21. package/dist/node/react.esm.js +3 -3
  22. package/dist/node/react.esm.js.map +3 -3
  23. package/headless.d.ts +1 -0
  24. package/package.json +7 -6
  25. package/react.d.ts +1 -0
  26. package/scripts/build.js +5 -1
  27. package/src/cdn.ts +21 -8
  28. package/src/components/FEAASComponent.tsx +21 -7
  29. package/src/fetch.ts +2 -2
  30. package/src/ui/react.tsx +12 -2
  31. package/test/FEAASComponent.react.test.tsx +44 -0
  32. package/test/FEAASComponent.test.tsx +4 -4
  33. package/test/cdn.ts +59 -1
  34. package/types/cdn.d.ts +2 -2
  35. package/types/cdn.d.ts.map +1 -1
  36. package/types/components/FEAASComponent.d.ts +17 -5
  37. package/types/components/FEAASComponent.d.ts.map +1 -1
  38. package/types/fetch.d.ts +3 -3
  39. package/types/fetch.d.ts.map +1 -1
  40. package/types/tsbuildinfo +1 -1
  41. package/types/tsbuildinfo_ui +1 -1
  42. package/types/ui/react.d.ts.map +1 -1
  43. package/build/headless.js +0 -23
  44. package/build/headless.js.map +0 -1
  45. package/build/ui/react.js +0 -7
  46. package/build/ui/react.js.map +0 -1
  47. package/dist/browser/headless.js +0 -69
  48. package/dist/browser/headless.js.map +0 -1
  49. package/dist/browser/react.js +0 -69
  50. package/dist/browser/react.js.map +0 -1
  51. package/dist/node/headless.js +0 -67
  52. package/dist/node/headless.js.map +0 -7
  53. package/dist/node/react.js +0 -67
  54. 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.33",
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",
@@ -26,18 +26,17 @@
26
26
  ".": {
27
27
  "localhost": "./build/ui/index.js",
28
28
  "types": "./types/ui/index.d.ts",
29
+ "typescript": "./build/ui/index.js",
29
30
  "browser": "./dist/browser/index.esm.js",
30
31
  "import": "./dist/node/index.esm.js",
31
32
  "require": "./dist/node/index.js",
32
33
  "default": "./dist/node/index.esm.js"
33
34
  },
34
- "./server": {
35
- "import": "./dist/node/index.esm.js",
36
- "default": "./dist/node/index.js"
37
- },
38
35
  "./headless": {
39
36
  "localhost": "./build/headless.js",
37
+ "development": "./build/headless.js",
40
38
  "types": "./types/headless.d.ts",
39
+ "typescript": "./build/headless.js",
41
40
  "browser": "./dist/browser/headless.esm.js",
42
41
  "import": "./dist/node/headless.esm.js",
43
42
  "require": "./dist/node/headless.js",
@@ -45,7 +44,9 @@
45
44
  },
46
45
  "./react": {
47
46
  "localhost": "./build/react.js",
48
- "types": "./types/react.d.ts",
47
+ "development": "./build/react.js",
48
+ "types": "./types/ui/react.d.ts",
49
+ "typescript": "./build/react.js",
49
50
  "browser": "./dist/browser/react.esm.js",
50
51
  "import": "./dist/node/react.esm.js",
51
52
  "require": "./dist/node/react.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://feaascomponentsapidev.blob.core.windows.net`
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(/^(?:(.*?)\/components)?\/?([^\/]+)\/([^\/]+)(?:\/([^\/]+)(?:\/([^\/]+?)(?:\.html?)?)?)?$/)
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 }
@@ -57,25 +59,36 @@ export function getComponentSource(props: FEAASCDNComponentParams) {
57
59
  ? ''
58
60
  : props.version
59
61
  }/${!props.revision || props.revision == 'published' ? '' : props.revision}`.replace(
60
- /(^\/|\/$|(?<!:)\/\/)(?!.+\/components\/)/g,
62
+ /(^\/|\/$|\/\/)(?!.+\/components\/)/g,
61
63
  ''
62
64
  )
63
65
  }
64
66
 
65
67
  export function getStylesheetSource(props: FEAASCDNStylesheetParams) {
66
- return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/styles` : ''}/${props.library}/${
67
- props.revision == 'published' ? '' : props.revision
68
- }`.replace(/^\/|\/$|(?<!:)\/\//g, '')
68
+ return `${props.cdn && props.cdn != DEFAULT_CDN_URL ? `${props.cdn}/styles/` : ''}${props.library}/${
69
+ !props.revision || props.revision == 'published' ? '' : props.revision
70
+ }`.replace(/\/$|\/\/(?!.+\/styles\/)/g, '')
69
71
  }
70
72
 
71
73
  export function parseStylesheetSource(source: string): FEAASCDNStylesheetParams {
72
- const match = source.match(/^(?:(.*?)\/styles)?\/([^\/]+)(?:\/([^\/]+?)(?:.css))?$/)
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
- var { cdn, library, component, version, revision } = parseComponentSource(src)
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': (Partial<
164
- Omit<FEAASComponentsProps, 'component' | 'version' | 'revision' | 'lastModified' | 'withStylesheet'>
165
- > &
166
- (Pick<FEAASComponentsProps, 'component' | 'version' | 'revision'> | { src: string })) & {
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
- return <feaas-component {...props} data={data ? JSON.stringify(data) : null} />
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="{&quot;abc&quot;:321}" library="library" component="test"><div data-path-src="abc"></div></feaas-component></section>'
42
+ )
43
+ })
44
+ })
@@ -1,4 +1,4 @@
1
- import { beforeEach, afterAll, beforeAll, describe, expect, it, vi } from 'vitest'
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/e.html')) {
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/e.html"></feaas-component>'
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/e.html" cdn="http://a" library="b" component="c" version="d" revision="e" class="-feaas">TODAY</feaas-component>`
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/1.html'))).toEqual(
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,9 +39,19 @@ 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')
52
+ expect(getComponentSource(parseComponentSource('//cdn/components/library/component/version/1.html'))).toEqual(
53
+ '//cdn/components/library/component/version/1'
54
+ )
40
55
  expect(
41
56
  getComponentSource(
42
57
  parseComponentSource(DEFAULT_CDN_URL + '/components/library/component/responsive/published.html')
@@ -44,11 +59,54 @@ describe('CDN', function () {
44
59
  ).toEqual('library/component')
45
60
  })
46
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')
47
101
  expect(
48
102
  getStylesheetSource(
49
103
  parseStylesheetSource('https://feaaslocal.blob.core.windows.net/styles/clean-demo/published.css')
50
104
  )
51
105
  ).toEqual('https://feaaslocal.blob.core.windows.net/styles/clean-demo')
106
+ expect(
107
+ getStylesheetSource(parseStylesheetSource('//feaaslocal.blob.core.windows.net/styles/clean-demo/published.css'))
108
+ ).toEqual('//feaaslocal.blob.core.windows.net/styles/clean-demo')
109
+ expect(getStylesheetURL('clean-demo')).toEqual(DEFAULT_CDN_URL + '/styles/clean-demo/published.css')
52
110
  expect(getStylesheetURL('https://feaaslocal.blob.core.windows.net/styles/clean-demo')).toEqual(
53
111
  'https://feaaslocal.blob.core.windows.net/styles/clean-demo/published.css'
54
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://feaascomponentsapidev.blob.core.windows.net";
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. */
@@ -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,wDAAwD,CAAA;AACpF,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,CAM5E;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,CAM9E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,UAS5D;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;;;;;;;;IA1IzE,oCAAoC;;;;;;;;GAqJrC;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"}
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': (Partial<Omit<FEAASComponentsProps, 'component' | 'version' | 'revision' | 'lastModified' | 'withStylesheet'>> & (Pick<FEAASComponentsProps, 'component' | 'version' | 'revision'> | {
66
- src: string;
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;;;;;;;;;;;;;;EA2B7D;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,CAAC,OAAO,CACzB,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,gBAAgB,CAAC,CACrG,GACC,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC,GAAG;gBACxF,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,CAAA;SACF;KACF;CACF;AAGD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,CAAA"}
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 {};
@@ -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;IACvE,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"}
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"}