@embroider/core 3.4.11 → 3.4.12-unstable.1486226

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 (55) hide show
  1. package/package.json +15 -12
  2. package/src/app-files.d.ts +3 -4
  3. package/src/app-files.js +24 -5
  4. package/src/app-files.js.map +1 -1
  5. package/src/describe-exports.js.map +1 -1
  6. package/src/html-entrypoint.js.map +1 -1
  7. package/src/html-placeholder.js.map +1 -1
  8. package/src/index.d.ts +1 -2
  9. package/src/index.js.map +1 -1
  10. package/src/messages.js.map +1 -1
  11. package/src/module-resolver.d.ts +31 -15
  12. package/src/module-resolver.js +347 -192
  13. package/src/module-resolver.js.map +1 -1
  14. package/src/node-resolve.d.ts +33 -0
  15. package/src/node-resolve.js +131 -0
  16. package/src/node-resolve.js.map +1 -0
  17. package/src/options.js.map +1 -1
  18. package/src/packager.js.map +1 -1
  19. package/src/portable-babel-config.js.map +1 -1
  20. package/src/portable-babel-launcher.js.map +1 -1
  21. package/src/portable.js.map +1 -1
  22. package/src/resolver-loader.js.map +1 -1
  23. package/src/to-broccoli-plugin.js.map +1 -1
  24. package/src/virtual-content.d.ts +6 -2
  25. package/src/virtual-content.js +119 -42
  26. package/src/virtual-content.js.map +1 -1
  27. package/src/virtual-entrypoint.d.ts +19 -0
  28. package/src/virtual-entrypoint.js +303 -0
  29. package/src/virtual-entrypoint.js.map +1 -0
  30. package/src/virtual-route-entrypoint.d.ts +15 -0
  31. package/src/virtual-route-entrypoint.js +102 -0
  32. package/src/virtual-route-entrypoint.js.map +1 -0
  33. package/src/virtual-test-entrypoint.d.ts +10 -0
  34. package/src/virtual-test-entrypoint.js +67 -0
  35. package/src/virtual-test-entrypoint.js.map +1 -0
  36. package/src/virtual-test-support-styles.d.ts +4 -0
  37. package/src/virtual-test-support-styles.js +65 -0
  38. package/src/virtual-test-support-styles.js.map +1 -0
  39. package/src/virtual-test-support.d.ts +4 -0
  40. package/src/virtual-test-support.js +69 -0
  41. package/src/virtual-test-support.js.map +1 -0
  42. package/src/virtual-vendor-styles.d.ts +4 -0
  43. package/src/virtual-vendor-styles.js +83 -0
  44. package/src/virtual-vendor-styles.js.map +1 -0
  45. package/src/virtual-vendor.d.ts +4 -0
  46. package/src/virtual-vendor.js +73 -0
  47. package/src/virtual-vendor.js.map +1 -0
  48. package/src/wait-for-trees.js.map +1 -1
  49. package/LICENSE +0 -21
  50. package/src/asset.d.ts +0 -33
  51. package/src/asset.js +0 -3
  52. package/src/asset.js.map +0 -1
  53. package/src/ember-html.d.ts +0 -43
  54. package/src/ember-html.js +0 -110
  55. package/src/ember-html.js.map +0 -1
