@teleporthq/teleport-uidl-resolver 0.41.0 → 0.42.0

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 (70) hide show
  1. package/__tests__/abilities/mocks.ts +4 -1
  2. package/__tests__/abilities/utils.ts +1 -1
  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 +10 -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 +9 -0
  18. package/dist/cjs/resolvers/abilities/index.js.map +1 -1
  19. package/dist/cjs/resolvers/abilities/utils.d.ts.map +1 -1
  20. package/dist/cjs/resolvers/abilities/utils.js +98 -26
  21. package/dist/cjs/resolvers/abilities/utils.js.map +1 -1
  22. package/dist/cjs/resolvers/embed-node/utils.d.ts +0 -1
  23. package/dist/cjs/resolvers/embed-node/utils.d.ts.map +1 -1
  24. package/dist/cjs/resolvers/embed-node/utils.js +33 -28
  25. package/dist/cjs/resolvers/embed-node/utils.js.map +1 -1
  26. package/dist/cjs/resolvers/style-set-definitions/index.d.ts.map +1 -1
  27. package/dist/cjs/resolvers/style-set-definitions/index.js +4 -4
  28. package/dist/cjs/resolvers/style-set-definitions/index.js.map +1 -1
  29. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  30. package/dist/cjs/utils.d.ts +6 -12
  31. package/dist/cjs/utils.d.ts.map +1 -1
  32. package/dist/cjs/utils.js +197 -98
  33. package/dist/cjs/utils.js.map +1 -1
  34. package/dist/esm/html-mapping.d.ts.map +1 -1
  35. package/dist/esm/html-mapping.js +10 -0
  36. package/dist/esm/html-mapping.js.map +1 -1
  37. package/dist/esm/index.d.ts +2 -1
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +2 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/resolver.d.ts.map +1 -1
  42. package/dist/esm/resolver.js +8 -11
  43. package/dist/esm/resolver.js.map +1 -1
  44. package/dist/esm/resolvers/abilities/index.d.ts.map +1 -1
  45. package/dist/esm/resolvers/abilities/index.js +9 -0
  46. package/dist/esm/resolvers/abilities/index.js.map +1 -1
  47. package/dist/esm/resolvers/abilities/utils.d.ts.map +1 -1
  48. package/dist/esm/resolvers/abilities/utils.js +98 -26
  49. package/dist/esm/resolvers/abilities/utils.js.map +1 -1
  50. package/dist/esm/resolvers/embed-node/utils.d.ts +0 -1
  51. package/dist/esm/resolvers/embed-node/utils.d.ts.map +1 -1
  52. package/dist/esm/resolvers/embed-node/utils.js +31 -25
  53. package/dist/esm/resolvers/embed-node/utils.js.map +1 -1
  54. package/dist/esm/resolvers/style-set-definitions/index.d.ts.map +1 -1
  55. package/dist/esm/resolvers/style-set-definitions/index.js +4 -4
  56. package/dist/esm/resolvers/style-set-definitions/index.js.map +1 -1
  57. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  58. package/dist/esm/utils.d.ts +6 -12
  59. package/dist/esm/utils.d.ts.map +1 -1
  60. package/dist/esm/utils.js +193 -93
  61. package/dist/esm/utils.js.map +1 -1
  62. package/package.json +5 -5
  63. package/src/html-mapping.ts +10 -0
  64. package/src/index.ts +9 -1
  65. package/src/resolver.ts +19 -16
  66. package/src/resolvers/abilities/index.ts +13 -1
  67. package/src/resolvers/abilities/utils.ts +115 -24
  68. package/src/resolvers/embed-node/utils.ts +35 -40
  69. package/src/resolvers/style-set-definitions/index.ts +2 -1
  70. package/src/utils.ts +230 -94
@@ -35,7 +35,10 @@ export const phoneMockedDefinition = (): UIDLPhoneLinkNode => ({
35
35
  export const sectionMockedDefinition = (): UIDLSectionLinkNode => ({
36
36
  type: 'section',
37
37
  content: {
38
- section: 'contact',
38
+ section: {
39
+ type: 'static',
40
+ content: 'contact',
41
+ },
39
42
  },
40
43
  })
41
44
 
@@ -121,6 +121,6 @@ describe('createLink', () => {
121
121
  const result = createLinkNode(link, {})
122
122
 
123
123
  expect(result.content.elementType).toBe('link')
124
- expect(result.content.attrs.url.content).toBe(`#${link.content.section}`)
124
+ expect(result.content.attrs.url.content).toBe(`#${link.content.section.content}`)
125
125
  })
126
126
  })
