@analogjs/vite-plugin-angular 2.0.0-alpha.9 → 2.0.0-beta.2

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 (67) hide show
  1. package/package.json +9 -5
  2. package/src/index.d.ts +0 -2
  3. package/src/index.js +0 -2
  4. package/src/index.js.map +1 -1
  5. package/src/lib/angular-pending-tasks.plugin.js +2 -1
  6. package/src/lib/angular-pending-tasks.plugin.js.map +1 -1
  7. package/src/lib/angular-storybook-plugin.d.ts +2 -2
  8. package/src/lib/angular-storybook-plugin.js +11 -4
  9. package/src/lib/angular-storybook-plugin.js.map +1 -1
  10. package/src/lib/angular-vite-plugin.d.ts +13 -23
  11. package/src/lib/angular-vite-plugin.js +190 -214
  12. package/src/lib/angular-vite-plugin.js.map +1 -1
  13. package/src/lib/component-resolvers.js +1 -1
  14. package/src/lib/component-resolvers.js.map +1 -1
  15. package/src/lib/host.d.ts +0 -5
  16. package/src/lib/host.js +5 -80
  17. package/src/lib/host.js.map +1 -1
  18. package/src/lib/live-reload-plugin.d.ts +6 -0
  19. package/src/lib/live-reload-plugin.js +63 -0
  20. package/src/lib/live-reload-plugin.js.map +1 -0
  21. package/src/lib/models.d.ts +11 -0
  22. package/src/lib/models.js +2 -0
  23. package/src/lib/models.js.map +1 -0
  24. package/src/lib/nx-folder-plugin.d.ts +7 -0
  25. package/src/lib/nx-folder-plugin.js +18 -0
  26. package/src/lib/nx-folder-plugin.js.map +1 -0
  27. package/src/lib/plugins/file-replacements.plugin.d.ts +12 -0
  28. package/src/lib/plugins/file-replacements.plugin.js +64 -0
  29. package/src/lib/plugins/file-replacements.plugin.js.map +1 -0
  30. package/src/lib/tools/README.md +3 -0
  31. package/src/lib/tools/builders.json +15 -0
  32. package/src/lib/tools/package.json +8 -0
  33. package/src/lib/tools/src/builders/vite/schema.d.ts +6 -0
  34. package/src/lib/tools/src/builders/vite/schema.json +39 -0
  35. package/src/lib/tools/src/builders/vite/vite-build.impl.d.ts +2 -0
  36. package/src/lib/tools/src/builders/vite/vite-build.impl.js +38 -0
  37. package/src/lib/tools/src/builders/vite/vite-build.impl.js.map +1 -0
  38. package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.d.ts +2 -0
  39. package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js +62 -0
  40. package/src/lib/tools/src/builders/vite-dev-server/dev-server.impl.js.map +1 -0
  41. package/src/lib/tools/src/builders/vite-dev-server/schema.d.ts +5 -0
  42. package/src/lib/tools/src/builders/vite-dev-server/schema.json +25 -0
  43. package/src/lib/tools/src/index.d.ts +0 -0
  44. package/src/lib/tools/src/index.js +1 -0
  45. package/src/lib/tools/src/index.js.map +1 -0
  46. package/src/lib/utils/devkit.js +3 -11
  47. package/src/lib/utils/devkit.js.map +1 -1
  48. package/src/lib/utils/hmr-candidates.js +40 -12
  49. package/src/lib/utils/hmr-candidates.js.map +1 -1
  50. package/esbuild.d.ts +0 -3
  51. package/esbuild.js +0 -31
  52. package/esbuild.js.map +0 -1
  53. package/src/lib/authoring/analog.d.ts +0 -1
  54. package/src/lib/authoring/analog.js +0 -550
  55. package/src/lib/authoring/analog.js.map +0 -1
  56. package/src/lib/authoring/constants.d.ts +0 -26
  57. package/src/lib/authoring/constants.js +0 -47
  58. package/src/lib/authoring/constants.js.map +0 -1
  59. package/src/lib/authoring/frontmatter.d.ts +0 -2
  60. package/src/lib/authoring/frontmatter.js +0 -26
  61. package/src/lib/authoring/frontmatter.js.map +0 -1
  62. package/src/lib/authoring/markdown-transform.d.ts +0 -4
  63. package/src/lib/authoring/markdown-transform.js +0 -19
  64. package/src/lib/authoring/markdown-transform.js.map +0 -1
  65. package/src/lib/authoring/marked-setup.service.d.ts +0 -23
  66. package/src/lib/authoring/marked-setup.service.js +0 -118
  67. package/src/lib/authoring/marked-setup.service.js.map +0 -1
