@react-pug/react-pug-core 0.1.0

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 (35) hide show
  1. package/README.md +60 -0
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +24 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/language/diagnosticMapping.d.ts +25 -0
  7. package/dist/language/diagnosticMapping.d.ts.map +1 -0
  8. package/dist/language/diagnosticMapping.js +89 -0
  9. package/dist/language/diagnosticMapping.js.map +1 -0
  10. package/dist/language/extractRegions.d.ts +39 -0
  11. package/dist/language/extractRegions.d.ts.map +1 -0
  12. package/dist/language/extractRegions.js +419 -0
  13. package/dist/language/extractRegions.js.map +1 -0
  14. package/dist/language/mapping.d.ts +181 -0
  15. package/dist/language/mapping.d.ts.map +1 -0
  16. package/dist/language/mapping.js +32 -0
  17. package/dist/language/mapping.js.map +1 -0
  18. package/dist/language/positionMapping.d.ts +6 -0
  19. package/dist/language/positionMapping.d.ts.map +1 -0
  20. package/dist/language/positionMapping.js +138 -0
  21. package/dist/language/positionMapping.js.map +1 -0
  22. package/dist/language/pugToTsx.d.ts +39 -0
  23. package/dist/language/pugToTsx.d.ts.map +1 -0
  24. package/dist/language/pugToTsx.js +1484 -0
  25. package/dist/language/pugToTsx.js.map +1 -0
  26. package/dist/language/shadowDocument.d.ts +15 -0
  27. package/dist/language/shadowDocument.d.ts.map +1 -0
  28. package/dist/language/shadowDocument.js +480 -0
  29. package/dist/language/shadowDocument.js.map +1 -0
  30. package/dist/language/sourceTransform.d.ts +88 -0
  31. package/dist/language/sourceTransform.d.ts.map +1 -0
  32. package/dist/language/sourceTransform.js +80 -0
  33. package/dist/language/sourceTransform.js.map +1 -0
  34. package/package.json +22 -0
  35. package/tsconfig.json +12 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/language/mapping.ts"],"names":[],"mappings":";;;AAgBA,0EAA0E;AAC7D,QAAA,aAAa,GAAoB;IAC5C,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,2DAA2D;AAC9C,QAAA,SAAS,GAAoB;IACxC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,gEAAgE;AACnD,QAAA,SAAS,GAAoB;IACxC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,mEAAmE;AACtD,QAAA,WAAW,GAAoB;IAC1C,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI;CACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PugDocument, PugRegion } from './mapping';
