@analogjs/platform 0.1.0-beta.2 → 0.1.0-beta.21

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 (84) hide show
  1. package/package.json +4 -2
  2. package/src/lib/build-server.d.ts +3 -0
  3. package/src/lib/build-server.js +23 -0
  4. package/src/lib/content-plugin.d.ts +12 -0
  5. package/src/lib/content-plugin.js +58 -0
  6. package/src/lib/nx-plugin/README.md +23 -0
  7. package/src/lib/nx-plugin/generators.json +19 -0
  8. package/src/lib/nx-plugin/package.json +13 -0
  9. package/src/lib/nx-plugin/src/generators/app/compat.d.ts +2 -0
  10. package/src/lib/nx-plugin/src/generators/app/compat.js +6 -0
  11. package/src/lib/nx-plugin/src/generators/app/compat.js.map +1 -0
  12. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/.eslintrc.json__template__ +36 -0
  13. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/index.html__template__ +15 -0
  14. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.spec.ts__template__ +17 -0
  15. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.ts__template__ +20 -0
  16. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/pages/index.page.ts__template__ +62 -0
  17. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/favicon.ico__template__ +0 -0
  18. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.providers.ts__template__ +5 -0
  19. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.server.ts__template__ +23 -0
  20. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.ts__template__ +10 -0
  21. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/.gitkeep__template__ +0 -0
  22. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/analog.svg__template__ +1 -0
  23. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/vite.svg__template__ +1 -0
  24. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/server/routes/v1/hello.ts__template__ +3 -0
  25. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/styles.css__template__ +75 -0
  26. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/test-setup.ts__template__ +12 -0
  27. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/vite-env.d.ts__template__ +1 -0
  28. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.app.json__template__ +16 -0
  29. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.editor.json__template__ +7 -0
  30. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.json__template__ +32 -0
  31. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.spec.json__template__ +15 -0
  32. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/vite.config.ts__template__ +64 -0
  33. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/.eslintrc.json__template__ +36 -0
  34. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/index.html__template__ +15 -0
  35. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/app.component.spec.ts__template__ +17 -0
  36. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/app.component.ts__template__ +20 -0
  37. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/app/pages/index.page.ts__template__ +62 -0
  38. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/favicon.ico__template__ +0 -0
  39. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.providers.ts__template__ +5 -0
  40. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.server.ts__template__ +23 -0
  41. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/main.ts__template__ +10 -0
  42. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/.gitkeep__template__ +0 -0
  43. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/analog.svg__template__ +1 -0
  44. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/public/assets/vite.svg__template__ +1 -0
  45. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/server/routes/v1/hello.ts__template__ +3 -0
  46. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/styles.css__template__ +75 -0
  47. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/test-setup.ts__template__ +12 -0
  48. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/src/vite-env.d.ts__template__ +1 -0
  49. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.app.json__template__ +16 -0
  50. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.editor.json__template__ +7 -0
  51. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.json__template__ +32 -0
  52. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/tsconfig.spec.json__template__ +15 -0
  53. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v16/vite.config.ts__template__ +64 -0
  54. package/src/lib/nx-plugin/src/generators/app/files/versions.d.ts +26 -0
  55. package/src/lib/nx-plugin/src/generators/app/files/versions.js +36 -0
  56. package/src/lib/nx-plugin/src/generators/app/files/versions.js.map +1 -0
  57. package/src/lib/nx-plugin/src/generators/app/generator.d.ts +10 -0
  58. package/src/lib/nx-plugin/src/generators/app/generator.js +83 -0
  59. package/src/lib/nx-plugin/src/generators/app/generator.js.map +1 -0
  60. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.d.ts +2 -0
  61. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js +80 -0
  62. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js.map +1 -0
  63. package/src/lib/nx-plugin/src/generators/app/schema.d.ts +6 -0
  64. package/src/lib/nx-plugin/src/generators/app/schema.json +34 -0
  65. package/src/lib/nx-plugin/src/index.d.ts +0 -0
  66. package/src/lib/nx-plugin/src/index.js +1 -0
  67. package/src/lib/nx-plugin/src/index.js.map +1 -0
  68. package/src/lib/nx-plugin/src/utils/version-utils.d.ts +2 -0
  69. package/src/lib/nx-plugin/src/utils/version-utils.js +18 -0
  70. package/src/lib/nx-plugin/src/utils/version-utils.js.map +1 -0
  71. package/src/lib/options.d.ts +19 -0
  72. package/src/lib/platform-plugin.js +25 -4
  73. package/src/lib/router-plugin.d.ts +1 -1
  74. package/src/lib/router-plugin.js +17 -2
  75. package/src/lib/runtime/api-middleware.js +16 -0
  76. package/src/lib/runtime/renderer.js +19 -0
  77. package/src/lib/ssr/build.d.ts +3 -0
  78. package/src/lib/ssr/build.js +18 -0
  79. package/src/lib/ssr/dev-server-plugin.d.ts +7 -0
  80. package/src/lib/ssr/dev-server-plugin.js +90 -0
  81. package/src/lib/ssr/ssr-build-plugin.d.ts +2 -0
  82. package/src/lib/ssr/ssr-build-plugin.js +35 -0
  83. package/src/lib/vite-nitro-plugin.d.ts +2 -1
  84. package/src/lib/vite-nitro-plugin.js +76 -25
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ const path = require("path");
6
+ const semver_1 = require("semver");
7
+ const version_utils_1 = require("../../utils/version-utils");
8
+ const add_analog_project_config_1 = require("./lib/add-analog-project-config");
9
+ const versions_1 = require("./files/versions");
10
+ function normalizeOptions(tree, options) {
11
+ const allNames = (0, devkit_1.names)(options.name);
12
+ const name = allNames.fileName;
13
+ const projectDirectory = options.directory
14
+ ? `${(0, devkit_1.names)(options.directory).fileName}/${name}`
15
+ : name;
16
+ const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
17
+ const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(tree).appsDir}/${projectDirectory}`;
18
+ const parsedTags = options.tags
19
+ ? options.tags.split(',').map((s) => s.trim())
20
+ : [];
21
+ const offsetFromRoot = (0, devkit_1.offsetFromRoot)(projectRoot);
22
+ return Object.assign(Object.assign(Object.assign({}, options), allNames), { projectName,
23
+ projectRoot,
24
+ projectDirectory,
25
+ parsedTags,
26
+ offsetFromRoot });
27
+ }
28
+ function addDependencies(tree, majorAngularVersion) {
29
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
+ const dependencies = {
31
+ '@analogjs/content': majorAngularVersion === 15
32
+ ? versions_1.V15_ANALOG_JS_CONTENT
33
+ : versions_1.V16_ANALOG_JS_CONTENT,
34
+ '@analogjs/router': majorAngularVersion === 15 ? versions_1.V15_ANALOG_JS_ROUTER : versions_1.V16_ANALOG_JS_ROUTER,
35
+ '@angular/platform-server': majorAngularVersion === 15
36
+ ? versions_1.V15_ANGULAR_PLATFORM_SERVER
37
+ : versions_1.V16_ANGULAR_PLATFORM_SERVER,
38
+ 'front-matter': majorAngularVersion === 15 ? versions_1.V15_FRONT_MATTER : versions_1.V16_FRONT_MATTER,
39
+ marked: majorAngularVersion === 15 ? versions_1.V15_MARKED : versions_1.V16_MARKED,
40
+ prismjs: majorAngularVersion === 15 ? versions_1.V15_PRISMJS : versions_1.V16_PRISMJS,
41
+ };
42
+ const devDependencies = {
43
+ '@analogjs/platform': majorAngularVersion === 15
44
+ ? versions_1.V15_ANALOG_JS_PLATFORM
45
+ : versions_1.V16_ANALOG_JS_PLATFORM,
46
+ '@nrwl/vite': majorAngularVersion === 15 ? versions_1.V15_NRWL_VITE : versions_1.V16_NRWL_VITE,
47
+ jsdom: majorAngularVersion === 15 ? versions_1.V15_JSDOM : versions_1.V16_JSDOM,
48
+ typescript: majorAngularVersion === 15 ? versions_1.V15_TYPESCRIPT : versions_1.V16_TYPESCRIPT,
49
+ vite: majorAngularVersion === 15 ? versions_1.V15_VITE : versions_1.V16_VITE,
50
+ 'vite-tsconfig-paths': majorAngularVersion === 15
51
+ ? versions_1.V15_VITE_TSCONFIG_PATHS
52
+ : versions_1.V16_VITE_TSCONFIG_PATHS,
53
+ vitest: majorAngularVersion === 15 ? versions_1.V15_VITEST : versions_1.V16_VITEST,
54
+ };
55
+ (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies);
56
+ });
57
+ }
58
+ function addFiles(tree, options, majorAngularVersion) {
59
+ const templateOptions = Object.assign(Object.assign({}, options), { template: '' });
60
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files', 'template-angular-v' + majorAngularVersion), options.projectRoot, templateOptions);
61
+ }
62
+ function default_1(tree, options) {
63
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
+ const installedAngularVersion = (0, version_utils_1.getInstalledAngularVersion)(tree, '16.0.0-next.0');
65
+ const installedMajorAngularVersion = (0, semver_1.major)(installedAngularVersion);
66
+ const normalizedOptions = normalizeOptions(tree, options);
67
+ const { projectRoot, projectName, parsedTags, name } = normalizedOptions;
68
+ if ((0, semver_1.lt)(installedAngularVersion, '15.0.0')) {
69
+ throw new Error((0, devkit_1.stripIndents) `AnalogJs only supports an Angular version of 15 and higher`);
70
+ }
71
+ yield addDependencies(tree, installedMajorAngularVersion);
72
+ (0, add_analog_project_config_1.addAnalogProjectConfig)(tree, projectRoot, projectName, parsedTags, name);
73
+ addFiles(tree, normalizedOptions, installedMajorAngularVersion);
74
+ if (!normalizedOptions.skipFormat) {
75
+ yield (0, devkit_1.formatFiles)(tree);
76
+ }
77
+ return () => {
78
+ (0, devkit_1.installPackagesTask)(tree);
79
+ };
80
+ });
81
+ }
82
+ exports.default = default_1;
83
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../../../packages/nx-plugin/src/generators/app/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Tree } from '@nrwl/devkit';
2
+ export declare function addAnalogProjectConfig(tree: Tree, projectRoot: string, projectName: string, parsedTags: string[], name: string): void;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addAnalogProjectConfig = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ function addAnalogProjectConfig(tree, projectRoot, projectName, parsedTags, name) {
6
+ const projectConfiguration = {
7
+ root: projectRoot,
8
+ projectType: 'application',
9
+ sourceRoot: `${projectRoot}/src`,
10
+ targets: {
11
+ build: {
12
+ executor: '@nrwl/vite:build',
13
+ outputs: [
14
+ '{options.outputPath}',
15
+ `dist/apps/${projectName}/.nitro`,
16
+ `dist/apps/${projectName}/ssr`,
17
+ `dist/apps/${projectName}/analog`,
18
+ ],
19
+ options: {
20
+ configFile: 'vite.config.ts',
21
+ outputPath: `dist/apps/${projectName}/client`,
22
+ },
23
+ defaultConfiguration: 'production',
24
+ configurations: {
25
+ development: {
26
+ mode: 'development',
27
+ },
28
+ production: {
29
+ sourcemap: false,
30
+ mode: 'production',
31
+ },
32
+ },
33
+ },
34
+ serve: {
35
+ executor: '@nrwl/vite:dev-server',
36
+ defaultConfiguration: 'development',
37
+ options: {
38
+ buildTarget: `${projectName}:build`,
39
+ port: 4200,
40
+ },
41
+ configurations: {
42
+ development: {
43
+ buildTarget: `${projectName}:build:development`,
44
+ hmr: true,
45
+ },
46
+ production: {
47
+ buildTarget: `${projectName}:build:production`,
48
+ },
49
+ },
50
+ },
51
+ 'extract-i18n': {
52
+ executor: '@angular-devkit/build-angular:extract-i18n',
53
+ options: {
54
+ browserTarget: `${projectName}:build`,
55
+ },
56
+ },
57
+ lint: {
58
+ executor: '@nrwl/linter:eslint',
59
+ outputs: ['{options.outputFile}'],
60
+ options: {
61
+ lintFilePatterns: [
62
+ `apps/${projectName}/**/*.ts`,
63
+ `apps/${projectName}/**/*.html`,
64
+ ],
65
+ },
66
+ },
67
+ test: {
68
+ executor: '@nrwl/vite:test',
69
+ outputs: [`apps/${projectName}/coverage`],
70
+ options: {
71
+ config: 'vite.config.ts',
72
+ },
73
+ },
74
+ },
75
+ tags: parsedTags,
76
+ };
77
+ (0, devkit_1.addProjectConfiguration)(tree, name, projectConfiguration);
78
+ }
79
+ exports.addAnalogProjectConfig = addAnalogProjectConfig;
80
+ //# sourceMappingURL=add-analog-project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-analog-project-config.js","sourceRoot":"","sources":["../../../../../../../../../../packages/nx-plugin/src/generators/app/lib/add-analog-project-config.ts"],"names":[],"mappings":";;;AACA,yCAAuD;AAEvD,SAAgB,sBAAsB,CACpC,IAAU,EACV,WAAmB,EACnB,WAAmB,EACnB,UAAoB,EACpB,IAAY;IAEZ,MAAM,oBAAoB,GAAyB;QACjD,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,GAAG,WAAW,MAAM;QAChC,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,OAAO,EAAE;oBACP,sBAAsB;oBACtB,aAAa,WAAW,SAAS;oBACjC,aAAa,WAAW,MAAM;oBAC9B,aAAa,WAAW,SAAS;iBAClC;gBACD,OAAO,EAAE;oBACP,UAAU,EAAE,gBAAgB;oBAC5B,UAAU,EAAE,aAAa,WAAW,SAAS;iBAC9C;gBACD,oBAAoB,EAAE,YAAY;gBAClC,cAAc,EAAE;oBACd,WAAW,EAAE;wBACX,IAAI,EAAE,aAAa;qBACpB;oBACD,UAAU,EAAE;wBACV,SAAS,EAAE,KAAK;wBAChB,IAAI,EAAE,YAAY;qBACnB;iBACF;aACF;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,uBAAuB;gBACjC,oBAAoB,EAAE,aAAa;gBACnC,OAAO,EAAE;oBACP,WAAW,EAAE,GAAG,WAAW,QAAQ;oBACnC,IAAI,EAAE,IAAI;iBACX;gBACD,cAAc,EAAE;oBACd,WAAW,EAAE;wBACX,WAAW,EAAE,GAAG,WAAW,oBAAoB;wBAC/C,GAAG,EAAE,IAAI;qBACV;oBACD,UAAU,EAAE;wBACV,WAAW,EAAE,GAAG,WAAW,mBAAmB;qBAC/C;iBACF;aACF;YACD,cAAc,EAAE;gBACd,QAAQ,EAAE,4CAA4C;gBACtD,OAAO,EAAE;oBACP,aAAa,EAAE,GAAG,WAAW,QAAQ;iBACtC;aACF;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,qBAAqB;gBAC/B,OAAO,EAAE,CAAC,sBAAsB,CAAC;gBACjC,OAAO,EAAE;oBACP,gBAAgB,EAAE;wBAChB,QAAQ,WAAW,UAAU;wBAC7B,QAAQ,WAAW,YAAY;qBAChC;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,CAAC,QAAQ,WAAW,WAAW,CAAC;gBACzC,OAAO,EAAE;oBACP,MAAM,EAAE,gBAAgB;iBACzB;aACF;SACF;QACD,IAAI,EAAE,UAAU;KACjB,CAAC;IAEF,IAAA,gCAAuB,EAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AAC5D,CAAC;AAhFD,wDAgFC"}
@@ -0,0 +1,6 @@
1
+ export interface AnalogNxApplicationGeneratorOptions {
2
+ name: string;
3
+ tags?: string;
4
+ directory?: string;
5
+ skipFormat?: boolean;
6
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "$id": "app",
5
+ "title": "",
6
+ "type": "object",
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "description": "",
11
+ "$default": {
12
+ "$source": "argv",
13
+ "index": 0
14
+ },
15
+ "x-prompt": "What name would you like to use?"
16
+ },
17
+ "tags": {
18
+ "type": "string",
19
+ "description": "Add tags to the project (used for linting)",
20
+ "alias": "t"
21
+ },
22
+ "directory": {
23
+ "type": "string",
24
+ "description": "A directory where the project is placed"
25
+ },
26
+ "skipFormat": {
27
+ "description": "Skip formatting files.",
28
+ "type": "boolean",
29
+ "default": false,
30
+ "x-priority": "internal"
31
+ }
32
+ },
33
+ "required": ["name"]
34
+ }
File without changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Tree } from '@nrwl/devkit';
2
+ export declare function getInstalledAngularVersion(tree: Tree, defaultVersion: string): string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getInstalledAngularVersion = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ const semver_1 = require("semver");
6
+ function getInstalledAngularVersion(tree, defaultVersion) {
7
+ var _a, _b;
8
+ const pkgJson = (0, devkit_1.readJson)(tree, 'package.json');
9
+ const installedAngularVersion = pkgJson.dependencies && pkgJson.dependencies['@angular/core'];
10
+ if (!installedAngularVersion ||
11
+ installedAngularVersion === 'latest' ||
12
+ installedAngularVersion === 'next') {
13
+ return (_a = (0, semver_1.clean)(defaultVersion)) !== null && _a !== void 0 ? _a : (0, semver_1.coerce)(defaultVersion).version;
14
+ }
15
+ return ((_b = (0, semver_1.clean)(installedAngularVersion)) !== null && _b !== void 0 ? _b : (0, semver_1.coerce)(installedAngularVersion).version);
16
+ }
17
+ exports.getInstalledAngularVersion = getInstalledAngularVersion;
18
+ //# sourceMappingURL=version-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../../../../../../../packages/nx-plugin/src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAC9C,mCAAuC;AAEvC,SAAgB,0BAA0B,CACxC,IAAU,EACV,cAAsB;;IAEtB,MAAM,OAAO,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,uBAAuB,GAC3B,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAChE,IACE,CAAC,uBAAuB;QACxB,uBAAuB,KAAK,QAAQ;QACpC,uBAAuB,KAAK,MAAM,EAClC;QACA,OAAO,MAAA,IAAA,cAAK,EAAC,cAAc,CAAC,mCAAI,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC;KAChE;IAED,OAAO,CACL,MAAA,IAAA,cAAK,EAAC,uBAAuB,CAAC,mCAAI,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAC,OAAO,CAC1E,CAAC;AACJ,CAAC;AAlBD,gEAkBC"}
@@ -1,6 +1,25 @@
1
1
  import type { PluginOptions } from '@analogjs/vite-plugin-angular';
2
2
  import { NitroConfig } from 'nitropack';
3
+ export interface PrerenderOptions {
4
+ /**
5
+ * Add additional routes to prerender through crawling page links.
6
+ */
7
+ discover?: boolean;
8
+ /**
9
+ * List of routes to prerender resolved statically or dynamically.
10
+ */
11
+ routes?: string[] | (() => Promise<(string | undefined)[]>);
12
+ }
3
13
  export interface Options {
14
+ ssr?: boolean;
15
+ ssrBuildDir?: string;
16
+ /**
17
+ * Prerender the static pages without producing the server output.
18
+ */
19
+ static?: boolean;
20
+ prerender?: PrerenderOptions;
21
+ entryServer?: string;
4
22
  vite?: PluginOptions;
5
23
  nitro?: NitroConfig;
24
+ apiPrefix?: string;
6
25
  }
@@ -4,12 +4,33 @@ exports.platformPlugin = void 0;
4
4
  const vite_plugin_angular_1 = require("@analogjs/vite-plugin-angular");
5
5
  const vite_nitro_plugin_1 = require("./vite-nitro-plugin");
6
6
  const router_plugin_1 = require("./router-plugin");
7
- function platformPlugin(opts) {
7
+ const dev_server_plugin_1 = require("./ssr/dev-server-plugin");
8
+ const ssr_build_plugin_1 = require("./ssr/ssr-build-plugin");
9
+ const content_plugin_1 = require("./content-plugin");
10
+ function platformPlugin(opts = {}) {
11
+ const { apiPrefix, ...platformOptions } = {
12
+ ssr: true,
13
+ ...opts,
14
+ };
15
+ let nitroOptions = platformOptions?.nitro;
16
+ if (apiPrefix) {
17
+ nitroOptions = {
18
+ ...nitroOptions,
19
+ runtimeConfig: {
20
+ apiPrefix,
21
+ },
22
+ };
23
+ }
8
24
  return [
9
- (0, vite_nitro_plugin_1.viteNitroPlugin)(opts?.nitro),
10
- ...(0, vite_plugin_angular_1.default)(opts?.vite),
25
+ (0, vite_nitro_plugin_1.viteNitroPlugin)(platformOptions, nitroOptions),
26
+ (platformOptions.ssr ? (0, ssr_build_plugin_1.ssrBuildPlugin)() : false),
11
27
  ...(0, router_plugin_1.routerPlugin)(),
28
+ ...(0, content_plugin_1.contentPlugin)(),
29
+ (platformOptions.ssr
30
+ ? (0, dev_server_plugin_1.devServerPlugin)({ entryServer: opts.entryServer })
31
+ : false),
32
+ ...(0, vite_plugin_angular_1.default)(opts?.vite),
12
33
  ];
13
34
  }
14
35
  exports.platformPlugin = platformPlugin;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUVBQW9EO0FBRXBELDJEQUFzRDtBQUN0RCxtREFBK0M7QUFFL0MsU0FBZ0IsY0FBYyxDQUFDLElBQWM7SUFDM0MsT0FBTztRQUNMLElBQUEsbUNBQWUsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQzVCLEdBQUcsSUFBQSw2QkFBTyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFDdEIsR0FBRyxJQUFBLDRCQUFZLEdBQUU7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFORCx3Q0FNQyJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUVBQW9EO0FBRXBELDJEQUFzRDtBQUN0RCxtREFBK0M7QUFDL0MsK0RBQTBEO0FBQzFELDZEQUF3RDtBQUN4RCxxREFBaUQ7QUFFakQsU0FBZ0IsY0FBYyxDQUFDLE9BQWdCLEVBQUU7SUFDL0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLGVBQWUsRUFBRSxHQUFHO1FBQ3hDLEdBQUcsRUFBRSxJQUFJO1FBQ1QsR0FBRyxJQUFJO0tBQ1IsQ0FBQztJQUVGLElBQUksWUFBWSxHQUFHLGVBQWUsRUFBRSxLQUFLLENBQUM7SUFDMUMsSUFBSSxTQUFTLEVBQUU7UUFDYixZQUFZLEdBQUc7WUFDYixHQUFHLFlBQVk7WUFDZixhQUFhLEVBQUU7Z0JBQ2IsU0FBUzthQUNWO1NBQ0YsQ0FBQztLQUNIO0lBRUQsT0FBTztRQUNMLElBQUEsbUNBQWUsRUFBQyxlQUFlLEVBQUUsWUFBWSxDQUFDO1FBQzlDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBQSxpQ0FBYyxHQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBVztRQUMxRCxHQUFHLElBQUEsNEJBQVksR0FBRTtRQUNqQixHQUFHLElBQUEsOEJBQWEsR0FBRTtRQUNsQixDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQ2xCLENBQUMsQ0FBQyxJQUFBLG1DQUFlLEVBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxLQUFLLENBQVc7UUFDcEIsR0FBRyxJQUFBLDZCQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQTFCRCx3Q0EwQkMifQ==
@@ -1,4 +1,4 @@
1
- import type { Plugin } from 'vite';
1
+ import { Plugin } from 'vite';
2
2
  /**
3
3
  * This plugin invalidates the files for routes when new files
4
4
  * are added/deleted.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.routerPlugin = void 0;
4
+ const vite_1 = require("vite");
4
5
  /**
5
6
  * This plugin invalidates the files for routes when new files
6
7
  * are added/deleted.
@@ -11,11 +12,25 @@ exports.routerPlugin = void 0;
11
12
  */
12
13
  function routerPlugin() {
13
14
  return [
15
+ {
16
+ name: 'analogjs-router-plugin',
17
+ config() {
18
+ return {
19
+ ssr: {
20
+ noExternal: ['@analogjs/**', '@angular/**'],
21
+ },
22
+ optimizeDeps: {
23
+ exclude: ['@angular/platform-server', '@analogjs/router'],
24
+ },
25
+ };
26
+ },
27
+ },
14
28
  {
15
29
  name: 'analogjs-router-invalidate-routes',
16
30
  configureServer(server) {
17
31
  function invalidateRoutes(path) {
18
- if (path.includes(`${server.config.root}/app/routes`)) {
32
+ if (path.includes((0, vite_1.normalizePath)(`/app/routes/`)) ||
33
+ path.includes((0, vite_1.normalizePath)(`/app/pages/`))) {
19
34
  server.moduleGraph.fileToModulesMap.forEach((mods) => {
20
35
  mods.forEach((mod) => {
21
36
  if (mod.id?.includes('@analogjs_router.js')) {
@@ -38,4 +53,4 @@ function routerPlugin() {
38
53
  ];
39
54
  }
40
55
  exports.routerPlugin = routerPlugin;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsWUFBWTtJQUMxQixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsbUNBQW1DO1lBQ3pDLGVBQWUsQ0FBQyxNQUFNO2dCQUNwQixTQUFTLGdCQUFnQixDQUFDLElBQVk7b0JBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRTt3QkFDckQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dDQUNuQixJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUU7b0NBQzNDLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7b0NBRXpDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0NBQzVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7b0NBQzNDLENBQUMsQ0FBQyxDQUFDO2lDQUNKOzRCQUNILENBQUMsQ0FBQyxDQUFDO3dCQUNMLENBQUMsQ0FBQyxDQUFDO3dCQUVILE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRCQUNiLElBQUksRUFBRSxhQUFhO3lCQUNwQixDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUE5QkQsb0NBOEJDIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNkM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFlBQVk7SUFDMUIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixNQUFNO2dCQUNKLE9BQU87b0JBQ0wsR0FBRyxFQUFFO3dCQUNILFVBQVUsRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7cUJBQzVDO29CQUNELFlBQVksRUFBRTt3QkFDWixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQztxQkFDMUQ7aUJBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxlQUFlLENBQUMsTUFBTTtnQkFDcEIsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO29CQUNwQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBQSxvQkFBYSxFQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUEsb0JBQWEsRUFBQyxhQUFhLENBQUMsQ0FBQyxFQUMzQzt3QkFDQSxNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFOzRCQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0NBQ25CLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRTtvQ0FDM0MsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FFekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDNUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FDM0MsQ0FBQyxDQUFDLENBQUM7aUNBQ0o7NEJBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0wsQ0FBQyxDQUFDLENBQUM7d0JBRUgsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7NEJBQ2IsSUFBSSxFQUFFLGFBQWE7eUJBQ3BCLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDO2dCQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTlDRCxvQ0E4Q0MifQ==
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This file is written in JavaScript
3
+ * because it is used by Nitro to build
4
+ * the renderer for SSR.
5
+ *
6
+ * The package is shipped as commonjs
7
+ * which won't be parsed by Nitro correctly.
8
+ */
9
+ import { eventHandler } from 'h3';
10
+
11
+ export default eventHandler(async (event) => {
12
+ const apiPrefix = import.meta.env.RUNTIME_CONFIG?.apiPrefix ?? '/api';
13
+ if (event.req.url?.startsWith(apiPrefix)) {
14
+ return $fetch(`${event.req.url?.replace(apiPrefix, '')}`);
15
+ }
16
+ });
@@ -0,0 +1,19 @@
1
+ /**
2
+ * This file is written in JavaScript
3
+ * because it is used by Nitro to build
4
+ * the renderer for SSR.
5
+ *
6
+ * The package is shipped as commonjs
7
+ * which won't be parsed by Nitro correctly.
8
+ */
9
+ import { eventHandler } from 'h3';
10
+ import { useStorage } from '#imports';
11
+
12
+ export default eventHandler(async (event) => {
13
+ const render = (await import('#build/../ssr/main.server.mjs'))['default'];
14
+ const template = await useStorage().getItem(`/assets/public:index.html`);
15
+
16
+ const html = await render(event.req.url, template);
17
+
18
+ return html;
19
+ });
@@ -0,0 +1,3 @@
1
+ import { UserConfig } from 'vite';
2
+ import { Options } from '../options';
3
+ export declare function buildSSRApp(config: UserConfig, options?: Options): Promise<void>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSSRApp = void 0;
4
+ const vite_1 = require("vite");
5
+ async function buildSSRApp(config, options) {
6
+ const ssrBuildConfig = (0, vite_1.mergeConfig)(config, {
7
+ build: {
8
+ ssr: true,
9
+ rollupOptions: {
10
+ input: options?.entryServer || './src/main.server.ts',
11
+ },
12
+ outDir: options?.ssrBuildDir || './dist/ssr',
13
+ },
14
+ });
15
+ await (0, vite_1.build)(ssrBuildConfig);
16
+ }
17
+ exports.buildSSRApp = buildSSRApp;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL3Nzci9idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBc0Q7QUFHL0MsS0FBSyxVQUFVLFdBQVcsQ0FBQyxNQUFrQixFQUFFLE9BQWlCO0lBQ3JFLE1BQU0sY0FBYyxHQUFHLElBQUEsa0JBQVcsRUFBQyxNQUFNLEVBQUU7UUFDekMsS0FBSyxFQUFFO1lBQ0wsR0FBRyxFQUFFLElBQUk7WUFDVCxhQUFhLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLElBQUksc0JBQXNCO2FBQ3REO1lBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLElBQUksWUFBWTtTQUM3QztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBQSxZQUFLLEVBQUMsY0FBYyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQVpELGtDQVlDIn0=
@@ -0,0 +1,7 @@
1
+ import { Plugin } from 'vite';
2
+ interface ServerOptions {
3
+ index?: string;
4
+ entryServer?: string;
5
+ }
6
+ export declare function devServerPlugin(options: ServerOptions): Plugin;
7
+ export {};
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ // SSR dev server, middleware and error page source modified from
3
+ // https://github.com/solidjs/solid-start/blob/main/packages/start/dev/server.js
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.devServerPlugin = void 0;
6
+ const path = require("path");
7
+ const fs = require("fs");
8
+ function devServerPlugin(options) {
9
+ const entryServer = options.entryServer || 'src/main.server.ts';
10
+ const index = options.index || 'index.html';
11
+ return {
12
+ name: 'analogjs-dev-ssr-plugin',
13
+ config() {
14
+ return {
15
+ resolve: {
16
+ alias: {
17
+ '~analog/entry-server': entryServer,
18
+ },
19
+ },
20
+ };
21
+ },
22
+ configureServer(viteServer) {
23
+ return async () => {
24
+ remove_html_middlewares(viteServer.middlewares);
25
+ viteServer.middlewares.use(async (req, res) => {
26
+ let template = fs.readFileSync(path.resolve(viteServer.config.root, index), 'utf-8');
27
+ template = await viteServer.transformIndexHtml(req.originalUrl, template);
28
+ try {
29
+ const entryServer = (await viteServer.ssrLoadModule('~analog/entry-server'))['default'];
30
+ const result = await entryServer(req.originalUrl, template);
31
+ res.end(result);
32
+ }
33
+ catch (e) {
34
+ viteServer && viteServer.ssrFixStacktrace(e);
35
+ res.statusCode = 500;
36
+ res.end(`
37
+ <!DOCTYPE html>
38
+ <html lang="en">
39
+ <head>
40
+ <meta charset="UTF-8" />
41
+ <title>Error</title>
42
+ <script type="module">
43
+ import { ErrorOverlay } from '/@vite/client'
44
+ document.body.appendChild(new ErrorOverlay(${JSON.stringify(prepareError(req, e)).replace(/</g, '\\u003c')}))
45
+ </script>
46
+ </head>
47
+ <body>
48
+ </body>
49
+ </html>
50
+ `);
51
+ throw e;
52
+ }
53
+ });
54
+ };
55
+ },
56
+ };
57
+ }
58
+ exports.devServerPlugin = devServerPlugin;
59
+ /**
60
+ * Removes Vite internal middleware
61
+ *
62
+ * @param server
63
+ */
64
+ function remove_html_middlewares(server) {
65
+ const html_middlewares = [
66
+ 'viteIndexHtmlMiddleware',
67
+ 'vite404Middleware',
68
+ 'viteSpaFallbackMiddleware',
69
+ ];
70
+ for (let i = server.stack.length - 1; i > 0; i--) {
71
+ // @ts-ignore
72
+ if (html_middlewares.includes(server.stack[i].handle.name)) {
73
+ server.stack.splice(i, 1);
74
+ }
75
+ }
76
+ }
77
+ /**
78
+ * Formats error for SSR message in error overlay
79
+ * @param req
80
+ * @param error
81
+ * @returns
82
+ */
83
+ function prepareError(req, error) {
84
+ const e = error;
85
+ return {
86
+ message: `An error occured while server rendering ${req.url}:\n\n\t${typeof e === 'string' ? e : e.message} `,
87
+ stack: typeof e === 'string' ? '' : e.stack,
88
+ };
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2LXNlcnZlci1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL3Nzci9kZXYtc2VydmVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUVBQWlFO0FBQ2pFLGdGQUFnRjs7O0FBR2hGLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUFPekIsU0FBZ0IsZUFBZSxDQUFDLE9BQXNCO0lBQ3BELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksb0JBQW9CLENBQUM7SUFDaEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUM7SUFFNUMsT0FBTztRQUNMLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTTtZQUNKLE9BQU87Z0JBQ0wsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRTt3QkFDTCxzQkFBc0IsRUFBRSxXQUFXO3FCQUNwQztpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsZUFBZSxDQUFDLFVBQVU7WUFDeEIsT0FBTyxLQUFLLElBQUksRUFBRTtnQkFDaEIsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoRCxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUM1QyxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUMzQyxPQUFPLENBQ1IsQ0FBQztvQkFFRixRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsa0JBQWtCLENBQzVDLEdBQUcsQ0FBQyxXQUFxQixFQUN6QixRQUFRLENBQ1QsQ0FBQztvQkFFRixJQUFJO3dCQUNGLE1BQU0sV0FBVyxHQUFHLENBQ2xCLE1BQU0sVUFBVSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUN2RCxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ2pCO29CQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNWLFVBQVUsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBVSxDQUFDLENBQUM7d0JBQ3RELEdBQUcsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO3dCQUNyQixHQUFHLENBQUMsR0FBRyxDQUFDOzs7Ozs7OztpRUFRNkMsSUFBSSxDQUFDLFNBQVMsQ0FDekQsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FDckIsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQzs7Ozs7O2FBTWpDLENBQUMsQ0FBQzt3QkFFSCxNQUFNLENBQUMsQ0FBQztxQkFDVDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQTlERCwwQ0E4REM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxNQUFvQztJQUNuRSxNQUFNLGdCQUFnQixHQUFHO1FBQ3ZCLHlCQUF5QjtRQUN6QixtQkFBbUI7UUFDbkIsMkJBQTJCO0tBQzVCLENBQUM7SUFDRixLQUFLLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2hELGFBQWE7UUFDYixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0I7S0FDRjtBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsWUFBWSxDQUFDLEdBQTRCLEVBQUUsS0FBYztJQUNoRSxNQUFNLENBQUMsR0FBRyxLQUFjLENBQUM7SUFDekIsT0FBTztRQUNMLE9BQU8sRUFBRSwyQ0FBMkMsR0FBRyxDQUFDLEdBQUcsVUFDekQsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUNoQyxHQUFHO1FBQ0gsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztLQUM1QyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import { Plugin } from 'vite';
2
+ export declare function ssrBuildPlugin(): Plugin;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ssrBuildPlugin = void 0;
4
+ const vite_1 = require("vite");
5
+ function ssrBuildPlugin() {
6
+ return {
7
+ name: 'analogjs-ssr-build-plugin',
8
+ config(_config) {
9
+ return {
10
+ resolve: {
11
+ alias: {
12
+ 'zone.js/node': 'zone.js/bundles/zone-node.umd.js',
13
+ },
14
+ },
15
+ };
16
+ },
17
+ transform(code, id) {
18
+ // Remove usage of `with()` in sloppy.js file
19
+ if (id.includes((0, vite_1.normalizePath)('domino/lib/sloppy.js'))) {
20
+ return {
21
+ code: code.replace(/with\(/gi, 'if('),
22
+ };
23
+ }
24
+ // Convert usage of xhr2 default import
25
+ if (code.includes('new xhr2.')) {
26
+ return {
27
+ code: code.replace('new xhr2.XMLHttpRequest', 'new xhr2.default.XMLHttpRequest'),
28
+ };
29
+ }
30
+ return;
31
+ },
32
+ };
33
+ }
34
+ exports.ssrBuildPlugin = ssrBuildPlugin;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTZDO0FBRTdDLFNBQWdCLGNBQWM7SUFDNUIsT0FBTztRQUNMLElBQUksRUFBRSwyQkFBMkI7UUFDakMsTUFBTSxDQUFDLE9BQU87WUFDWixPQUFPO2dCQUNMLE9BQU8sRUFBRTtvQkFDUCxLQUFLLEVBQUU7d0JBQ0wsY0FBYyxFQUFFLGtDQUFrQztxQkFDbkQ7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQiw2Q0FBNkM7WUFDN0MsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUEsb0JBQWEsRUFBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RELE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQztpQkFDdEMsQ0FBQzthQUNIO1lBRUQsdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDOUIsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FDaEIseUJBQXlCLEVBQ3pCLGlDQUFpQyxDQUNsQztpQkFDRixDQUFDO2FBQ0g7WUFFRCxPQUFPO1FBQ1QsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBakNELHdDQWlDQyJ9
@@ -1,3 +1,4 @@
1
1
  import { NitroConfig } from 'nitropack';
2
2
  import { Plugin } from 'vite';
3
- export declare function viteNitroPlugin(opts?: NitroConfig): Plugin;
3
+ import { Options } from './options';
4
+ export declare function viteNitroPlugin(options?: Options, nitroOptions?: NitroConfig): Plugin;