@@ -1,26 +0,0 @@
1
- export async function getFrontmatterMetadata(content, id, transforms) {
2
- const fm = await import('front-matter');
3
- // The `default` property will be available in CommonJS environment, for instance,
4
- // when running unit tests. It's safe to retrieve `default` first, since we still
5
- // fallback to the original implementation.
6
- const frontmatterFn = fm.default || fm;
7
- let vfile = {};
8
- for (const transform of transforms) {
9
- const result = await transform(content, id);
10
- vfile = typeof result === 'object' ? result : vfile;
11
- }
12
- const safeVFile = {
13
- path: vfile.path,
14
- data: vfile.data,
15
- messages: vfile.messages,
16
- history: vfile.history,
17
- cwd: vfile.cwd,
18
- };
19
- const { attributes } = frontmatterFn(content);
20
- const combinedMetadata = {
21
- ...attributes,
22
- vfile: safeVFile,
23
- };
24
- return `\n\nexport const metadata = ${JSON.stringify(combinedMetadata)}`;
25
- }
26
- //# sourceMappingURL=frontmatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/frontmatter.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,EAAU,EACV,UAAuC;IAEvC,MAAM,EAAE,GAAQ,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7C,kFAAkF;IAClF,iFAAiF;IACjF,2CAA2C;IAC3C,MAAM,aAAa,GACjB,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;IAEnB,IAAI,KAAK,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5C,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,EAAE,KAAK,CAAC,GAAG;KACf,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,gBAAgB,GAAG;QACvB,GAAG,UAAU;QACb,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,OAAO,+BAA+B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC3E,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type VFile } from 'vfile';
2
- export type MarkdownTemplateTransform = (content: string, fileName: string) => string | Promise<string> | Promise<VFile>;
3
- export declare const defaultMarkdownTemplateTransform: MarkdownTemplateTransform;
4
- export declare const defaultMarkdownTemplateTransforms: MarkdownTemplateTransform[];
@@ -1,19 +0,0 @@
1
- import { FRONTMATTER_REGEX } from './constants.js';
2
- let markedSetupServicePromise;
3
- export const defaultMarkdownTemplateTransform = async (content) => {
4
- if (!markedSetupServicePromise) {
5
- // set immediately to prevent other calls from seeing markedSetupServicePromise as
6
- // undefined - can't use await here
7
- markedSetupServicePromise = import('./marked-setup.service.js').then(({ MarkedSetupService }) => new MarkedSetupService());
8
- }
9
- // read template sections, parse markdown
10
- const markedSetupService = await markedSetupServicePromise;
11
- const mdContent = markedSetupService
12
- .getMarkedInstance()
13
- .parse(content.replace(FRONTMATTER_REGEX, ''));
14
- return mdContent;
15
- };
16
- export const defaultMarkdownTemplateTransforms = [
17
- defaultMarkdownTemplateTransform,
18
- ];
19
- //# sourceMappingURL=markdown-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-transform.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/markdown-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,IAAI,yBAAkE,CAAC;AAEvE,MAAM,CAAC,MAAM,gCAAgC,GAC3C,KAAK,EAAE,OAAe,EAAE,EAAE;IACxB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,kFAAkF;QAClF,mCAAmC;QACnC,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAClE,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,IAAI,kBAAkB,EAAE,CACrD,CAAC;IACJ,CAAC;IACD,yCAAyC;IACzC,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC;IAE3D,MAAM,SAAS,GAAG,kBAAkB;SACjC,iBAAiB,EAAE;SACnB,KAAK,CACJ,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CACT,CAAC;IAElC,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,iCAAiC,GAAgC;IAC5E,gCAAgC;CACjC,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Credit goes to Scully for original implementation
3
- * https://github.com/scullyio/scully/blob/main/libs/scully/src/lib/fileHanderPlugins/markdown.ts
4
- */
5
- import { marked } from 'marked';
6
- import 'prismjs';
7
- import 'prismjs/components/prism-bash.js';
8
- import 'prismjs/components/prism-css.js';
9
- import 'prismjs/components/prism-javascript.js';
10
- import 'prismjs/components/prism-json.js';
11
- import 'prismjs/components/prism-markup.js';
12
- import 'prismjs/components/prism-typescript.js';
13
- import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
14
- import 'prismjs/plugins/toolbar/prism-toolbar.js';
15
- export declare class MarkedSetupService {
16
- private readonly marked;
17
- constructor();
18
- escapeBreakingCharacters(code: string): string;
19
- detectAngularComponent(text: string): boolean;
20
- detectAngularControlFlow(text: string): boolean;
21
- decodeHtmlEntities(text: string): string;
22
- getMarkedInstance(): typeof marked;
23
- }
@@ -1,118 +0,0 @@
1
- /**
2
- * Credit goes to Scully for original implementation
3
- * https://github.com/scullyio/scully/blob/main/libs/scully/src/lib/fileHanderPlugins/markdown.ts
4
- */
5
- import { marked } from 'marked';
6
- import { gfmHeadingId } from 'marked-gfm-heading-id';
7
- import { markedHighlight } from 'marked-highlight';
8
- import 'prismjs';
9
- import 'prismjs/components/prism-bash.js';
10
- import 'prismjs/components/prism-css.js';
11
- import 'prismjs/components/prism-javascript.js';
12
- import 'prismjs/components/prism-json.js';
13
- import 'prismjs/components/prism-markup.js';
14
- import 'prismjs/components/prism-typescript.js';
15
- import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js';
16
- import 'prismjs/plugins/toolbar/prism-toolbar.js';
17
- export class MarkedSetupService {
18
- marked;
19
- constructor() {
20
- const renderer = new marked.Renderer();
21
- renderer.codespan = ({ text }) => {
22
- const code = this.escapeBreakingCharacters(text);
23
- return `<code>${code}</code>`;
24
- };
25
- renderer.paragraph = ({ text }) => {
26
- if (this.detectAngularComponent(text) ||
27
- this.detectAngularControlFlow(text)) {
28
- return this.decodeHtmlEntities(text.trim());
29
- }
30
- return `<p>${text}</p>`;
31
- };
32
- renderer.code = ({ text, lang }) => {
33
- const code = this.escapeBreakingCharacters(text);
34
- // Let's do a language based detection like on GitHub
35
- // So we can still have non-interpreted mermaid code
36
- if (lang === 'mermaid') {
37
- return '<pre class="mermaid">' + code + '</pre>';
38
- }
39
- if (!lang) {
40
- return '<pre><code>' + code + '</code></pre>';
41
- }
42
- const classes = lang.startsWith('diff') && Prism.languages['diff']
43
- ? `language-${lang} diff-highlight`
44
- : `language-${lang.replace('diff-', '')}`;
45
- return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`;
46
- };
47
- marked.use(gfmHeadingId(), markedHighlight({
48
- async: true,
49
- highlight: (code, lang) => {
50
- let diff = lang?.startsWith('diff-');
51
- lang = diff ? lang.replace('diff-', '') : lang || 'typescript';
52
- if (diff && !Prism.languages['diff']) {
53
- diff = false;
54
- console.warn(`Notice:
55
- ---------------------------------------------------------------------------------------
56
- The \`diff\` language and plugin are not available in the provided setup.
57
- To enable it, add the following imports your \`main.ts\`:
58
- import 'prismjs/components/prism-diff';
59
- import 'prismjs/plugins/diff-highlight/prism-diff-highlight';
60
- ---------------------------------------------------------------------------------------
61
- `);
62
- }
63
- if (!Prism.languages[lang]) {
64
- if (lang !== 'mermaid') {
65
- console.warn(`Notice:
66
- ---------------------------------------------------------------------------------------
67
- The requested language '${lang}' is not available in the provided setup.
68
- To enable it, add the following import your \`main.ts\`:
69
- import 'prismjs/components/prism-${lang}';
70
- ---------------------------------------------------------------------------------------
71
- `);
72
- }
73
- return code;
74
- }
75
- return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang);
76
- },
77
- }), {
78
- async: false,
79
- renderer,
80
- pedantic: false,
81
- gfm: true,
82
- breaks: false,
83
- });
84
- this.marked = marked;
85
- }
86
- escapeBreakingCharacters(code) {
87
- // Escape commonly used HTML characters
88
- // in Angular templates that cause template parse errors
89
- // such as @, {, and ,}.
90
- code = code.replace(/@/g, '&#64;');
91
- if (code.includes('>{<') || code.includes('>}<')) {
92
- code = code.replace(/>\{</g, '>&#x2774;<').replace(/>\}</g, '>&#x2775;<');
93
- }
94
- return code;
95
- }
96
- detectAngularComponent(text) {
97
- return text.trim().startsWith('&lt;') && text.trim().endsWith('/&gt;');
98
- }
99
- detectAngularControlFlow(text) {
100
- return ((text.trim().startsWith('@if') ||
101
- text.trim().startsWith('@for') ||
102
- text.trim().startsWith('@switch') ||
103
- text.trim().startsWith('@defer')) &&
104
- text.trim().endsWith('}'));
105
- }
106
- decodeHtmlEntities(text) {
107
- return text
108
- .replace(/&lt;/g, '<')
109
- .replace(/&gt;/g, '>')
110
- .replace(/&quot;/g, '"')
111
- .replace(/&#39;/g, "'")
112
- .replace(/&amp;/g, '&');
113
- }
114
- getMarkedInstance() {
115
- return this.marked;
116
- }
117
- }
118
- //# sourceMappingURL=marked-setup.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marked-setup.service.js","sourceRoot":"","sources":["../../../../../../packages/vite-plugin-angular/src/lib/authoring/marked-setup.service.ts"],"names":[],"mappings":"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"}