@@ -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,OAsNzB,CAAA"}
@@ -200,6 +200,16 @@ exports.HTMLMapping = {
200
200
  separator: {
201
201
  elementType: 'hr',
202
202
  },
203
+ fragment: {
204
+ elementType: 'div',
205
+ name: 'custom-fragment',
206
+ style: {
207
+ display: {
208
+ type: 'static',
209
+ content: 'contents',
210
+ },
211
+ },
212
+ },
203
213
  },
204
214
  events: {},
205
215
  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,SAc9E,CAAA"}
@@ -3,6 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveAbilities = void 0;
4
4
  var utils_1 = require("./utils");
5
5
  var resolveAbilities = function (uidl, options) {
6
+ if (uidl.propDefinitions) {
7
+ for (var _i = 0, _a = Object.keys(uidl.propDefinitions); _i < _a.length; _i++) {
8
+ var propKey = _a[_i];
9
+ var prop = uidl.propDefinitions[propKey];
10
+ if (prop.type === 'element' && typeof prop.defaultValue === 'object') {
11
+ uidl.propDefinitions[propKey].defaultValue = (0, utils_1.insertLinks)(prop.defaultValue, options);
12
+ }
13
+ }
14
+ }
6
15
  uidl.node = (0, utils_1.insertLinks)(uidl.node, options);
7
16
  };
8
17
  exports.resolveAbilities = resolveAbilities;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":";;;AACA,iCAAqC;AAE9B,IAAM,gBAAgB,GAAG,UAAC,IAAmB,EAAE,OAAyB;IAC7E,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resolvers/abilities/index.ts"],"names":[],"mappings":";;;AACA,iCAAqC;AAE9B,IAAM,gBAAgB,GAAG,UAAC,IAAmB,EAAE,OAAyB;IAC7E,IAAI,IAAI,CAAC,eAAe,EAAE;QACxB,KAAsB,UAAiC,EAAjC,KAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAjC,cAAiC,EAAjC,IAAiC,EAAE;YAApD,IAAM,OAAO,SAAA;YAChB,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACpE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,GAAG,IAAA,mBAAW,EACtD,IAAI,CAAC,YAA+B,EACpC,OAAO,CACR,CAAA;aACF;SACF;KACF;IAED,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC7C,CAAC,CAAA;AAdY,QAAA,gBAAgB,oBAc5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAGnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,KAC3B,eA8HF,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/abilities/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAEhB,MAAM,4BAA4B,CAAA;AAsCnC,eAAO,MAAM,WAAW,SAChB,eAAe,WACZ,gBAAgB,iBACX,OAAO,eACR,eAAe,KAC3B,eAgLF,CAAA;AAED,eAAO,MAAM,cAAc,SAAU,YAAY,WAAW,gBAAgB,KAAG,eAS9E,CAAA"}
