@marko/compiler 5.39.33 → 5.39.35

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.
@@ -1,4 +1,5 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _traverse = _interopRequireDefault(require("@babel/traverse"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _pluginTransformTypescript = _interopRequireDefault(require("@babel/plugin-transform-typescript"));
2
+ var _traverse = _interopRequireDefault(require("@babel/traverse"));
2
3
  var _path = _interopRequireDefault(require("path"));
3
4
 
4
5
  var t = _interopRequireWildcard(require("../babel-types"));
@@ -17,7 +18,8 @@ var _parser = require("./parser");
17
18
  var _migrate = require("./plugins/migrate");
18
19
  var _transform = require("./plugins/transform");function _interopRequireWildcard(e, t) {if ("function" == typeof WeakMap) var r = new WeakMap(),n = new WeakMap();return (_interopRequireWildcard = function (e, t) {if (!t && e && e.__esModule) return e;var o,i,f = { __proto__: null, default: e };if (null === e || "object" != typeof e && "function" != typeof e) return f;if (o = t ? n : r) {if (o.has(e)) return o.get(e);o.set(e, f);}for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);return f;})(e, t);}
19
20
 
20
- const SOURCE_FILES = new WeakMap();var _default =
21
+ const SOURCE_FILES = new WeakMap();
22
+ let stripTypesVisitor;var _default =
21
23
 
22
24
  (api, markoOpts) => {
23
25
  api.assertVersion(7);
@@ -46,6 +48,17 @@ const SOURCE_FILES = new WeakMap();var _default =
46
48
  );
47
49
  }
48
50
 
51
+ if (markoOpts.stripTypes) {
52
+ stripTypesVisitor ||= (0, _pluginTransformTypescript.default)(api, {
53
+ isTSX: false,
54
+ allowNamespaces: true,
55
+ allowDeclareFields: true,
56
+ optimizeConstEnums: true,
57
+ onlyRemoveTypeImports: true,
58
+ disallowAmbiguousJSXLike: false
59
+ }).visitor;
60
+ }
61
+
49
62
  let curOpts;
50
63
 
51
64
  return {
@@ -60,6 +73,14 @@ const SOURCE_FILES = new WeakMap();var _default =
60
73
  opts.parserOpts.allowUndeclaredExports =
61
74
  opts.parserOpts.allowNewTargetOutsideFunction =
62
75
  true;
76
+
77
+ opts.parserOpts.plugins.push("objectRestSpread", "classProperties", [
78
+ "typescript",
79
+ {
80
+ disallowAmbiguousJSXLike: false,
81
+ dts: false
82
+ }]
83
+ );
63
84
  curOpts = opts;
64
85
  },
65
86
  parserOverride(code) {
@@ -120,29 +141,7 @@ const SOURCE_FILES = new WeakMap();var _default =
120
141
  file.___getMarkoFile =
121
142
  undefined;
122
143
  }
123
- },
124
- visitor:
125
- markoOpts.stripTypes && isMarkoOutput(markoOpts.output) ?
126
- {
127
- MarkoClass(path) {
128
- // We replace the MarkoClass with a regular class declaration so babel can strip it's types.
129
- path.replaceWith(
130
- t.classDeclaration(t.identifier(""), null, path.node.body)
131
- );
132
- },
133
- ExportNamedDeclaration: {
134
- exit(path) {
135
- const { node } = path;
136
- // The babel typescript plugin will add an empty export declaration
137
- // if there are no other imports/exports in the file.
138
- // This is not needed for Marko file outputs since there is always
139
- // a default export.
140
- if (!(node.declaration || node.specifiers.length))
141
- path.remove();
142
- }
143
- }
144
- } :
145
- undefined
144
+ }
146
145
  };
147
146
  };exports.default = _default;
148
147
 
@@ -275,6 +274,24 @@ function getMarkoFile(code, fileOpts, markoOpts) {
275
274
  return file;
276
275
  }
277
276
 
