@barefootjs/mojolicious 0.35.1 → 0.35.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.
- package/dist/adapter/expr/emitters.d.ts.map +1 -1
- package/dist/adapter/index.js +11 -3
- package/dist/index.js +14 -4
- package/dist/render-divergences.d.ts.map +1 -1
- package/dist/vite.js +11 -3
- package/lib/BarefootJS/Backend/Mojo.pm +1 -1
- package/lib/Mojolicious/Plugin/BarefootJS/DevReload.pm +1 -1
- package/lib/Mojolicious/Plugin/BarefootJS.pm +1 -1
- package/package.json +5 -5
- package/src/adapter/expr/emitters.ts +20 -6
- package/src/render-divergences.ts +12 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitters.d.ts","sourceRoot":"","sources":["../../../src/adapter/expr/emitters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACd,KAAK,YAAY,EAMjB,KAAK,eAAe,EAIrB,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"emitters.d.ts","sourceRoot":"","sources":["../../../src/adapter/expr/emitters.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter/index.js
CHANGED
|
@@ -381,6 +381,11 @@ var PREDICATE_METHODS = new Set([
|
|
|
381
381
|
"every",
|
|
382
382
|
"some"
|
|
383
383
|
]);
|
|
384
|
+
function flattenPropsMember(object, property) {
|
|
385
|
+
if (object.kind === "identifier" && object.name === "props")
|
|
386
|
+
return `$${property}`;
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
384
389
|
|
|
385
390
|
class MojoFilterEmitter {
|
|
386
391
|
param;
|
|
@@ -411,6 +416,9 @@ class MojoFilterEmitter {
|
|
|
411
416
|
return String(value);
|
|
412
417
|
}
|
|
413
418
|
member(object, property, _computed, _optional, emit) {
|
|
419
|
+
const flat = flattenPropsMember(object, property);
|
|
420
|
+
if (flat !== null)
|
|
421
|
+
return flat;
|
|
414
422
|
if (property === "length" && (asCallbackMethodCall(object) !== null || object.kind === "array-literal")) {
|
|
415
423
|
return `scalar(@{${emit(object)}})`;
|
|
416
424
|
}
|
|
@@ -561,9 +569,9 @@ class MojoTopLevelEmitter {
|
|
|
561
569
|
return String(value);
|
|
562
570
|
}
|
|
563
571
|
member(object, property, _computed, _optional, emit) {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
572
|
+
const flat = flattenPropsMember(object, property);
|
|
573
|
+
if (flat !== null)
|
|
574
|
+
return flat;
|
|
567
575
|
if (object.kind === "identifier") {
|
|
568
576
|
const staticValue = this.ctx.resolveStaticRecordLiteral(object.name, property);
|
|
569
577
|
if (staticValue !== null)
|
package/dist/index.js
CHANGED
|
@@ -381,6 +381,11 @@ var PREDICATE_METHODS = new Set([
|
|
|
381
381
|
"every",
|
|
382
382
|
"some"
|
|
383
383
|
]);
|
|
384
|
+
function flattenPropsMember(object, property) {
|
|
385
|
+
if (object.kind === "identifier" && object.name === "props")
|
|
386
|
+
return `$${property}`;
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
384
389
|
|
|
385
390
|
class MojoFilterEmitter {
|
|
386
391
|
param;
|
|
@@ -411,6 +416,9 @@ class MojoFilterEmitter {
|
|
|
411
416
|
return String(value);
|
|
412
417
|
}
|
|
413
418
|
member(object, property, _computed, _optional, emit) {
|
|
419
|
+
const flat = flattenPropsMember(object, property);
|
|
420
|
+
if (flat !== null)
|
|
421
|
+
return flat;
|
|
414
422
|
if (property === "length" && (asCallbackMethodCall(object) !== null || object.kind === "array-literal")) {
|
|
415
423
|
return `scalar(@{${emit(object)}})`;
|
|
416
424
|
}
|
|
@@ -561,9 +569,9 @@ class MojoTopLevelEmitter {
|
|
|
561
569
|
return String(value);
|
|
562
570
|
}
|
|
563
571
|
member(object, property, _computed, _optional, emit) {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
572
|
+
const flat = flattenPropsMember(object, property);
|
|
573
|
+
if (flat !== null)
|
|
574
|
+
return flat;
|
|
567
575
|
if (object.kind === "identifier") {
|
|
568
576
|
const staticValue = this.ctx.resolveStaticRecordLiteral(object.name, property);
|
|
569
577
|
if (staticValue !== null)
|
|
@@ -1914,7 +1922,9 @@ var conformancePins = {
|
|
|
1914
1922
|
"namespace-import-primitive": [{ code: "BF013", severity: "error" }]
|
|
1915
1923
|
};
|
|
1916
1924
|
// src/render-divergences.ts
|
|
1917
|
-
var renderDivergences = {
|
|
1925
|
+
var renderDivergences = {
|
|
1926
|
+
"filter-predicate-renamed-prop": "https://github.com/piconic-ai/barefootjs/issues/2883"
|
|
1927
|
+
};
|
|
1918
1928
|
export {
|
|
1919
1929
|
renderDivergences,
|
|
1920
1930
|
mojoAdapter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAQxD,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"render-divergences.d.ts","sourceRoot":"","sources":["../src/render-divergences.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAQxD,eAAO,MAAM,iBAAiB,EAAE,iBAW/B,CAAA"}
|
package/dist/vite.js
CHANGED
|
@@ -5624,6 +5624,11 @@ var PREDICATE_METHODS = new Set([
|
|
|
5624
5624
|
"every",
|
|
5625
5625
|
"some"
|
|
5626
5626
|
]);
|
|
5627
|
+
function flattenPropsMember(object, property) {
|
|
5628
|
+
if (object.kind === "identifier" && object.name === "props")
|
|
5629
|
+
return `$${property}`;
|
|
5630
|
+
return null;
|
|
5631
|
+
}
|
|
5627
5632
|
|
|
5628
5633
|
class MojoFilterEmitter {
|
|
5629
5634
|
param;
|
|
@@ -5654,6 +5659,9 @@ class MojoFilterEmitter {
|
|
|
5654
5659
|
return String(value);
|
|
5655
5660
|
}
|
|
5656
5661
|
member(object, property, _computed, _optional, emit) {
|
|
5662
|
+
const flat = flattenPropsMember(object, property);
|
|
5663
|
+
if (flat !== null)
|
|
5664
|
+
return flat;
|
|
5657
5665
|
if (property === "length" && (asCallbackMethodCall(object) !== null || object.kind === "array-literal")) {
|
|
5658
5666
|
return `scalar(@{${emit(object)}})`;
|
|
5659
5667
|
}
|
|
@@ -5804,9 +5812,9 @@ class MojoTopLevelEmitter {
|
|
|
5804
5812
|
return String(value);
|
|
5805
5813
|
}
|
|
5806
5814
|
member(object, property, _computed, _optional, emit) {
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5815
|
+
const flat = flattenPropsMember(object, property);
|
|
5816
|
+
if (flat !== null)
|
|
5817
|
+
return flat;
|
|
5810
5818
|
if (object.kind === "identifier") {
|
|
5811
5819
|
const staticValue = this.ctx.resolveStaticRecordLiteral(object.name, property);
|
|
5812
5820
|
if (staticValue !== null)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/mojolicious",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.2",
|
|
4
4
|
"description": "Mojolicious EP template adapter for BarefootJS - generates .html.ep files from IR",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"directory": "packages/adapter-mojolicious"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@barefootjs/shared": "0.35.
|
|
55
|
+
"@barefootjs/shared": "0.35.2"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@barefootjs/jsx": ">=0.2.0",
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@barefootjs/adapter-tests": "0.1.0",
|
|
73
|
-
"@barefootjs/jsx": "0.35.
|
|
74
|
-
"@barefootjs/vite": "0.35.
|
|
75
|
-
"@barefootjs/client": "0.35.
|
|
73
|
+
"@barefootjs/jsx": "0.35.2",
|
|
74
|
+
"@barefootjs/vite": "0.35.2",
|
|
75
|
+
"@barefootjs/client": "0.35.2",
|
|
76
76
|
"vite": "^6.0.0"
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -81,6 +81,22 @@ const PREDICATE_METHODS: ReadonlySet<string> = new Set([
|
|
|
81
81
|
'filter', 'find', 'findIndex', 'findLast', 'findLastIndex', 'every', 'some',
|
|
82
82
|
])
|
|
83
83
|
|
|
84
|
+
/**
|
|
85
|
+
* `props.x` on a bare-props-form component flattens to the bare `$x` the
|
|
86
|
+
* Mojo SSR caller binds each prop to (props arrive as individual `my $x`
|
|
87
|
+
* vars, not a `$props` hashref). Single door for BOTH `member()` emitters
|
|
88
|
+
* below (#2886) — `MojoFilterEmitter` lacked this decision entirely
|
|
89
|
+
* (#2879's cross-adapter follow-up), silently reaching `$props->{x}`, a
|
|
90
|
+
* Perl variable never declared under `use strict`. Returns null for any
|
|
91
|
+
* other receiver so callers fall through to their generic member
|
|
92
|
+
* lowering — `props.a.b` flattens only the inner hop, then the caller's
|
|
93
|
+
* own recursion appends `.b`.
|
|
94
|
+
*/
|
|
95
|
+
function flattenPropsMember(object: ParsedExpr, property: string): string | null {
|
|
96
|
+
if (object.kind === 'identifier' && object.name === 'props') return `$${property}`
|
|
97
|
+
return null
|
|
98
|
+
}
|
|
99
|
+
|
|
84
100
|
export class MojoFilterEmitter implements ParsedExprEmitter {
|
|
85
101
|
// Plain field declarations + assignment, NOT TS constructor-parameter-
|
|
86
102
|
// property shorthand: Vite's `bundleConfigFile` externalizes any bare
|
|
@@ -129,6 +145,8 @@ export class MojoFilterEmitter implements ParsedExprEmitter {
|
|
|
129
145
|
}
|
|
130
146
|
|
|
131
147
|
member(object: ParsedExpr, property: string, _computed: boolean, _optional: boolean, emit: (e: ParsedExpr) => string): string {
|
|
148
|
+
const flat = flattenPropsMember(object, property)
|
|
149
|
+
if (flat !== null) return flat
|
|
132
150
|
// `.length` on a higher-order result (e.g.
|
|
133
151
|
// `x.tags.filter(t => t.active).length > 0` inside the outer
|
|
134
152
|
// filter predicate, #1443). The higher-order emit produces an
|
|
@@ -381,12 +399,8 @@ export class MojoTopLevelEmitter implements ParsedExprEmitter {
|
|
|
381
399
|
}
|
|
382
400
|
|
|
383
401
|
member(object: ParsedExpr, property: string, _computed: boolean, _optional: boolean, emit: (e: ParsedExpr) => string): string {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
// `$props` hashref).
|
|
387
|
-
if (object.kind === 'identifier' && object.name === 'props') {
|
|
388
|
-
return `$${property}`
|
|
389
|
-
}
|
|
402
|
+
const flat = flattenPropsMember(object, property)
|
|
403
|
+
if (flat !== null) return flat
|
|
390
404
|
// Static property access on a module object-literal const
|
|
391
405
|
// (`variantClasses.ghost`, #1897) resolves at compile time — the
|
|
392
406
|
// generic hash lowering below would dereference a Perl var that
|
|
@@ -15,4 +15,15 @@ import type { RenderDivergences } from '@barefootjs/jsx'
|
|
|
15
15
|
// at value position and the runtime evaluator's `object-literal` case
|
|
16
16
|
// now merges it, so the seed classifies `derived` and SSRs identically
|
|
17
17
|
// to Hono.
|
|
18
|
-
export const renderDivergences: RenderDivergences = {
|
|
18
|
+
export const renderDivergences: RenderDivergences = {
|
|
19
|
+
// #2883: `MojoFilterEmitter.identifier()` (expr/emitters.ts) resolves a
|
|
20
|
+
// `.filter()` predicate identifier against only the loop param and
|
|
21
|
+
// `localVarMap` — a bare-props-form renamed prop destructure (`const {
|
|
22
|
+
// fallbackLabel: skipLabel } = props`, the #2788 alias family) falls
|
|
23
|
+
// through to a bare `$skipLabel`, a Perl variable never declared in the
|
|
24
|
+
// generated `.html.ep`. Every row is filtered out (the fixture's
|
|
25
|
+
// reference expects only the non-matching row to survive). Unrelated to
|
|
26
|
+
// #2857's Go Template adapter fix that this fixture was added for — this
|
|
27
|
+
// fixture is a shared cross-adapter conformance fixture, not Go-specific.
|
|
28
|
+
'filter-predicate-renamed-prop': 'https://github.com/piconic-ai/barefootjs/issues/2883',
|
|
29
|
+
}
|