2
+ export declare function findRegionAtOriginalOffset(doc: PugDocument, offset: number): PugRegion | null;
3
+ export declare function findRegionAtShadowOffset(doc: PugDocument, offset: number): PugRegion | null;
4
+ export declare function originalToShadow(doc: PugDocument, originalOffset: number): number | null;
5
+ export declare function shadowToOriginal(doc: PugDocument, shadowOffset: number): number | null;
6
+ //# sourceMappingURL=positionMapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionMapping.d.ts","sourceRoot":"","sources":["../../src/language/positionMapping.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,WAAW,EACX,SAAS,EAGV,MAAM,WAAW,CAAC;AA8EnB,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,GACb,SAAS,GAAG,IAAI,CAElB;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,GACb,SAAS,GAAG,IAAI,CAElB;AAUD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,IAAI,CAyBf;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAkBf"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findRegionAtOriginalOffset = findRegionAtOriginalOffset;
4
+ exports.findRegionAtShadowOffset = findRegionAtShadowOffset;
5
+ exports.originalToShadow = originalToShadow;
6
+ exports.shadowToOriginal = shadowToOriginal;
7
+ const source_map_1 = require("@volar/source-map");
8
+ const sourceMapCache = new WeakMap();
9
+ function getSourceMap(region) {
10
+ let sm = sourceMapCache.get(region);
11
+ if (!sm) {
12
+ sm = new source_map_1.SourceMap(region.mappings);
13
+ sourceMapCache.set(region, sm);
14
+ }
15
+ return sm;
16
+ }
17
+ function rawToStrippedOffset(rawText, rawOffset, commonIndent) {
18
+ if (commonIndent === 0)
19
+ return rawOffset;
20
+ let stripped = 0;
21
+ let raw = 0;
22
+ const lines = rawText.split('\n');
23
+ for (let i = 0; i < lines.length; i++) {
24
+ const line = lines[i];
25
+ const lineEnd = raw + line.length;
26
+ if (rawOffset <= lineEnd) {
27
+ const colInRaw = rawOffset - raw;
28
+ const indentToRemove = line.trim().length === 0 ? line.length : commonIndent;
29
+ if (indentToRemove > 0 && colInRaw < indentToRemove)
30
+ return null;
31
+ return stripped + Math.max(0, colInRaw - indentToRemove);
32
+ }
33
+ const indentToRemove = line.trim().length === 0 ? line.length : commonIndent;
34
+ stripped += Math.max(0, line.length - indentToRemove) + 1;
35
+ raw = lineEnd + 1;
36
+ }
37
+ return stripped;
38
+ }
39
+ function strippedToRawOffset(rawText, strippedOffset, commonIndent) {
40
+ if (commonIndent === 0)
41
+ return strippedOffset;
42
+ let stripped = 0;
43
+ let raw = 0;
44
+ const lines = rawText.split('\n');
45
+ for (let i = 0; i < lines.length; i++) {
46
+ const line = lines[i];
47
+ const indentToRemove = line.trim().length === 0 ? line.length : commonIndent;
48
+ const strippedLineLen = Math.max(0, line.length - indentToRemove);
49
+ if (strippedOffset <= stripped + strippedLineLen) {
50
+ return raw + indentToRemove + (strippedOffset - stripped);
51
+ }
52
+ stripped += strippedLineLen + 1;
53
+ raw += line.length + 1;
54
+ }
55
+ return raw;
56
+ }
57
+ function findSegmentAtOffset(segments, offset, getStart, getEnd) {
58
+ let lo = 0;
59
+ let hi = segments.length - 1;
60
+ while (lo <= hi) {
61
+ const mid = (lo + hi) >>> 1;
62
+ const segment = segments[mid];
63
+ if (offset < getStart(segment)) {
64
+ hi = mid - 1;
65
+ }
66
+ else if (offset >= getEnd(segment)) {
67
+ lo = mid + 1;
68
+ }
69
+ else {
70
+ return segment;
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ function getMappedRegionsForRegion(doc, regionIndex) {
76
+ return doc.mappedRegions.filter(region => region.regionIndex === regionIndex);
77
+ }
78
+ function findRegionAtOriginalOffset(doc, offset) {
79
+ return findSegmentAtOffset(doc.regions, offset, region => region.originalStart, region => region.originalEnd);
80
+ }
81
+ function findRegionAtShadowOffset(doc, offset) {
82
+ return findSegmentAtOffset(doc.regions, offset, region => region.shadowStart, region => region.shadowEnd);
83
+ }
84
+ function findCopySegmentAtOriginalOffset(doc, offset) {
85
+ return findSegmentAtOffset(doc.copySegments, offset, segment => segment.originalStart, segment => segment.originalEnd);
86
+ }
87
+ function findCopySegmentAtShadowOffset(doc, offset) {
88
+ return findSegmentAtOffset(doc.copySegments, offset, segment => segment.shadowStart, segment => segment.shadowEnd);
89
+ }
90
+ function originalToShadow(doc, originalOffset) {
91
+ if (originalOffset === doc.originalText.length)
92
+ return doc.shadowText.length;
93
+ const region = findRegionAtOriginalOffset(doc, originalOffset);
94
+ if (region) {
95
+ const regionIndex = doc.regions.indexOf(region);
96
+ const rawOffset = originalOffset - region.pugTextStart;
97
+ if (rawOffset < 0)
98
+ return null;
99
+ const rawText = doc.originalText.slice(region.pugTextStart, region.pugTextEnd);
100
+ const strippedOffset = rawToStrippedOffset(rawText, rawOffset, region.commonIndent);
101
+ if (strippedOffset == null)
102
+ return null;
103
+ for (const mappedRegion of getMappedRegionsForRegion(doc, regionIndex)) {
104
+ if (strippedOffset < mappedRegion.sourceStart || strippedOffset >= mappedRegion.sourceEnd)
105
+ continue;
106
+ const sm = getSourceMap(mappedRegion);
107
+ for (const [generatedOffset] of sm.toGeneratedLocation(strippedOffset)) {
108
+ return mappedRegion.shadowStart + generatedOffset;
109
+ }
110
+ }
111
+ return null;
112
+ }
113
+ const copySegment = findCopySegmentAtOriginalOffset(doc, originalOffset);
114
+ if (!copySegment)
115
+ return null;
116
+ return copySegment.shadowStart + (originalOffset - copySegment.originalStart);
117
+ }
118
+ function shadowToOriginal(doc, shadowOffset) {
119
+ if (shadowOffset === doc.shadowText.length)
120
+ return doc.originalText.length;
121
+ for (const mappedRegion of doc.mappedRegions) {
122
+ if (shadowOffset < mappedRegion.shadowStart || shadowOffset >= mappedRegion.shadowEnd)
123
+ continue;
124
+ const localOffset = shadowOffset - mappedRegion.shadowStart;
125
+ const sm = getSourceMap(mappedRegion);
126
+ for (const [sourceOffset] of sm.toSourceLocation(localOffset)) {
127
+ const region = doc.regions[mappedRegion.regionIndex];
128
+ const rawText = doc.originalText.slice(region.pugTextStart, region.pugTextEnd);
129
+ const rawOffset = strippedToRawOffset(rawText, sourceOffset, region.commonIndent);
130
+ return region.pugTextStart + rawOffset;
131
+ }
132
+ }
133
+ const copySegment = findCopySegmentAtShadowOffset(doc, shadowOffset);
134
+ if (!copySegment)
135
+ return null;
136
+ return copySegment.originalStart + (shadowOffset - copySegment.shadowStart);
137
+ }
138
+ //# sourceMappingURL=positionMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionMapping.js","sourceRoot":"","sources":["../../src/language/positionMapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { CodeMapping, CodeInformation, ExtractedStyleBlock, PugParseError, PugToken, PugTransformError } from './mapping';
2
+ export declare class TsxEmitter {
3
+ private tsx;
4
+ private mappings;
5
+ private offset;
6
+ /** Emit text that maps 1:1 to pug source */
7
+ emitMapped(text: string, pugOffset: number, info: CodeInformation): void;
8
+ /** Emit text that maps with different source/generated lengths */
9
+ emitDerived(text: string, pugOffset: number, pugLength: number, info: CodeInformation): void;
10
+ /** Emit structural TSX with no pug source (unmapped) */
11
+ emitSynthetic(text: string): void;
12
+ getResult(): {
13
+ tsx: string;
14
+ mappings: CodeMapping[];
15
+ };
16
+ }
17
+ export interface CompileResult {
18
+ tsx: string;
19
+ mappings: CodeMapping[];
20
+ lexerTokens: PugToken[];
21
+ parseError: PugParseError | null;
22
+ styleBlock: ExtractedStyleBlock | null;
23
+ transformError: PugTransformError | null;
24
+ }
25
+ export type CompileMode = 'languageService' | 'runtime';
26
+ export type ClassAttributeName = 'className' | 'class' | 'styleName';
27
+ export type ClassMergeMode = 'concatenate' | 'classnames';
28
+ export interface CompileOptions {
29
+ mode?: CompileMode;
30
+ classAttribute?: ClassAttributeName;
31
+ classMerge?: ClassMergeMode;
32
+ componentPathFromUppercaseClassShorthand?: boolean;
33
+ }
34
+ /**
35
+ * Compile pug text to TSX with source mappings.
36
+ * Pipeline: pug-lexer -> pug-strip-comments -> pug-parser -> TsxEmitter
37
+ */
38
+ export declare function compilePugToTsx(pugText: string, options?: CompileOptions): CompileResult;
39
+ //# sourceMappingURL=pugToTsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pugToTsx.d.ts","sourceRoot":"","sources":["../../src/language/pugToTsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,iBAAiB,EAElB,MAAM,WAAW,CAAC;AAMnB,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,MAAM,CAAK;IAEnB,4CAA4C;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI;IAWxE,kEAAkE;IAClE,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,eAAe,GACpB,IAAI;IAYP,wDAAwD;IACxD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKjC,SAAS,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;KAAE;CAGtD;AAmsDD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,wCAAwC,CAAC,EAAE,OAAO,CAAC;CACpD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CA6I5F"}