277
+ file.___compileStage = "transform";
278
+ if (markoOpts.stripTypes) {
279
+ traverseAll(file, stripTypesVisitor);
280
+
281
+ for (const path of file.path.get("body")) {
282
+ if (
283
+ path.type === "ExportNamedDeclaration" &&
284
+ !(path.node.declaration || path.node.specifiers.length))
285
+ {
286
+ // The babel typescript plugin will add an empty export declaration
287
+ // if there are no other imports/exports in the file.
288
+ // This is not needed for Marko file outputs since there is always
289
+ // a default export.
290
+ path.remove();
291
+ }
292
+ }
293
+ }
294
+
278
295
  const rootTransformers = [];
279
296
  for (const id in taglibLookup.taglibsById) {
280
297
  for (const transformer of taglibLookup.taglibsById[id].transformers) {
@@ -286,7 +303,6 @@ function getMarkoFile(code, fileOpts, markoOpts) {
286
303
  if (translator.transform) {
287
304
  rootTransformers.push(translator.transform);
288
305
  }
289
- file.___compileStage = "transform";
290
306
  traverseAll(file, rootTransformers);
291
307
 
292
308
  for (const taglibId in taglibLookup.taglibsById) {
@@ -378,7 +394,7 @@ function traverseAll(file, visitors) {
378
394
  program.node,
379
395
  mergeVisitors(visitors),
380
396
  program.scope,
381
- program.state = {},
397
+ program.state = { file },
382
398
  program,
383
399
  true
384
400
  );
@@ -94,7 +94,7 @@ const MarkoDefinitions = {
94
94
  },
95
95
 
96
96
  MarkoClass: {
97
- aliases: ["Marko", "Statement"],
97
+ aliases: ["Marko", "Statement", "Class"],
98
98
  builder: ["body"],
99
99
  visitor: ["body"],
100
100
  fields: {
@@ -1,9 +1,8 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.importDefault = importDefault;exports.importNamed = importNamed;exports.importStar = importStar;exports.resolveRelativePath = resolveRelativePath;var _compiler = require("@marko/compiler");
2
+ var _modules = require("@marko/compiler/modules");
2
3
  var _path = _interopRequireDefault(require("path"));
3
4
  var _relativeImportPath = require("relative-import-path");
4
5
 
5
- var _modules = require("../../modules");
6
-
7
6
  const IMPORTS_KEY = Symbol();
8
7
  const FS_START = _path.default.sep === "/" ? _path.default.sep : /^(.*?:)/.exec(_modules.cwd)[1];
9
8
 
@@ -3,12 +3,12 @@ var _modules = _interopRequireDefault(require("@marko/compiler/modules"));
3
3
  var _lassoPackageRoot = require("lasso-package-root");
4
4
  var _path = require("path");
5
5
 
6
- var _modules2 = require("../../modules");
7
6
  var _quickHash = require("../util/quick-hash");
8
7
  var _diagnostics = require("./diagnostics");
9
8
  var _imports = require("./imports");
10
9
  var _taglib = require("./taglib");
11
10
 
11
+ const { cwd, root } = _modules.default;
12
12
  const MACRO_IDS_KEY = Symbol();
13
13
  const MACRO_NAMES_KEY = "__marko_macro_names__"; // must be a string literal since it is used across compiler stages.
14
14
  const TRANSPARENT_TAGS = new Set([
@@ -311,7 +311,7 @@ function resolveMarkoFile(file, filename) {
311
311
  const idCache = new WeakMap();
312
312
  const templateIdHashOpts = { outputLength: 5 };
313
313
  function getTemplateId(opts, request, child) {
314
- const id = (0, _path.relative)(_modules2.root, request).replace(/[^a-zA-Z0-9_$./-]/g, "/");
314
+ const id = (0, _path.relative)(root, request).replace(/[^a-zA-Z0-9_$./-]/g, "/");
315
315
  const optimize = typeof opts === "object" ? opts.optimize : opts;
316
316
 
317
317
  if (optimize) {
@@ -382,7 +382,7 @@ function resolveTagImport(path, request) {
382
382
  function createNewFileOpts(opts, filename) {
383
383
  const sourceFileName = (0, _path.basename)(filename);
384
384
  const sourceRoot = (0, _path.dirname)(filename);
385
- const filenameRelative = (0, _path.relative)(_modules2.cwd, filename);
385
+ const filenameRelative = (0, _path.relative)(cwd, filename);
386
386
  return {
387
387
  ...opts,
388
388
  filename,
package/dist/config.js CHANGED
@@ -1,6 +1,5 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _fs = _interopRequireDefault(require("fs"));
2
-
3
- var _modules = require("../modules");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _modules = require("@marko/compiler/modules");
2
+ var _fs = _interopRequireDefault(require("fs"));
4
3
 
5
4
 
6
5
 
package/dist/index.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports._clearDefaults = _clearDefaults;exports.compile = compile;exports.compileFile = compileFile;exports.compileFileSync = compileFileSync;exports.compileSync = compileSync;exports.configure = configure;exports.getRuntimeEntryFiles = getRuntimeEntryFiles;exports.types = exports.taglib = exports.globalConfig = void 0;var _types = _interopRequireWildcard(require("./babel-types"));exports.types = _types;
2
2
  var babel = _interopRequireWildcard(require("@babel/core"));
3
- var _pluginSyntaxTypescript = _interopRequireDefault(require("@babel/plugin-syntax-typescript"));
4
3
  var _pluginTransformModulesCommonjs = _interopRequireDefault(require("@babel/plugin-transform-modules-commonjs"));
5
- var _pluginTransformTypescript = _interopRequireDefault(require("@babel/plugin-transform-typescript"));
6
4
  var _babelUtils = require("@marko/compiler/babel-utils");
5
+ var _modules = _interopRequireDefault(require("@marko/compiler/modules"));
7
6
  var _path = _interopRequireDefault(require("path"));
8
7
 
9
- var _modules = _interopRequireDefault(require("../modules"));
10
8
  var _babelPlugin = _interopRequireDefault(require("./babel-plugin"));
11
9
  var _config = _interopRequireDefault(require("./config"));
12
10
  var taglib = _interopRequireWildcard(require("./taglib"));exports.taglib = taglib;
@@ -87,20 +85,7 @@ function loadBabelConfigSync(filename, config) {
87
85
 
88
86
  function getBaseBabelConfig(filename, { babelConfig, ...markoConfig }) {
89
87
  const isTranslated = isTranslatedOutput(markoConfig.output);
90
- const requiredPlugins = [
91
- [_babelPlugin.default, markoConfig],
92
- [
93
- markoConfig.stripTypes ? _pluginTransformTypescript.default : _pluginSyntaxTypescript.default,
94
- {
95
- isTSX: false,
96
- allowNamespaces: true,
97
- allowDeclareFields: true,
98
- optimizeConstEnums: true,
99
- onlyRemoveTypeImports: true,
100
- disallowAmbiguousJSXLike: false
101
- }]];
102
-
103
-
88
+ const requiredPlugins = [[_babelPlugin.default, markoConfig]];
104
89
  const baseBabelConfig = {
105
90
  filenameRelative: filename ?
106
91
  _path.default.relative(_modules.default.cwd, filename) :
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var nodePath = require("path");
3
3
  var lassoPackageRoot = require("lasso-package-root");
4
- var markoModules = require("../../../modules");
4
+ var markoModules = require("@marko/compiler/modules");
5
5
  var taglibConfig = require("../config");
6
6
  var taglibLoader = require("../loader");
7
7
  var findCache = {};
@@ -1,7 +1,7 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports._loader = exports._finder = void 0;exports.buildLookup = buildLookup;exports.clearCaches = clearCaches;exports.excludePackage = exports.excludeDir = void 0;exports.register = register;exports.resolveOptionalTaglibs = resolveOptionalTaglibs;var _lassoPackageRoot = require("lasso-package-root");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports._loader = exports._finder = void 0;exports.buildLookup = buildLookup;exports.clearCaches = clearCaches;exports.excludePackage = exports.excludeDir = void 0;exports.register = register;exports.resolveOptionalTaglibs = resolveOptionalTaglibs;var _modules = _interopRequireDefault(require("@marko/compiler/modules"));
2
+ var _lassoPackageRoot = require("lasso-package-root");
2
3
  var _path = _interopRequireDefault(require("path"));
3
4
 
4
- var _modules = _interopRequireDefault(require("../../modules"));
5
5
  var _tryLoadTranslator = _interopRequireDefault(require("../util/try-load-translator"));
6
6
  var _config = _interopRequireDefault(require("./config"));
7
7
  var _finder2 = _interopRequireDefault(require("./finder"));
@@ -4,7 +4,7 @@ var ok = require("assert").ok;
4
4
  var nodePath = require("path");
5
5
  var createError = require("raptor-util/createError");
6
6
  var isObjectEmpty = require("raptor-util/isObjectEmpty");
7
- var markoModules = require("../../../modules");
7
+ var markoModules = require("@marko/compiler/modules");
8
8
  var taglibConfig = require("../config");
9
9
  var loaders = require("./loaders");
10
10
  var propertyHandlers = require("./property-handlers");
@@ -3,7 +3,7 @@
3
3
  var ok = require("assert").ok;
4
4
  var nodePath = require("path");
5
5
  var createError = require("raptor-util/createError");
6
- var markoModules = require("../../../modules");
6
+ var markoModules = require("@marko/compiler/modules");
7
7
  var taglibFS = require("../config");
8
8
  var DependencyChain = require("./DependencyChain");
9
9
  var jsonFileReader = require("./json-file-reader");
package/dist/types.d.ts CHANGED
@@ -1826,7 +1826,7 @@ export type ObjectMember = ObjectMethod | ObjectProperty;
1826
1826
  export type Property = ObjectProperty | ClassProperty | ClassAccessorProperty | ClassPrivateProperty;
1827
1827
  export type UnaryLike = UnaryExpression | SpreadElement;
1828
1828
  export type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern | VoidPattern;
1829
- export type Class = ClassExpression | ClassDeclaration;
1829
+ export type Class = ClassExpression | ClassDeclaration | MarkoClass;
1830
1830
  export type ImportOrExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration | ImportDeclaration;
1831
1831
  export type ExportDeclaration = ExportAllDeclaration | ExportDefaultDeclaration | ExportNamedDeclaration;
1832
1832
  export type ModuleSpecifier = ExportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier | ExportNamespaceSpecifier | ExportDefaultSpecifier;
@@ -1,8 +1,8 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.buildCodeFrameError = buildCodeFrameError;var _codeFrame = require("@babel/code-frame");
2
+ var _modules = require("@marko/compiler/modules");
2
3
  var _kleur = _interopRequireDefault(require("kleur"));
3
4
  var _path = _interopRequireDefault(require("path"));
4
5
 
5
- var _modules = require("../../modules");
6
6
  var _stripAnsi = require("./strip-ansi");
7
7
  const indent = " ";
8
8
 
@@ -1,4 +1,5 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = _default;var _modules = _interopRequireDefault(require("../../modules"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = _default;var _modules = _interopRequireDefault(require("@marko/compiler/modules"));
2
+
2
3
  var _config = _interopRequireDefault(require("../config"));
3
4
  const cache = {};
4
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/compiler",
3
- "version": "5.39.33",
3
+ "version": "5.39.35",
4
4
  "description": "Marko template to JS compiler.",
5
5
  "keywords": [
6
6
  "babel",
@@ -87,7 +87,7 @@
87
87
  "source-map-support": "^0.5.21"
88
88
  },
89
89
  "devDependencies": {
90
- "marko": "^5.37.44"
90
+ "marko": "^5.37.55"
91
91
  },
92
92
  "engines": {
93
93
  "node": "18 || 20 || >=22"