@marko/compiler 5.39.21 → 5.39.22
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.
- package/dist/babel-plugin/index.js +5 -7
- package/dist/babel-utils/tags.js +13 -18
- package/dist/util/quick-hash.js +35 -0
- package/package.json +2 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = void 0;var _traverse = _interopRequireDefault(require("@babel/traverse"));
|
|
2
|
-
var _crypto = require("crypto");
|
|
3
2
|
var _path = _interopRequireDefault(require("path"));
|
|
4
3
|
|
|
5
4
|
var t = _interopRequireWildcard(require("../babel-types"));
|
|
@@ -10,6 +9,7 @@ var _taglib = require("../taglib");
|
|
|
10
9
|
var _config = _interopRequireDefault(require("../taglib/config"));
|
|
11
10
|
var _buildCodeFrame = require("../util/build-code-frame");
|
|
12
11
|
var _mergeErrors = _interopRequireDefault(require("../util/merge-errors"));
|
|
12
|
+
var _quickHash = require("../util/quick-hash");
|
|
13
13
|
var _shouldOptimize = _interopRequireDefault(require("../util/should-optimize"));
|
|
14
14
|
var _tryLoadTranslator = _interopRequireDefault(require("../util/try-load-translator"));
|
|
15
15
|
var _file = require("./file");
|
|
@@ -159,10 +159,8 @@ function getMarkoFile(code, fileOpts, markoOpts) {
|
|
|
159
159
|
const isMigrate = markoOpts.output === "migrate";
|
|
160
160
|
const canCache = !(isSource || isMigrate);
|
|
161
161
|
const id = (0, _tags.getTemplateId)(markoOpts, filename);
|
|
162
|
-
const contentHash = canCache &&
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
let cached = canCache && compileCache.get(cacheKey);
|
|
162
|
+
const contentHash = canCache && new _quickHash.Hash().update(code).digest();
|
|
163
|
+
let cached = canCache && compileCache.get(id);
|
|
166
164
|
|
|
167
165
|
if (cached) {
|
|
168
166
|
if (cached.contentHash !== contentHash) {
|
|
@@ -302,7 +300,7 @@ function getMarkoFile(code, fileOpts, markoOpts) {
|
|
|
302
300
|
}
|
|
303
301
|
}
|
|
304
302
|
|
|
305
|
-
compileCache.set(
|
|
303
|
+
compileCache.set(id, {
|
|
306
304
|
time: Date.now(),
|
|
307
305
|
file,
|
|
308
306
|
contentHash
|
|
@@ -313,7 +311,7 @@ function getMarkoFile(code, fileOpts, markoOpts) {
|
|
|
313
311
|
file.___compileStage = "analyze";
|
|
314
312
|
traverseAll(file, translator.analyze);
|
|
315
313
|
} catch (e) {
|
|
316
|
-
compileCache.delete(
|
|
314
|
+
compileCache.delete(id);
|
|
317
315
|
throw e;
|
|
318
316
|
}
|
|
319
317
|
}
|
package/dist/babel-utils/tags.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.findAttributeTags = findAttributeTags;exports.findParentTag = findParentTag;exports.getArgOrSequence = getArgOrSequence;exports.getFullyResolvedTagName = getFullyResolvedTagName;exports.getMacroIdentifier = getMacroIdentifier;exports.getMacroIdentifierForName = getMacroIdentifierForName;exports.getTagDef = getTagDef;exports.getTagTemplate = getTagTemplate;exports.getTemplateId = getTemplateId;exports.hasMacro = hasMacro;exports.isAttributeTag = isAttributeTag;exports.isDynamicTag = isDynamicTag;exports.isLoopTag = isLoopTag;exports.isMacroTag = isMacroTag;exports.isNativeTag = isNativeTag;exports.isTransparentTag = isTransparentTag;exports.loadFileForImport = loadFileForImport;exports.loadFileForTag = loadFileForTag;exports.registerMacro = registerMacro;exports.resolveTagImport = resolveTagImport;var _compiler = require("@marko/compiler");
|
|
2
2
|
var _modules = _interopRequireDefault(require("@marko/compiler/modules"));
|
|
3
|
-
var _crypto = require("crypto");
|
|
4
3
|
var _lassoPackageRoot = require("lasso-package-root");
|
|
5
4
|
var _path = require("path");
|
|
6
5
|
|
|
6
|
+
var _quickHash = require("../util/quick-hash");
|
|
7
7
|
var _diagnostics = require("./diagnostics");
|
|
8
8
|
var _imports = require("./imports");
|
|
9
9
|
var _taglib = require("./taglib");
|
|
@@ -350,12 +350,12 @@ function getTemplateId(opts, request, child) {
|
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
-
const hash =
|
|
353
|
+
const hash = new _quickHash.Hash().update(id);
|
|
354
354
|
if (child) {
|
|
355
355
|
hash.update(child);
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
-
return encodeTemplateId(
|
|
358
|
+
return encodeTemplateId(hash.digest());
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
return id + (child ? `_${child}` : "");
|
|
@@ -408,21 +408,16 @@ function createNewFileOpts(opts, filename) {
|
|
|
408
408
|
};
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
function encodeTemplateId(
|
|
412
|
-
const
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
let
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
while (cur > 0) {
|
|
422
|
-
mod = cur % encodeLen;
|
|
423
|
-
id += encodeChars[mod];
|
|
424
|
-
cur = (cur - mod) / encodeLen;
|
|
411
|
+
function encodeTemplateId(id) {
|
|
412
|
+
const c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789";
|
|
413
|
+
let n = id;
|
|
414
|
+
let r = c[n % 53]; // Avoids chars that cannot start a property name and _ (reserved).
|
|
415
|
+
n = Math.floor(n / 53);
|
|
416
|
+
|
|
417
|
+
// ensure at most 7 characters.
|
|
418
|
+
for (let i = 6; n > 0 && i--; n = Math.floor(n / 64)) {
|
|
419
|
+
r += c[n & 63];
|
|
425
420
|
}
|
|
426
421
|
|
|
427
|
-
return
|
|
422
|
+
return r;
|
|
428
423
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";exports.__esModule = true;exports.Hash = void 0; /**
|
|
2
|
+
* Outputs a noncryptographic hash as a safe integer (<= Number.MAX_SAFE_INTEGER).
|
|
3
|
+
*/
|
|
4
|
+
class Hash {
|
|
5
|
+
a = 0xdeadbeef;
|
|
6
|
+
b = 0x9e3779b9;
|
|
7
|
+
|
|
8
|
+
update(s) {
|
|
9
|
+
let a = this.a;
|
|
10
|
+
let b = this.b;
|
|
11
|
+
for (let i = s.length; i--;) {
|
|
12
|
+
a = Math.imul(a ^ s.charCodeAt(i), 0x85ebca6b);
|
|
13
|
+
a = a << 13 | a >>> 19;
|
|
14
|
+
b = Math.imul(b ^ a, 0xc2b2ae35);
|
|
15
|
+
b = b << 17 | b >>> 15;
|
|
16
|
+
a ^= b >>> 11;
|
|
17
|
+
b ^= a >>> 7;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
this.a = a;
|
|
21
|
+
this.b = b;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
digest() {
|
|
26
|
+
let a = this.a;
|
|
27
|
+
let b = this.b;
|
|
28
|
+
a = Math.imul(a ^ b, 0x27d4eb2f);
|
|
29
|
+
a ^= a >>> 16;
|
|
30
|
+
b = Math.imul(b ^ a, 0x165667b1);
|
|
31
|
+
b ^= b >>> 15;
|
|
32
|
+
a = Math.imul(a ^ b >>> 13, 0x5bd1e995);
|
|
33
|
+
return (b & 0x1fffff) * 0x100000000 + a;
|
|
34
|
+
}
|
|
35
|
+
}exports.Hash = Hash;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/compiler",
|
|
3
|
-
"version": "5.39.
|
|
3
|
+
"version": "5.39.22",
|
|
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.
|
|
90
|
+
"marko": "^5.37.33"
|
|
91
91
|
},
|
|
92
92
|
"engines": {
|
|
93
93
|
"node": "18 || 20 || >=22"
|