@teleporthq/teleport-uidl-resolver 0.43.0-alpha.0 → 0.43.3

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 (72) hide show
  1. package/__tests__/abilities/mocks.ts +31 -1
  2. package/__tests__/abilities/utils.ts +179 -2
  3. package/__tests__/embed-lottie-node/index.ts +10 -32
  4. package/__tests__/style-set-definitions/index.ts +3 -4
  5. package/__tests__/utils.ts +30 -20
  6. package/dist/cjs/html-mapping.d.ts.map +1 -1
  7. package/dist/cjs/html-mapping.js +25 -0
  8. package/dist/cjs/html-mapping.js.map +1 -1
  9. package/dist/cjs/index.d.ts +2 -1
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +4 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/resolver.d.ts.map +1 -1
  14. package/dist/cjs/resolver.js +8 -11
  15. package/dist/cjs/resolver.js.map +1 -1
  16. package/dist/cjs/resolvers/abilities/index.d.ts.map +1 -1
  17. package/dist/cjs/resolvers/abilities/index.js +11 -1
  18. package/dist/cjs/resolvers/abilities/index.js.map +1 -1
  19. package/dist/cjs/resolvers/abilities/utils.d.ts +2 -2
  20. package/dist/cjs/resolvers/abilities/utils.d.ts.map +1 -1
  21. package/dist/cjs/resolvers/abilities/utils.js +276 -42
  22. package/dist/cjs/resolvers/abilities/utils.js.map +1 -1
  23. package/dist/cjs/resolvers/embed-node/utils.d.ts +0 -1
  24. package/dist/cjs/resolvers/embed-node/utils.d.ts.map +1 -1
  25. package/dist/cjs/resolvers/embed-node/utils.js +43 -27
  26. package/dist/cjs/resolvers/embed-node/utils.js.map +1 -1
  27. package/dist/cjs/resolvers/style-set-definitions/index.d.ts.map +1 -1
  28. package/dist/cjs/resolvers/style-set-definitions/index.js +26 -4
  29. package/dist/cjs/resolvers/style-set-definitions/index.js.map +1 -1
  30. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  31. package/dist/cjs/utils.d.ts +6 -12
  32. package/dist/cjs/utils.d.ts.map +1 -1
  33. package/dist/cjs/utils.js +229 -101
  34. package/dist/cjs/utils.js.map +1 -1
  35. package/dist/esm/html-mapping.d.ts.map +1 -1
  36. package/dist/esm/html-mapping.js +25 -0
  37. package/dist/esm/html-mapping.js.map +1 -1
  38. package/dist/esm/index.d.ts +2 -1
  39. package/dist/esm/index.d.ts.map +1 -1
  40. package/dist/esm/index.js +2 -1
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/resolver.d.ts.map +1 -1
  43. package/dist/esm/resolver.js +8 -11
  44. package/dist/esm/resolver.js.map +1 -1
  45. package/dist/esm/resolvers/abilities/index.d.ts.map +1 -1
  46. package/dist/esm/resolvers/abilities/index.js +11 -1
  47. package/dist/esm/resolvers/abilities/index.js.map +1 -1
  48. package/dist/esm/resolvers/abilities/utils.d.ts +2 -2
  49. package/dist/esm/resolvers/abilities/utils.d.ts.map +1 -1
  50. package/dist/esm/resolvers/abilities/utils.js +276 -42
  51. package/dist/esm/resolvers/abilities/utils.js.map +1 -1
  52. package/dist/esm/resolvers/embed-node/utils.d.ts +0 -1
  53. package/dist/esm/resolvers/embed-node/utils.d.ts.map +1 -1
  54. package/dist/esm/resolvers/embed-node/utils.js +41 -24
  55. package/dist/esm/resolvers/embed-node/utils.js.map +1 -1
  56. package/dist/esm/resolvers/style-set-definitions/index.d.ts.map +1 -1
  57. package/dist/esm/resolvers/style-set-definitions/index.js +26 -4
  58. package/dist/esm/resolvers/style-set-definitions/index.js.map +1 -1
  59. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  60. package/dist/esm/utils.d.ts +6 -12
  61. package/dist/esm/utils.d.ts.map +1 -1
  62. package/dist/esm/utils.js +225 -96
  63. package/dist/esm/utils.js.map +1 -1
  64. package/package.json +5 -5
  65. package/src/html-mapping.ts +25 -0
  66. package/src/index.ts +9 -1
  67. package/src/resolver.ts +19 -16
  68. package/src/resolvers/abilities/index.ts +19 -2
  69. package/src/resolvers/abilities/utils.ts +380 -38
  70. package/src/resolvers/embed-node/utils.ts +46 -38
  71. package/src/resolvers/style-set-definitions/index.ts +25 -1
  72. package/src/utils.ts +271 -97