package/src/ember-html.js DELETED
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.insertNewline = exports.PreparedEmberHTML = void 0;
4
- const jsdom_1 = require("jsdom");
5
- const fs_1 = require("fs");
6
- const html_placeholder_1 = require("./html-placeholder");
7
- class Placeholder {
8
- static replacing(node) {
9
- let placeholder = this.immediatelyAfter(node);
10
- node.parentElement.removeChild(node);
11
- return placeholder;
12
- }
13
- static immediatelyAfter(node) {
14
- let document = node.ownerDocument;
15
- let parent = node.parentElement;
16
- if (!document || !parent) {
17
- throw new Error('Cannot make Placeholder out of detached node');
18
- }
19
- let nextSibling = node.nextSibling;
20
- let start = document.createTextNode('');
21
- let end = document.createTextNode('');
22
- parent.insertBefore(start, nextSibling);
23
- parent.insertBefore(end, nextSibling);
24
- return new Placeholder(start, end, node);
25
- }
26
- constructor(start, end, reference) {
27
- this.start = start;
28
- this.end = end;
29
- this.reference = reference;
30
- if (start.parentElement && start.parentElement === end.parentElement) {
31
- this.parent = start.parentElement;
32
- }
33
- else {
34
- throw new Error('Cannot make Placeholder out of detached node');
35
- }
36
- }
37
- clear() {
38
- let { start, end, parent } = this;
39
- while (start.nextSibling && start.nextSibling !== end) {
40
- parent.removeChild(start.nextSibling);
41
- }
42
- }
43
- insert(node) {
44
- this.parent.insertBefore(node, this.end);
45
- }
46
- }
47
- class PreparedEmberHTML {
48
- constructor(asset) {
49
- this.asset = asset;
50
- this.dom = new jsdom_1.JSDOM((0, fs_1.readFileSync)(asset.sourcePath, 'utf8'));
51
- let html = asset.prepare(this.dom);
52
- this.javascript = Placeholder.replacing(html.javascript);
53
- this.styles = Placeholder.replacing(html.styles);
54
- this.implicitScripts = Placeholder.replacing(html.implicitScripts);
55
- this.implicitStyles = Placeholder.replacing(html.implicitStyles);
56
- this.testJavascript = html.testJavascript
57
- ? Placeholder.replacing(html.testJavascript)
58
- : Placeholder.immediatelyAfter(this.javascript.end);
59
- this.implicitTestScripts = html.implicitTestScripts
60
- ? Placeholder.replacing(html.implicitTestScripts)
61
- : Placeholder.immediatelyAfter(this.implicitScripts.end);
62
- this.implicitTestStyles = html.implicitTestStyles
63
- ? Placeholder.replacing(html.implicitTestStyles)
64
- : Placeholder.immediatelyAfter(this.implicitStyles.end);
65
- }
66
- placeholders() {
67
- return [
68
- this.javascript,
69
- this.styles,
70
- this.implicitScripts,
71
- this.implicitStyles,
72
- this.implicitTestScripts,
73
- this.implicitTestStyles,
74
- this.testJavascript,
75
- ];
76
- }
77
- clear() {
78
- for (let range of this.placeholders()) {
79
- range.clear();
80
- }
81
- }
82
- // this takes the src relative to the application root, we adjust it so it's
83
- // root-relative via the configured rootURL
84
- insertScriptTag(placeholder, relativeSrc, { type, tag = 'script' } = {}) {
85
- let document = this.dom.window.document;
86
- let from = placeholder.reference.nodeType === 1 ? placeholder.reference : undefined;
87
- let src = this.asset.rootURL + relativeSrc;
88
- let attributes = type ? { src, type } : { src };
89
- let newTag = (0, html_placeholder_1.makeTag)(document, { from, tag, attributes });
90
- placeholder.insert(this.dom.window.document.createTextNode('\n'));
91
- placeholder.insert(newTag);
92
- }
93
- // this takes the href relative to the application root, we adjust it so it's
94
- // root-relative via the configured rootURL
95
- insertStyleLink(placeholder, relativeHref) {
96
- let document = this.dom.window.document;
97
- let from = placeholder.reference.nodeType === 1 ? placeholder.reference : undefined;
98
- let href = this.asset.rootURL + relativeHref;
99
- let newTag = (0, html_placeholder_1.makeTag)(document, { from, tag: 'link', attributes: { href } });
100
- (0, html_placeholder_1.normalizeStyleLink)(newTag);
101
- placeholder.insert(this.dom.window.document.createTextNode('\n'));
102
- placeholder.insert(newTag);
103
- }
104
- }
105
- exports.PreparedEmberHTML = PreparedEmberHTML;
106
- function insertNewline(at) {
107
- at.parentElement.insertBefore(at.ownerDocument.createTextNode('\n'), at);
108
- }
109
- exports.insertNewline = insertNewline;
110
- //# sourceMappingURL=ember-html.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ember-html.js","sourceRoot":"","sources":["ember-html.ts"],"names":[],"mappings":"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","sourcesContent":["import { JSDOM } from 'jsdom';\nimport { readFileSync } from 'fs';\nimport type { EmberAsset } from './asset';\nimport { makeTag, normalizeStyleLink } from './html-placeholder';\n\nexport interface EmberHTML {\n // each of the Nodes in here points at where we should insert the\n // corresponding parts of the ember app. The Nodes themselves will be\n // replaced, so provide placeholders.\n\n // these are mandatory, the Ember app may need to put things into them.\n javascript: Node;\n styles: Node;\n implicitScripts: Node;\n implicitStyles: Node;\n\n // these are optional because you *may* choose to stick your implicit test\n // things into specific locations (which we need for backward-compat). But you\n // can leave these off and we will simply put them in the same places as the\n // non-test things.\n //\n // Do not confuse these with controlling whether or not we will insert tests.\n // That is separately controlled via `includeTests`.\n testJavascript?: Node;\n implicitTestScripts?: Node;\n implicitTestStyles?: Node;\n}\n\nclass Placeholder {\n static replacing(node: Node): Placeholder {\n let placeholder = this.immediatelyAfter(node);\n node.parentElement!.removeChild(node);\n return placeholder;\n }\n\n static immediatelyAfter(node: Node): Placeholder {\n let document = node.ownerDocument;\n let parent = node.parentElement;\n\n if (!document || !parent) {\n throw new Error('Cannot make Placeholder out of detached node');\n }\n\n let nextSibling = node.nextSibling;\n let start = document.createTextNode('');\n let end = document.createTextNode('');\n\n parent.insertBefore(start, nextSibling);\n parent.insertBefore(end, nextSibling);\n return new Placeholder(start, end, node);\n }\n\n readonly parent: HTMLElement;\n\n constructor(readonly start: Node, readonly end: Node, readonly reference: Node) {\n if (start.parentElement && start.parentElement === end.parentElement) {\n this.parent = start.parentElement;\n } else {\n throw new Error('Cannot make Placeholder out of detached node');\n }\n }\n\n clear() {\n let { start, end, parent } = this;\n while (start.nextSibling && start.nextSibling !== end) {\n parent.removeChild(start.nextSibling);\n }\n }\n\n insert(node: Node) {\n this.parent.insertBefore(node, this.end);\n }\n}\n\nexport class PreparedEmberHTML {\n dom: JSDOM;\n javascript: Placeholder;\n styles: Placeholder;\n implicitScripts: Placeholder;\n implicitStyles: Placeholder;\n testJavascript: Placeholder;\n implicitTestScripts: Placeholder;\n implicitTestStyles: Placeholder;\n\n constructor(private asset: EmberAsset) {\n this.dom = new JSDOM(readFileSync(asset.sourcePath, 'utf8'));\n let html = asset.prepare(this.dom);\n this.javascript = Placeholder.replacing(html.javascript);\n this.styles = Placeholder.replacing(html.styles);\n this.implicitScripts = Placeholder.replacing(html.implicitScripts);\n this.implicitStyles = Placeholder.replacing(html.implicitStyles);\n this.testJavascript = html.testJavascript\n ? Placeholder.replacing(html.testJavascript)\n : Placeholder.immediatelyAfter(this.javascript.end);\n this.implicitTestScripts = html.implicitTestScripts\n ? Placeholder.replacing(html.implicitTestScripts)\n : Placeholder.immediatelyAfter(this.implicitScripts.end);\n this.implicitTestStyles = html.implicitTestStyles\n ? Placeholder.replacing(html.implicitTestStyles)\n : Placeholder.immediatelyAfter(this.implicitStyles.end);\n }\n\n private placeholders(): Placeholder[] {\n return [\n this.javascript,\n this.styles,\n this.implicitScripts,\n this.implicitStyles,\n this.implicitTestScripts,\n this.implicitTestStyles,\n this.testJavascript,\n ];\n }\n\n clear() {\n for (let range of this.placeholders()) {\n range.clear();\n }\n }\n\n // this takes the src relative to the application root, we adjust it so it's\n // root-relative via the configured rootURL\n insertScriptTag(\n placeholder: Placeholder,\n relativeSrc: string,\n { type, tag = 'script' }: { type?: string; tag?: string } = {}\n ) {\n let document = this.dom.window.document;\n let from = placeholder.reference.nodeType === 1 ? (placeholder.reference as HTMLElement) : undefined;\n let src = this.asset.rootURL + relativeSrc;\n let attributes: Record<string, string> = type ? { src, type } : { src };\n let newTag = makeTag(document, { from, tag, attributes });\n placeholder.insert(this.dom.window.document.createTextNode('\\n'));\n placeholder.insert(newTag);\n }\n\n // this takes the href relative to the application root, we adjust it so it's\n // root-relative via the configured rootURL\n insertStyleLink(placeholder: Placeholder, relativeHref: string) {\n let document = this.dom.window.document;\n let from = placeholder.reference.nodeType === 1 ? (placeholder.reference as HTMLElement) : undefined;\n let href = this.asset.rootURL + relativeHref;\n let newTag = makeTag(document, { from, tag: 'link', attributes: { href } });\n normalizeStyleLink(newTag);\n placeholder.insert(this.dom.window.document.createTextNode('\\n'));\n placeholder.insert(newTag);\n }\n}\n\nexport function insertNewline(at: Node) {\n at.parentElement!.insertBefore(at.ownerDocument!.createTextNode('\\n'), at);\n}\n"]}