@@ -13,14 +13,42 @@ var __assign = (this && this.__assign) || function () {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.createLinkNode = exports.insertLinks = void 0;
15
15
  var teleport_shared_1 = require("@teleporthq/teleport-shared");
16
- var path_1 = require("path");
16
+ // Whitelist of attributes that are safe to transfer to anchor tags
17
+ var ANCHOR_SAFE_ATTRIBUTES = new Set([
18
+ // Standard HTML attributes
19
+ 'class',
20
+ 'id',
21
+ 'style',
22
+ 'title',
23
+ 'lang',
24
+ 'dir',
25
+ 'tabindex',
26
+ 'accesskey',
27
+ 'contenteditable',
28
+ 'draggable',
29
+ 'hidden',
30
+ 'spellcheck',
31
+ 'translate',
32
+ ]);
33
+ // ARIA attributes safe for anchor tags (link-specific)
34
+ var ANCHOR_SAFE_ARIA_ATTRIBUTES = new Set([
35
+ 'aria-describedby',
36
+ 'aria-labelledby',
37
+ 'aria-expanded',
38
+ 'aria-haspopup',
39
+ 'aria-current',
40
+ 'aria-disabled', // For disabled links
41
+ ]);
42
+ var isAttributeSafeForAnchor = function (attrName) {
43
+ return (ANCHOR_SAFE_ATTRIBUTES.has(attrName) ||
44
+ attrName.startsWith('data-') ||
45
+ ANCHOR_SAFE_ARIA_ATTRIBUTES.has(attrName));
46
+ };
17
47
  var insertLinks = function (node, options, linkInParent, parentNode) {
18
48
  var _a, _b, _c, _d;
19
49
  if (linkInParent === void 0) { linkInParent = false; }
20
- // TODO_NOW
21
- var _e = node.content, abilities = _e.abilities, children = _e.children, elementType = _e.elementType, semanticType = _e.semanticType;
50
+ var _e = node.content, abilities = _e.abilities, children = _e.children, elementType = _e.elementType, semanticType = _e.semanticType, _f = _e.attrs, attrs = _f === void 0 ? {} : _f;
22
51
  var linkInNode = linkInParent || !!(abilities === null || abilities === void 0 ? void 0 : abilities.link);
23
- // TODO: think of a way to reuse the traversal that modifies the tree
24
52
  node.content.children = children === null || children === void 0 ? void 0 : children.map(function (child) {
25
53
  var _a;
26
54
  if (child.type === 'element') {
@@ -48,16 +76,33 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
48
76
  }
49
77
  }
50
78
  if (child.type === 'cms-list-repeater') {
51
- var _c = child.content.nodes, list = _c.list, empty = _c.empty;
79
+ var _c = child.content.nodes, list = _c.list, empty = _c.empty, loading = _c.loading;
52
80
  if (list) {
53
81
  (0, exports.insertLinks)(list, options, false, node);
54
82
  }
55
83
  if (empty) {
56
84
  (0, exports.insertLinks)(empty, options, false, node);
57
85
  }
86
+ if (loading) {
87
+ (0, exports.insertLinks)(loading, options, false, node);
88
+ }
89
+ }
90
+ if (child.type === 'cms-mixed-type') {
91
+ if (child.content.mappings) {
92
+ Object.values(child.content.mappings).forEach(function (mapping) {
93
+ (0, exports.insertLinks)(mapping, options, false, node);
94
+ });
95
+ }
96
+ var _d = child.content.nodes, fallback = _d.fallback, error = _d.error;
97
+ if (fallback) {
98
+ (0, exports.insertLinks)(fallback, options, false, node);
99
+ }
100
+ if (error) {
101
+ (0, exports.insertLinks)(error, options, false, node);
102
+ }
58
103
  }
59
104
  if (child.type === 'cms-item') {
60
- var _d = child.content.nodes, success = _d.success, error = _d.error, loading = _d.loading;
105
+ var _e = child.content.nodes, success = _e.success, error = _e.error, loading = _e.loading;
61
106
  if (success) {
62
107
  (0, exports.insertLinks)(success, options, false, node);
63
108
  }
@@ -70,6 +115,13 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
70
115
  }
71
116
  return child;
72
117
  });
118
+ for (var _i = 0, _g = Object.keys(attrs); _i < _g.length; _i++) {
119
+ var attrKey = _g[_i];
120
+ var attr = attrs[attrKey];
121
+ if (attr.type === 'element') {
122
+ node.content.attrs[attrKey] = (0, exports.insertLinks)(attr, options, false, node);
123
+ }
124
+ }
73
125
  if (abilities === null || abilities === void 0 ? void 0 : abilities.link) {
74
126
  if (linkInParent) {
75
127
  console.warn('parent node has a link capability, nesting links is illegal');
@@ -96,8 +148,22 @@ var insertLinks = function (node, options, linkInParent, parentNode) {
96
148
  return node;
97
149
  }
98
150
  var linkNode = (0, exports.createLinkNode)(abilities.link, options);
151
+ if (node.type === 'element' && node.content.attrs) {
152
+ // Filter attributes to only transfer those safe for anchor tags
153
+ var safeAttrs_1 = {};
154
+ Object.keys(node.content.attrs).forEach(function (attrName) {
155
+ if (isAttributeSafeForAnchor(attrName)) {
156
+ safeAttrs_1[attrName] = __assign({}, node.content.attrs[attrName]);
157
+ }
158
+ });
159
+ linkNode.content.attrs = __assign(__assign({}, linkNode.content.attrs), safeAttrs_1);
160
+ // Remove only the transferred attributes from the original node
161
+ Object.keys(safeAttrs_1).forEach(function (attrName) {
162
+ delete node.content.attrs[attrName];
163
+ });
164
+ }
99
165
  linkNode.content.children.push(node);
100
- if (((_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.content.style) === null || _c === void 0 ? void 0 : _c.display) === null || _d === void 0 ? void 0 : _d.content) === 'flex') {
166
+ if (parentNode === undefined || ((_d = (_c = parentNode === null || parentNode === void 0 ? void 0 : parentNode.content.style) === null || _c === void 0 ? void 0 : _c.display) === null || _d === void 0 ? void 0 : _d.content) === 'flex') {
101
167
  linkNode.content.style = __assign(__assign({}, linkNode.content.style), { display: { type: 'static', content: 'contents' } });
102
168
  }
103
169
  return linkNode;
@@ -142,12 +208,23 @@ var createLinkAttributes = function (link, options) {
142
208
  : {}));
143
209
  }
144
210
  case 'section': {
145
- return {
146
- url: {
147
- type: 'static',
148
- content: "#".concat(link.content.section),
149
- },
150
- };
211
+ if (link.content.section.type === 'static') {
212
+ return {
213
+ url: {
214
+ type: 'static',
215
+ content: "#".concat(link.content.section.content),
216
+ },
217
+ };
218
+ }
219
+ if (link.content.section.type === 'expr') {
220
+ return {
221
+ url: {
222
+ type: 'expr',
223
+ content: '`#${' + link.content.section.content + '}`',
224
+ },
225
+ };
226
+ }
227
+ return;
151
228
  }
152
229
  case 'dynamic':
153
230
  return {
@@ -177,7 +254,7 @@ var createLinkAttributes = function (link, options) {
177
254
  }
178
255
  };
179
256
  var resolveNavlink = function (route, options) {
180
- var _a, _b, _c, _d, _e, _f;
257
+ var _a, _b;
181
258
  if (options.skipNavlinkResolver) {
182
259
  return route;
183
260
  }
@@ -199,21 +276,16 @@ var resolveNavlink = function (route, options) {
199
276
  content: "/".concat(friendlyURL),
200
277
  };
201
278
  }
202
- var value = (_b = (_a = transitionRoute === null || transitionRoute === void 0 ? void 0 : transitionRoute.pageOptions) === null || _a === void 0 ? void 0 : _a.navLink) !== null && _b !== void 0 ? _b : "/".concat(friendlyURL);
203
- if (((_c = transitionRoute === null || transitionRoute === void 0 ? void 0 : transitionRoute.pageOptions) === null || _c === void 0 ? void 0 : _c.navLink) === '/') {
204
- value = transitionRoute.pageOptions.navLink;
279
+ if (((_a = transitionRoute === null || transitionRoute === void 0 ? void 0 : transitionRoute.pageOptions) === null || _a === void 0 ? void 0 : _a.navLink) === '/') {
280
+ return {
281
+ type: 'static',
282
+ content: transitionRoute.pageOptions.navLink,
283
+ };
205
284
  }
206
- /*
207
- We are using `navLink` + fileName for the target location calculation.
208
- See `teleport-project-generator` -> createPageUIDL for more info.
209
- */
210
- value =
211
- ((_d = transitionRoute === null || transitionRoute === void 0 ? void 0 : transitionRoute.pageOptions) === null || _d === void 0 ? void 0 : _d.navLink) && ((_e = transitionRoute === null || transitionRoute === void 0 ? void 0 : transitionRoute.pageOptions) === null || _e === void 0 ? void 0 : _e.fileName)
212
- ? (0, path_1.join)(transitionRoute.pageOptions.navLink, "../".concat(transitionRoute.pageOptions.fileName))
213
- : (_f = transitionRoute.pageOptions.navLink) !== null && _f !== void 0 ? _f : "/".concat(friendlyURL);
285
+ var pageOptions = transitionRoute.pageOptions;
214
286
  return {
215
287
  type: 'static',
216
- content: value,
288
+ content: (_b = pageOptions.navLink) !== null && _b !== void 0 ? _b : "/".concat(friendlyURL),
217
289
  };
218
290
  };
219
291
  //# sourceMappingURL=utils.js.map