@@ -4,6 +4,8 @@ import {
4
4
  UIDLMailLinkNode,
5
5
  UIDLPhoneLinkNode,
6
6
  UIDLSectionLinkNode,
7
+ UIDLDynamicReference,
8
+ UIDLPropDefinition,
7
9
  } from '@teleporthq/teleport-types'
8
10
  import { staticNode } from '@teleporthq/teleport-uidl-builders'
9
11
 
@@ -25,6 +27,16 @@ export const navlinkMockedDefinition = (): UIDLNavLinkNode => ({
25
27
  },
26
28
  })
27
29
 
30
+ export const exprNavlinkMockedDefinition = (): UIDLNavLinkNode => ({
31
+ type: 'navlink',
32
+ content: {
33
+ routeName: {
34
+ type: 'expr',
35
+ content: '`/blog/' + '$' + '{' + 'blogPost?.slug}' + '`',
36
+ },
37
+ },
38
+ })
39
+
28
40
  export const phoneMockedDefinition = (): UIDLPhoneLinkNode => ({
29
41
  type: 'phone',
30
42
  content: {
@@ -35,7 +47,10 @@ export const phoneMockedDefinition = (): UIDLPhoneLinkNode => ({
35
47
  export const sectionMockedDefinition = (): UIDLSectionLinkNode => ({
36
48
  type: 'section',
37
49
  content: {
38
- section: 'contact',
50
+ section: {
51
+ type: 'static',
52
+ content: 'contact',
53
+ },
39
54
  },
40
55
  })
41
56
 
@@ -47,3 +62,18 @@ export const mailMockedDefinition = (): UIDLMailLinkNode => ({
47
62
  body: "Is it me you're looking for?",
48
63
  },
49
64
  })
65
+
66
+ export const linkTypePropDefinitions = (): Record<string, UIDLPropDefinition> => ({
67
+ cardLink: {
68
+ type: 'link',
69
+ defaultValue: { url: '/', newTab: false },
70
+ },
71
+ })
72
+
73
+ export const linkTypePropDynamicReference = (): UIDLDynamicReference => ({
74
+ type: 'dynamic',
75
+ content: {
76
+ referenceType: 'prop',
77
+ id: 'cardLink',
78
+ },
79
+ })
@@ -3,11 +3,14 @@ import { elementNode } from '@teleporthq/teleport-uidl-builders'
3
3
  import {
4
4
  urlMockedDefinition,
5
5
  navlinkMockedDefinition,
6
+ exprNavlinkMockedDefinition,
6
7
  phoneMockedDefinition,
7
8
  mailMockedDefinition,
8
9
  sectionMockedDefinition,
10
+ linkTypePropDefinitions,
11
+ linkTypePropDynamicReference,
9
12
  } from './mocks'
10
- import { UIDLElementNode, UIDLURLLinkNode } from '@teleporthq/teleport-types'
13
+ import { UIDLDynamicReference, UIDLElementNode, UIDLURLLinkNode } from '@teleporthq/teleport-types'
11
14
 
12
15
  describe('insertLink', () => {
13
16
  it('wraps a simple element', () => {
@@ -60,6 +63,56 @@ describe('insertLink', () => {
60
63
  )
61
64
  })
62
65
 
66
+ it('passes through an expr-based navlink routeName unchanged', () => {
67
+ const node = elementNode('container', {}, [elementNode('container'), elementNode('container')])
68
+
69
+ const secondChild = node.content.children[1] as UIDLElementNode
70
+
71
+ const navlink = exprNavlinkMockedDefinition()
72
+ secondChild.content.abilities = { link: navlink }
73
+
74
+ const result = insertLinks(node, {}, false)
75
+ const secondChildAfterInsertLinks = result.content.children[1] as UIDLElementNode
76
+
77
+ expect(secondChildAfterInsertLinks.content.elementType).toBe('navlink')
78
+ expect(secondChildAfterInsertLinks.content.attrs.transitionTo).toEqual({
79
+ type: 'expr',
80
+ content: '`/blog/' + '$' + '{' + 'blogPost?.slug}' + '`',
81
+ })
82
+ })
83
+
84
+ it('passes through an expr-based navlink even with projectRouteDefinition', () => {
85
+ const node = elementNode('container')
86
+
87
+ const navlink = exprNavlinkMockedDefinition()
88
+ node.content.abilities = { link: navlink }
89
+
90
+ const result = insertLinks(
91
+ node,
92
+ {
93
+ projectRouteDefinition: {
94
+ type: 'route',
95
+ defaultValue: 'home',
96
+ values: [
97
+ {
98
+ value: 'home',
99
+ pageOptions: {
100
+ navLink: '/main-page',
101
+ },
102
+ },
103
+ ],
104
+ },
105
+ },
106
+ false
107
+ )
108
+
109
+ expect(result.content.elementType).toBe('navlink')
110
+ expect(result.content.attrs.transitionTo).toEqual({
111
+ type: 'expr',
112
+ content: '`/blog/' + '$' + '{' + 'blogPost?.slug}' + '`',
113
+ })
114
+ })
115
+
63
116
  it('works with a navlink with page settings', () => {
64
117
  const node = elementNode('container', {}, [
65
118
  elementNode('container'),
@@ -95,6 +148,130 @@ describe('insertLink', () => {
95
148
  expect(secondChildAfterInsertLinks.content.elementType).toBe('navlink')
96
149
  expect(secondChildAfterInsertLinks.content.attrs.transitionTo.content).toBe(`/main-page`)
97
150
  })
151
+
152
+ it('emits a template-literal transitionTo when differentiatorValue is set', () => {
153
+ const node = elementNode('container')
154
+
155
+ const navlink = navlinkMockedDefinition()
156
+ // Point at the /profile route and append the logged-in user's id, as per
157
+ // the GenericDetailsNavlinkContent contract for the auth profile page.
158
+ navlink.content.routeName = { type: 'static', content: 'profile' }
159
+ navlink.content.differentiatorValue = {
160
+ type: 'dynamic',
161
+ content: {
162
+ referenceType: 'global',
163
+ refPath: ['Current User', 'id'],
164
+ },
165
+ } as never
166
+ node.content.abilities = { link: navlink }
167
+
168
+ const result = insertLinks(
169
+ node,
170
+ {
171
+ projectRouteDefinition: {
172
+ type: 'route',
173
+ defaultValue: 'home',
174
+ values: [
175
+ {
176
+ value: 'profile',
177
+ pageOptions: { navLink: '/profile' },
178
+ },
179
+ ],
180
+ },
181
+ },
182
+ false
183
+ )
184
+
185
+ expect(result.content.elementType).toBe('navlink')
186
+ expect(result.content.attrs.transitionTo).toEqual({
187
+ type: 'expr',
188
+ content: '`/profile/' + '$' + '{' + 'currentUser?.id}' + '`',
189
+ })
190
+ })
191
+ })
192
+
193
+ describe('insertLink with link-type prop', () => {
194
+ it('wraps a container element with a link when link ability references a link-type prop', () => {
195
+ const node = elementNode('container')
196
+ node.content.abilities = { link: linkTypePropDynamicReference() }
197
+
198
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
199
+
200
+ // The wrapper should be a link (maps to <a> by default, <Link> in Next.js via project mapping)
201
+ expect(result.content.elementType).toBe('prop-link')
202
+
203
+ // url should reference the prop's url field via refPath
204
+ const url = result.content.attrs.url as UIDLDynamicReference
205
+ expect(url.type).toBe('dynamic')
206
+ expect(url.content.referenceType).toBe('prop')
207
+ expect(url.content.id).toBe('cardLink')
208
+ expect(url.content.refPath).toEqual(['url'])
209
+
210
+ // target and rel should be expr ternaries for newTab
211
+ expect(result.content.attrs.target.type).toBe('expr')
212
+ expect(result.content.attrs.target.content).toContain('newTab')
213
+ expect(result.content.attrs.rel.type).toBe('expr')
214
+ expect(result.content.attrs.rel.content).toContain('noreferrer noopener')
215
+
216
+ // The original container should be a child of the link wrapper
217
+ const child = result.content.children[0] as UIDLElementNode
218
+ expect(child.content.elementType).toBe('container')
219
+ })
220
+
221
+ it('replaces a button element inline with link for link-type prop', () => {
222
+ const node = elementNode('button')
223
+ node.content.abilities = { link: linkTypePropDynamicReference() }
224
+
225
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
226
+
227
+ // Button should be replaced inline (not wrapped)
228
+ expect(result.content.elementType).toBe('prop-link')
229
+ expect(result.content.semanticType).toBe('')
230
+
231
+ const url = result.content.attrs.url as UIDLDynamicReference
232
+ expect(url.content.id).toBe('cardLink')
233
+ expect(url.content.refPath).toEqual(['url'])
234
+ })
235
+
236
+ it('replaces a text span element inline with link for link-type prop', () => {
237
+ const node = elementNode('text')
238
+ node.content.semanticType = 'span'
239
+ node.content.abilities = { link: linkTypePropDynamicReference() }
240
+
241
+ const result = insertLinks(node, {}, false, undefined, linkTypePropDefinitions())
242
+
243
+ expect(result.content.elementType).toBe('prop-link')
244
+ expect(result.content.semanticType).toBe('')
245
+
246
+ const url = result.content.attrs.url as UIDLDynamicReference
247
+ expect(url.content.id).toBe('cardLink')
248
+ expect(url.content.refPath).toEqual(['url'])
249
+ })
250
+
251
+ it('falls back to existing dynamic link behavior when prop is not link-type', () => {
252
+ const node = elementNode('container')
253
+ const dynamicLink: UIDLDynamicReference = {
254
+ type: 'dynamic',
255
+ content: {
256
+ referenceType: 'prop',
257
+ id: 'someStringProp',
258
+ },
259
+ }
260
+ node.content.abilities = { link: dynamicLink }
261
+
262
+ // Pass prop definitions where the referenced prop is type 'string', not 'link'
263
+ const result = insertLinks(node, {}, false, undefined, {
264
+ someStringProp: { type: 'string', defaultValue: '/about' },
265
+ })
266
+
267
+ // Should fall through to existing dynamic link handling (navlink with transitionTo)
268
+ expect(result.content.elementType).toBe('navlink')
269
+ expect(result.content.attrs.transitionTo.type).toBe('dynamic')
270
+ // Should NOT have refPath since it's the old behavior
271
+ expect(
272
+ (result.content.attrs.transitionTo as UIDLDynamicReference).content.refPath
273
+ ).toBeUndefined()
274
+ })
98
275
  })
99
276
 
100
277
  describe('createLink', () => {
@@ -121,6 +298,6 @@ describe('createLink', () => {
121
298
  const result = createLinkNode(link, {})
122
299
 
123
300
  expect(result.content.elementType).toBe('link')
124
- expect(result.content.attrs.url.content).toBe(`#${link.content.section}`)
301
+ expect(result.content.attrs.url.content).toBe(`#${link.content.section.content}`)
125
302
  })
126
303
  })
@@ -1,6 +1,6 @@
1
- import { wrapHtmlNode, createEmbedDivWrapperNode } from '../../src/resolvers/embed-node/utils'
1
+ import { wrapHtmlNode } from '../../src/resolvers/embed-node/utils'
2
2
  import { elementNode, staticNode } from '@teleporthq/teleport-uidl-builders'
3
- import { UIDLElementNode, UIDLStyleDefinitions } from '@teleporthq/teleport-types'
3
+ import { UIDLElementNode } from '@teleporthq/teleport-types'
4
4
 
5
5
  describe('wrap html-node element', () => {
6
6
  it('wraps a simple element', () => {
@@ -20,39 +20,17 @@ describe('wrap html-node element', () => {
20
20
  )
21
21
 
22
22
  const result = wrapHtmlNode(node, {})
23
- expect(result.content.elementType).toBe('div')
23
+ expect(result.content.elementType).toBe('container')
24
24
  expect(result.content.children?.length).toBe(1)
25
25
  const childNode = result.content.children?.[0] as UIDLElementNode
26
- expect(childNode.content.elementType).toBe('html-node')
27
- expect(childNode.content.attrs?.html.content).toBe(
28
- `<blockquote class='twitter-tweet'><p lang='en' dir='ltr'>Feels like the last 20 mins of Don’t Look Up right about now…</p>&mdash; Netflix (@netflix) <a href='https://twitter.com/netflix/status/1593420772948598784?ref_src=twsrc%5Etfw'>November 18, 2022</a></blockquote> <script async src='https://platform.twitter.com/widgets.js'></script>`
29
- )
30
- })
31
- })
26
+ expect(childNode.content.elementType).toBe('container')
27
+ expect(childNode.content.children?.length).toBe(1)
32
28
 
33
- describe('create div', () => {
34
- it('creates wrapping div', () => {
35
- const node = elementNode(
36
- 'html-node',
37
- {
38
- html: {
39
- type: 'raw',
40
- content: `<blockquote class='twitter-tweet'><p lang='en' dir='ltr'>Feels like the last 20 mins of Don’t Look Up right about now…</p>&mdash; Netflix (@netflix) <a href='https://twitter.com/netflix/status/1593420772948598784?ref_src=twsrc%5Etfw'>November 18, 2022</a></blockquote> <script async src='https://platform.twitter.com/widgets.js'></script>`,
41
- },
42
- },
43
- [],
44
- undefined,
45
- {
46
- width: staticNode('100px'),
47
- }
29
+ expect(childNode.content.style).toMatchObject({ display: staticNode('contents') })
30
+ const subChildNode = childNode.content.children?.[0] as UIDLElementNode
31
+ expect(subChildNode.content.elementType).toBe('html-node')
32
+ expect(subChildNode.content.attrs?.html.content).toBe(
33
+ `<blockquote class='twitter-tweet'><p lang='en' dir='ltr'>Feels like the last 20 mins of Don’t Look Up right about now…</p>&mdash; Netflix (@netflix) <a href='https://twitter.com/netflix/status/1593420772948598784?ref_src=twsrc%5Etfw'>November 18, 2022</a></blockquote> <script async src='https://platform.twitter.com/widgets.js'></script>`
48
34
  )
49
-
50
- const result = createEmbedDivWrapperNode(node)
51
-
52
- expect(result.content.elementType).toBe('div')
53
- expect(result.content.children?.length).toBe(0)
54
- expect(result.content.attrs?.html).toBeUndefined()
55
- expect(result.content.style).toBeDefined()
56
- expect(Object.keys(result.content.style as UIDLStyleDefinitions).length).toBe(1)
57
35
  })
58
36
  })
@@ -59,7 +59,7 @@ describe('Resolves style-sheet', () => {
59
59
  }
60
60
 
61
61
  it('Sorts the style-sheet in order', () => {
62
- const result = resolveStyleSetDefinitions(styleSheet)
62
+ const result = resolveStyleSetDefinitions(styleSheet, {})
63
63
 
64
64
  expect((result.primaryButton.conditions[0] as UIDLStyleSetMediaCondition).meta.maxWidth).toBe(
65
65
  991
@@ -76,16 +76,15 @@ describe('Resolves style-sheet', () => {
76
76
  })
77
77
 
78
78
  it(`Resolver doesn't throw any error even if conditions are not passed`, () => {
79
- const styleSet = {
79
+ const styleSet: Record<string, UIDLStyleSetDefinition> = {
80
80
  primaryButton: {
81
81
  type: 'reusable-project-style-map' as const,
82
- conditions: [],
83
82
  content: {
84
83
  display: staticNode('block'),
85
84
  },
86
85
  },
87
86
  }
88
- const result = resolveStyleSetDefinitions(styleSet)
87
+ const result = resolveStyleSetDefinitions(styleSet, {})
89
88
 
90
89
  expect(result).toEqual(styleSet)
91
90
  })
@@ -34,36 +34,37 @@ describe('generateUniqueKeys', () => {
34
34
  const simpleNode = elementNode('container')
35
35
 
36
36
  const lookup = {
37
- container: {
37
+ 'component-container': {
38
38
  count: 1,
39
39
  nextKey: '0',
40
40
  },
41
41
  }
42
42
 
43
- generateUniqueKeys(simpleNode, lookup)
43
+ generateUniqueKeys(component('component', simpleNode), lookup)
44
44
 
45
45
  expect(simpleNode.content.name).toBe('container')
46
- expect(simpleNode.content.key).toBe('container')
46
+ expect(simpleNode.content.key).toBe('component-container')
47
47
  })
48
48
 
49
49
  it('adds name and generate unique key', async () => {
50
50
  const node = elementNode('container', {}, [elementNode('container')])
51
51
 
52
52
  const lookup = {
53
- container: {
53
+ 'component-container': {
54
54
  count: 2,
55
- nextKey: '0',
55
+ nextKey: '1',
56
56
  },
57
57
  }
58
58
 
59
- generateUniqueKeys(node, lookup)
59
+ generateUniqueKeys(component('component', node), lookup)
60
60
 
61
61
  expect(node.content.name).toBe('container')
62
- expect(node.content.key).toBe('container')
62
+ expect(node.content.key).toBe('component-container1')
63
63
 
64
- const childNode = node.content.children[0].content as UIDLElement
64
+ const childNode = node.content.children?.[0].content as UIDLElement
65
65
  expect(childNode.name).toBe('container')
66
- expect(childNode.key).toBe('container1')
66
+ expect(childNode.key).toBe('component-container2')
67
+ expect(lookup['component-container'].nextKey).toBe('3')
67
68
  })
68
69
  })
69
70
 
@@ -74,27 +75,36 @@ describe('createNodesLookup', () => {
74
75
  ])
75
76
 
76
77
  const lookup: Record<string, { count: number; nextKey: string }> = {}
77
- createNodesLookup(node, lookup)
78
+ createNodesLookup(component('component', node), lookup)
79
+
80
+ expect(lookup['component-container'].count).toBe(2)
81
+ expect(lookup['component-container'].nextKey).toBe('1')
82
+ expect(lookup['component-text'].count).toBe(3)
83
+ expect(lookup['component-container'].nextKey).toBe('1')
84
+ })
85
+
86
+ it('counts duplicate nodes considering camel case names as well', async () => {
87
+ const node = elementNode('About-Me', {}, [elementNode('aboutMe')])
88
+ const lookup: Record<string, { count: number; nextKey: string }> = {}
89
+ createNodesLookup(component('component', node), lookup)
78
90
 
79
- expect(lookup.container.count).toBe(2)
80
- expect(lookup.container.nextKey).toBe('0')
81
- expect(lookup.text.count).toBe(3)
82
- expect(lookup.container.nextKey).toBe('0')
91
+ expect(lookup['component-about-me'].count).toBe(2)
92
+ expect(lookup['component-about-me'].nextKey).toBe('1')
83
93
  })
84
94
 
85
95
  it('adds zero padding when counting keys', async () => {
86
96
  const node = elementNode('container')
87
97
 
88
98
  const lookup: Record<string, { count: number; nextKey: string }> = {
89
- container: {
99
+ 'component-container': {
90
100
  count: 9,
91
101
  nextKey: '0',
92
102
  },
93
103
  }
94
- createNodesLookup(node, lookup)
104
+ createNodesLookup(component('component', node), lookup)
95
105
 
96
- expect(lookup.container.count).toBe(10)
97
- expect(lookup.container.nextKey).toBe('00')
106
+ expect(lookup['component-container'].count).toBe(10)
107
+ expect(lookup['component-container'].nextKey).toBe('00')
98
108
  })
99
109
  })
100
110
 
@@ -384,7 +394,7 @@ describe('checkForDefaultPropsContainingAssets', () => {
384
394
  }
385
395
 
386
396
  it('find and fix defaultProp containing an asset', () => {
387
- checkForDefaultPropsContainingAssets(comp, assets)
397
+ checkForDefaultPropsContainingAssets(comp, { assets })
388
398
  expect(comp.propDefinitions).toBeDefined()
389
399
  if (comp.propDefinitions) {
390
400
  expect(comp.propDefinitions.myImage).toBeDefined()
@@ -423,7 +433,7 @@ describe('checkForDefaultStateValueContainingAssets', () => {
423
433
  }
424
434
 
425
435
  it('find and fix defaultProp containing an asset', () => {
426
- checkForDefaultStateValueContainingAssets(comp, assets)
436
+ checkForDefaultStateValueContainingAssets(comp, { assets })
427
437
  expect(comp.stateDefinitions).toBeDefined()
428
438
  if (comp.stateDefinitions) {
429
439
  expect(comp.stateDefinitions.imageState).toBeDefined()
@@ -1 +1 @@
1
- {"version":3,"file":"html-mapping.d.ts","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,eAAO,MAAM,WAAW,EAAE,OA4MzB,CAAA"}
1
+ {"version":3,"file":"html-mapping.d.ts","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,eAAO,MAAM,WAAW,EAAE,OAqOzB,CAAA"}
@@ -34,6 +34,12 @@ exports.HTMLMapping = {
34
34
  },
35
35
  },
36
36
  },
37
+ 'markdown-node': {
38
+ elementType: 'div',
39
+ },
40
+ 'rich-text-editor-node': {
41
+ elementType: 'div',
42
+ },
37
43
  'date-time-node': {
38
44
  elementType: 'date-time-primitive',
39
45
  dependency: {
@@ -104,6 +110,15 @@ exports.HTMLMapping = {
104
110
  navlink: {
105
111
  elementType: 'a',
106
112
  },
113
+ 'prop-link': {
114
+ elementType: 'a',
115
+ attrs: {
116
+ href: {
117
+ type: 'dynamic',
118
+ content: { referenceType: 'attr', id: 'url' },
119
+ },
120
+ },
121
+ },
107
122
  button: {
108
123
  elementType: 'button',
109
124
  },
@@ -200,6 +215,16 @@ exports.HTMLMapping = {
200
215
  separator: {
201
216
  elementType: 'hr',
202
217
  },
218
+ fragment: {
219
+ elementType: 'div',
220
+ name: 'custom-fragment',
221
+ style: {
222
+ display: {
223
+ type: 'static',
224
+ content: 'contents',
225
+ },
226
+ },
227
+ },
203
228
  },
204
229
  events: {},
205
230
  attributes: {},
@@ -1 +1 @@
1
- {"version":3,"file":"html-mapping.js","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-mapping.js","sourceRoot":"","sources":["../../src/html-mapping.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import Resolver from './resolver';
2
2
  import { HTMLMapping } from './html-mapping';
3
3
  import { UIDLElement, GeneratorOptions } from '@teleporthq/teleport-types';
4
4
  import { resolveStyleSetDefinitions } from './resolvers/style-set-definitions';
5
+ import { generateUniqueKeys, createNodesLookup } from './utils';
5
6
  declare const resolveUIDLElement: (node: UIDLElement, options?: GeneratorOptions) => UIDLElement;
6
- export { resolveUIDLElement, Resolver, HTMLMapping, resolveStyleSetDefinitions };
7
+ export { resolveUIDLElement, Resolver, HTMLMapping, resolveStyleSetDefinitions, generateUniqueKeys, createNodesLookup, };
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAI9E,QAAA,MAAM,kBAAkB,SAAU,WAAW,YAAY,gBAAgB,gBAExE,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAI/D,QAAA,MAAM,kBAAkB,SAAU,WAAW,YAAY,gBAAgB,gBAExE,CAAA;AAED,OAAO,EACL,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,GAClB,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -3,13 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resolveStyleSetDefinitions = exports.HTMLMapping = exports.Resolver = exports.resolveUIDLElement = void 0;
6
+ exports.createNodesLookup = exports.generateUniqueKeys = exports.resolveStyleSetDefinitions = exports.HTMLMapping = exports.Resolver = exports.resolveUIDLElement = void 0;
7
7
  var resolver_1 = __importDefault(require("./resolver"));
8
8
  exports.Resolver = resolver_1.default;
9
9
  var html_mapping_1 = require("./html-mapping");
10
10
  Object.defineProperty(exports, "HTMLMapping", { enumerable: true, get: function () { return html_mapping_1.HTMLMapping; } });
11
11
  var style_set_definitions_1 = require("./resolvers/style-set-definitions");
12
12
  Object.defineProperty(exports, "resolveStyleSetDefinitions", { enumerable: true, get: function () { return style_set_definitions_1.resolveStyleSetDefinitions; } });
13
+ var utils_1 = require("./utils");
14
+ Object.defineProperty(exports, "generateUniqueKeys", { enumerable: true, get: function () { return utils_1.generateUniqueKeys; } });
15
+ Object.defineProperty(exports, "createNodesLookup", { enumerable: true, get: function () { return utils_1.createNodesLookup; } });
13
16
  var htmlResolver = new resolver_1.default(html_mapping_1.HTMLMapping);
14
17
  var resolveUIDLElement = function (node, options) {
15
18
  return htmlResolver.resolveElement(node, options);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiC;AAWJ,mBAXtB,kBAAQ,CAWsB;AAVrC,+CAA4C;AAUL,4FAV9B,0BAAW,OAU8B;AARlD,2EAA8E;AAQ1B,2GAR3C,kDAA0B,OAQ2C;AAN9E,IAAM,YAAY,GAAG,IAAI,kBAAQ,CAAC,0BAAW,CAAC,CAAA;AAE9C,IAAM,kBAAkB,GAAG,UAAC,IAAiB,EAAE,OAA0B;IACvE,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC,CAAA;AAEQ,gDAAkB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiC;AAc/B,mBAdK,kBAAQ,CAcL;AAbV,+CAA4C;AAc1C,4FAdO,0BAAW,OAcP;AAZb,2EAA8E;AAa5E,2GAbO,kDAA0B,OAaP;AAZ5B,iCAA+D;AAa7D,mGAbO,0BAAkB,OAaP;AAClB,kGAd2B,yBAAiB,OAc3B;AAZnB,IAAM,YAAY,GAAG,IAAI,kBAAQ,CAAC,0BAAW,CAAC,CAAA;AAE9C,IAAM,kBAAkB,GAAG,UAAC,IAAiB,EAAE,OAA0B;IACvE,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC,CAAA;AAGC,gDAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAMlG;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,OAAO,CAAC,OAAO,CAMd;gBAEW,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE;IAQlC,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,gBAAqB;IAyChE,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB;CAW3E"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,WAAW,EACX,OAAO,EACP,gBAAgB,EAEjB,MAAM,4BAA4B,CAAA;AAMnC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,OAAO,CAAC,OAAO,CAMd;gBAEW,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE;IAQlC,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,GAAE,gBAA6C;IAmCxF,cAAc,CACnB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,gBAA6C;CAYzD"}
@@ -65,32 +65,29 @@ var Resolver = /** @class */ (function () {
65
65
  this.mapping = utils.mergeMappings(this.mapping, mapping);
66
66
  };
67
67
  Resolver.prototype.resolveUIDL = function (input, options) {
68
- if (options === void 0) { options = {}; }
68
+ if (options === void 0) { options = { extractedResources: {} }; }
69
69
  var mapping = utils.mergeMappings(this.mapping, options.mapping);
70
70
  var newOptions = __assign(__assign({}, options), { mapping: mapping });
71
+ var lookup = {};
71
72
  var uidl = teleport_shared_1.UIDLUtils.cloneObject(input);
72
73
  uidl.styleSetDefinitions = (0, style_set_definitions_1.resolveStyleSetDefinitions)(input.styleSetDefinitions, newOptions);
73
74
  teleport_shared_1.UIDLUtils.setFriendlyOutputOptions(uidl);
74
75
  utils.checkForIllegalNames(uidl, mapping);
75
- utils.checkForDefaultPropsContainingAssets(uidl, options.assets);
76
- utils.checkForDefaultStateValueContainingAssets(uidl, options.assets);
76
+ utils.checkForDefaultPropsContainingAssets(uidl, newOptions);
77
+ utils.checkForDefaultStateValueContainingAssets(uidl, newOptions);
77
78
  (0, abilities_1.resolveAbilities)(uidl, newOptions);
78
79
  (0, referenced_styles_1.resolveReferencedStyle)(uidl, newOptions);
79
80
  (0, embed_node_1.resolveHtmlNode)(uidl, newOptions);
80
- // TODO: Rename into apply mappings
81
81
  utils.resolveNode(uidl.node, newOptions);
82
- utils.removeIgnoredNodes(uidl.node);
83
- var nodesLookup = {};
84
- utils.createNodesLookup(uidl.node, nodesLookup);
85
- utils.createCMSNodesLookup(uidl.node, nodesLookup);
86
- utils.generateUniqueKeys(uidl.node, nodesLookup);
82
+ utils.resolveNodeInPropDefinitions(uidl, newOptions);
83
+ utils.createNodesLookup(uidl, lookup);
84
+ utils.generateUniqueKeys(uidl, lookup);
87
85
  utils.ensureDataSourceUniqueness(uidl.node);
88
- // There might be urls that need to be prefixed in the metaTags of the component
89
86
  utils.resolveMetaTags(uidl, newOptions);
90
87
  return uidl;
91
88
  };
92
89
  Resolver.prototype.resolveElement = function (element, options) {
93
- if (options === void 0) { options = {}; }
90
+ if (options === void 0) { options = { extractedResources: {} }; }
94
91
  var mapping = utils.mergeMappings(this.mapping, options.mapping);
95
92
  var newOptions = __assign(__assign({}, options), { mapping: mapping });
96
93
  var returnElement = teleport_shared_1.UIDLUtils.cloneObject(element);
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAG5E,eAAO,MAAM,gBAAgB,SAAU,aAAa,WAAW,gBAAgB,SAE9E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAmB,MAAM,4BAA4B,CAAA;AAG7F,eAAO,MAAM,gBAAgB,SAAU,aAAa,WAAW,gBAAgB,SAmB9E,CAAA"}