@gmb/bitmark-parser-generator 3.31.0 → 3.31.1
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/browser/bitmark-parser-generator.min.js +1 -1
- package/dist/browser/bundle-report.html +2 -2
- package/dist/cjs/breakscaping/Breakscape.js +2 -3
- package/dist/cjs/breakscaping/Breakscape.js.map +1 -1
- package/dist/cjs/breakscaping/BreakscapeLoop.js +305 -0
- package/dist/cjs/breakscaping/BreakscapeLoop.js.map +1 -0
- package/dist/cjs/breakscaping/BreakscapeOptions.js +3 -0
- package/dist/cjs/breakscaping/BreakscapeOptions.js.map +1 -0
- package/dist/cjs/breakscaping/BreakscapeRegex.js +213 -0
- package/dist/cjs/breakscaping/BreakscapeRegex.js.map +1 -0
- package/dist/cjs/breakscaping/RegexConfigs.js +38 -0
- package/dist/cjs/breakscaping/RegexConfigs.js.map +1 -0
- package/dist/cjs/generated/build-info.js +1 -1
- package/dist/esm/breakscaping/Breakscape.js +2 -3
- package/dist/esm/breakscaping/Breakscape.js.map +1 -1
- package/dist/esm/breakscaping/BreakscapeLoop.js +302 -0
- package/dist/esm/breakscaping/BreakscapeLoop.js.map +1 -0
- package/dist/esm/breakscaping/BreakscapeOptions.js +2 -0
- package/dist/esm/breakscaping/BreakscapeOptions.js.map +1 -0
- package/dist/esm/breakscaping/BreakscapeRegex.js +177 -0
- package/dist/esm/breakscaping/BreakscapeRegex.js.map +1 -0
- package/dist/esm/breakscaping/RegexConfigs.js +35 -0
- package/dist/esm/breakscaping/RegexConfigs.js.map +1 -0
- package/dist/esm/generated/build-info.js +1 -1
- package/dist/types/breakscaping/Breakscape.d.ts.map +1 -1
- package/dist/types/breakscaping/BreakscapeLoop.d.ts +142 -0
- package/dist/types/breakscaping/BreakscapeLoop.d.ts.map +1 -0
- package/dist/types/breakscaping/BreakscapeOptions.d.ts +30 -0
- package/dist/types/breakscaping/BreakscapeOptions.d.ts.map +1 -0
- package/dist/types/breakscaping/BreakscapeRegex.d.ts +96 -0
- package/dist/types/breakscaping/BreakscapeRegex.d.ts.map +1 -0
- package/dist/types/breakscaping/RegexConfigs.d.ts +35 -0
- package/dist/types/breakscaping/RegexConfigs.d.ts.map +1 -0
- package/package.json +1 -2
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* breakscape.ts
|
|
4
|
+
* ------------------------------------------------------------
|
|
5
|
+
* Breakscaping for bitmark text.
|
|
6
|
+
* (c) 2025 — MIT / public domain
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.Breakscape = void 0;
|
|
43
|
+
const build_info_1 = require("../generated/build-info");
|
|
44
|
+
const BodyTextFormat_1 = require("../model/enum/BodyTextFormat");
|
|
45
|
+
const TextLocation_1 = require("../model/enum/TextLocation");
|
|
46
|
+
const RC = __importStar(require("./RegexConfigs"));
|
|
47
|
+
// default options
|
|
48
|
+
const DEF = {
|
|
49
|
+
format: BodyTextFormat_1.BodyTextFormat.bitmarkPlusPlus,
|
|
50
|
+
location: TextLocation_1.TextLocation.body,
|
|
51
|
+
v2: false,
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Check if an object is a string.
|
|
55
|
+
*
|
|
56
|
+
* @param obj - The object to check.
|
|
57
|
+
* @returns true if the object is a string, otherwise false.
|
|
58
|
+
*/
|
|
59
|
+
function isString(obj) {
|
|
60
|
+
return typeof obj === 'string' || obj instanceof String;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* For breakscaping, select the correct regex and replacer for the text format, location, and v2 flag.
|
|
64
|
+
*/
|
|
65
|
+
function selectBreakscapeRegexAndReplacer(textFormat, textLocation, v2 = false) {
|
|
66
|
+
if (textLocation === TextLocation_1.TextLocation.tag) {
|
|
67
|
+
if (!v2 && textFormat === BodyTextFormat_1.BodyTextFormat.bitmarkPlusPlus) {
|
|
68
|
+
return {
|
|
69
|
+
regex: RC.BREAKSCAPE_BITMARK_TAG_REGEX,
|
|
70
|
+
replacer: RC.BREAKSCAPE_BITMARK_TAG_REGEX_REPLACER,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
regex: RC.BREAKSCAPE_PLAIN_TAG_REGEX,
|
|
75
|
+
replacer: RC.BREAKSCAPE_PLAIN_TAG_REGEX_REPLACER,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
if (textFormat === BodyTextFormat_1.BodyTextFormat.bitmarkPlusPlus) {
|
|
80
|
+
if (v2) {
|
|
81
|
+
return {
|
|
82
|
+
regex: RC.BREAKSCAPE_V2_BODY_REGEX,
|
|
83
|
+
replacer: RC.BREAKSCAPE_V2_BODY_REGEX_REPLACER,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
regex: RC.BREAKSCAPE_BITMARK_BODY_REGEX,
|
|
88
|
+
replacer: RC.BREAKSCAPE_BITMARK_BODY_REGEX_REPLACER,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
regex: RC.BREAKSCAPE_PLAIN_BODY_REGEX,
|
|
93
|
+
replacer: RC.BREAKSCAPE_PLAIN_BODY_REGEX_REPLACER,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* For unbreakscaping, select the correct regex and replacer for the text format and location.
|
|
99
|
+
*/
|
|
100
|
+
function selectUnbreakscapeRegexAndReplacer(textFormat, textLocation) {
|
|
101
|
+
const isPlain = textFormat !== BodyTextFormat_1.BodyTextFormat.bitmarkPlusPlus;
|
|
102
|
+
if (textLocation === TextLocation_1.TextLocation.body && isPlain) {
|
|
103
|
+
return {
|
|
104
|
+
regex: RC.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX,
|
|
105
|
+
replacer: RC.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX_REPLACER,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
regex: RC.UNBREAKSCAPE_REGEX,
|
|
110
|
+
replacer: RC.UNBREAKSCAPE_REGEX_REPLACER,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// -----------------------------------------------------------------------------
|
|
114
|
+
// ╭──────────────────────────────────────────────────────────────────────────╮
|
|
115
|
+
// │ 2. PUBLIC API │
|
|
116
|
+
// ╰──────────────────────────────────────────────────────────────────────────╯
|
|
117
|
+
class Breakscape {
|
|
118
|
+
constructor() {
|
|
119
|
+
this.EMPTY_STRING = '';
|
|
120
|
+
}
|
|
121
|
+
breakscape(val, opts = {}) {
|
|
122
|
+
if (val == null)
|
|
123
|
+
return undefined;
|
|
124
|
+
const options = Object.assign({}, DEF, opts);
|
|
125
|
+
if (Array.isArray(val)) {
|
|
126
|
+
return val.map((v) => this.breakscape(v, options));
|
|
127
|
+
}
|
|
128
|
+
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
|
|
129
|
+
if (!isString(val))
|
|
130
|
+
return val;
|
|
131
|
+
const { regex, replacer } = selectBreakscapeRegexAndReplacer(options.format, options.location, options.v2);
|
|
132
|
+
let str = val;
|
|
133
|
+
str = str.replace(regex, replacer);
|
|
134
|
+
return str;
|
|
135
|
+
}
|
|
136
|
+
unbreakscape(val, opts = {}) {
|
|
137
|
+
if (val == null)
|
|
138
|
+
return undefined;
|
|
139
|
+
const options = Object.assign({}, DEF, opts);
|
|
140
|
+
if (Array.isArray(val)) {
|
|
141
|
+
return val.map((v) => this.unbreakscape(v, options));
|
|
142
|
+
}
|
|
143
|
+
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
|
|
144
|
+
if (!isString(val))
|
|
145
|
+
return val;
|
|
146
|
+
const { regex, replacer } = selectUnbreakscapeRegexAndReplacer(options.format, options.location);
|
|
147
|
+
let str = val;
|
|
148
|
+
str = str.replace(regex, replacer);
|
|
149
|
+
return str;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Breakscape a code string or an array of code strings.
|
|
153
|
+
* If the input is an array, a new array will be returned.
|
|
154
|
+
*
|
|
155
|
+
* @param val input value
|
|
156
|
+
* @param modifyArray if true, the original array will be modified rather than a copy being made
|
|
157
|
+
* @returns the input value with any strings breakscaped
|
|
158
|
+
*/
|
|
159
|
+
breakscapeCode(val, options) {
|
|
160
|
+
if (val == null)
|
|
161
|
+
return val;
|
|
162
|
+
const opts = Object.assign({}, DEF, options);
|
|
163
|
+
const breakscapeStr = (str) => {
|
|
164
|
+
if (!str)
|
|
165
|
+
return str;
|
|
166
|
+
return str.replace(RC.BREAKSCAPE_CODE_REGEX, RC.BREAKSCAPE_CODE_REGEX_REPLACER);
|
|
167
|
+
};
|
|
168
|
+
if (Array.isArray(val)) {
|
|
169
|
+
const newVal = opts.inPlaceArray ? val : [val.length];
|
|
170
|
+
for (let i = 0, len = val.length; i < len; i++) {
|
|
171
|
+
const v = val[i];
|
|
172
|
+
if (isString(v)) {
|
|
173
|
+
val[i] = breakscapeStr(v);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
val = newVal;
|
|
177
|
+
}
|
|
178
|
+
else if (isString(val)) {
|
|
179
|
+
val = breakscapeStr(val);
|
|
180
|
+
}
|
|
181
|
+
return val;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Gets the version of the breakscape library.
|
|
185
|
+
*
|
|
186
|
+
* @returns The current version string of the library.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* const breakscape = new Breakscape();
|
|
191
|
+
* console.log(breakscape.version()); // e.g., "1.0.0"
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
version() {
|
|
195
|
+
return build_info_1.buildInfo.version;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Gets the license information for the breakscape library.
|
|
199
|
+
*
|
|
200
|
+
* @returns The license string for the library.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* const breakscape = new Breakscape();
|
|
205
|
+
* console.log(breakscape.license()); // e.g., "MIT"
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
license() {
|
|
209
|
+
return build_info_1.buildInfo.license;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
exports.Breakscape = Breakscape;
|
|
213
|
+
//# sourceMappingURL=BreakscapeRegex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BreakscapeRegex.js","sourceRoot":"","sources":["../../../src/breakscaping/BreakscapeRegex.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAAoD;AACpD,iEAAkF;AAClF,6DAA4E;AAG5E,mDAAqC;AAErC,kBAAkB;AAClB,MAAM,GAAG,GAAG;IACV,MAAM,EAAE,+BAAc,CAAC,eAAe;IACtC,QAAQ,EAAE,2BAAY,CAAC,IAAI;IAC3B,EAAE,EAAE,KAAK;CACD,CAAC;AAEX;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,YAAY,MAAM,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAS,gCAAgC,CACvC,UAA8B,EAC9B,YAA8B,EAC9B,EAAE,GAAG,KAAK;IAEV,IAAI,YAAY,KAAK,2BAAY,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE,IAAI,UAAU,KAAK,+BAAc,CAAC,eAAe,EAAE,CAAC;YACzD,OAAO;gBACL,KAAK,EAAE,EAAE,CAAC,4BAA4B;gBACtC,QAAQ,EAAE,EAAE,CAAC,qCAAqC;aACnD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,EAAE,CAAC,0BAA0B;YACpC,QAAQ,EAAE,EAAE,CAAC,mCAAmC;SACjD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,UAAU,KAAK,+BAAc,CAAC,eAAe,EAAE,CAAC;YAClD,IAAI,EAAE,EAAE,CAAC;gBACP,OAAO;oBACL,KAAK,EAAE,EAAE,CAAC,wBAAwB;oBAClC,QAAQ,EAAE,EAAE,CAAC,iCAAiC;iBAC/C,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,EAAE,CAAC,6BAA6B;gBACvC,QAAQ,EAAE,EAAE,CAAC,sCAAsC;aACpD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,EAAE,CAAC,2BAA2B;YACrC,QAAQ,EAAE,EAAE,CAAC,oCAAoC;SAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kCAAkC,CACzC,UAA8B,EAC9B,YAA8B;IAE9B,MAAM,OAAO,GAAG,UAAU,KAAK,+BAAc,CAAC,eAAe,CAAC;IAC9D,IAAI,YAAY,KAAK,2BAAY,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,EAAE,CAAC,gCAAgC;YAC1C,QAAQ,EAAE,EAAE,CAAC,yCAAyC;SACvD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,EAAE,CAAC,kBAAkB;QAC5B,QAAQ,EAAE,EAAE,CAAC,2BAA2B;KACzC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,UAAU;IAAhB;QACkB,iBAAY,GAAG,EAAY,CAAC;IAyJ9C,CAAC;IA/GC,UAAU,CAAC,GAAyC,EAAE,OAA0B,EAAE;QAChF,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAa,CAAC;QACjE,CAAC;QAED,oFAAoF;QACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,GAAyB,CAAC;QAErD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3G,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAaD,YAAY,CAAC,GAAyC,EAAE,OAA0B,EAAE;QAClF,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAa,CAAC;QACnE,CAAC;QAED,oFAAoF;QACpF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,GAAyB,CAAC;QAErD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,kCAAkC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjG,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CACnB,GAAM,EACN,OAA2B;QAI3B,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,GAAmB,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAE7C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE;YACpC,IAAI,CAAC,GAAG;gBAAE,OAAO,GAAG,CAAC;YACrB,OAAO,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC;QAClF,CAAC,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAc,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChB,GAAG,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,GAAG,GAAG,MAAW,CAAC;QACpB,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,aAAa,CAAC,GAAa,CAAM,CAAC;QAC1C,CAAC;QAED,OAAO,GAAmB,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACL,OAAO,sBAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACL,OAAO,sBAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;CACF;AAEQ,gCAAU"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Centralized regex and replacer constants for breakscape and unbreakscape.
|
|
4
|
+
* Extracted from breakscape-regex.ts to simplify core logic.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BREAKSCAPE_CODE_REGEX_REPLACER = exports.BREAKSCAPE_CODE_REGEX = exports.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX_REPLACER = exports.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX = exports.UNBREAKSCAPE_REGEX_REPLACER = exports.UNBREAKSCAPE_REGEX = exports.BREAKSCAPE_V2_BODY_REGEX_REPLACER = exports.BREAKSCAPE_V2_BODY_REGEX = exports.BREAKSCAPE_PLAIN_BODY_REGEX_REPLACER = exports.BREAKSCAPE_PLAIN_BODY_REGEX = exports.BREAKSCAPE_BITMARK_BODY_REGEX_REPLACER = exports.BREAKSCAPE_BITMARK_BODY_REGEX = exports.BREAKSCAPE_PLAIN_TAG_REGEX_REPLACER = exports.BREAKSCAPE_PLAIN_TAG_REGEX = exports.BREAKSCAPE_BITMARK_TAG_REGEX_REPLACER = exports.BREAKSCAPE_BITMARK_TAG_REGEX = exports.BREAKSCAPE_PLAIN_BODY_REGEX_SOURCE = exports.BREAKSCAPE_BITMARK_BODY_REGEX_SOURCE = exports.BREAKSCAPE_PLAIN_TAG_REGEX_SOURCE = exports.BREAKSCAPE_BITMARK_TAG_REGEX_SOURCE = exports.REGEX_HATS = exports.REGEX_BIT_START = exports.REGEX_END_OF_TAG = exports.REGEX_PLAIN_TEXT_DIVIDER = exports.REGEX_FOOTER_DIVIDER = exports.REGEX_START_OF_TAG = exports.REGEX_LIST_BLOCKS = exports.REGEX_TITLE_BLOCKS = exports.REGEX_BLOCKS = exports.REGEX_MARKS = void 0;
|
|
8
|
+
exports.REGEX_MARKS = /([*`_!=])(?=\1)/; // BM_TAG: $1^ --BODY: $1^ ++BODY: $1^
|
|
9
|
+
exports.REGEX_BLOCKS = /^(\|)(code[\s]*|code:|image:|[\s]*$)/; // ++BODY: $2^$3
|
|
10
|
+
exports.REGEX_TITLE_BLOCKS = /^([#]{1,3})([^\S\r\n]+)/; // ++BODY: $4^$5
|
|
11
|
+
exports.REGEX_LIST_BLOCKS = /^(•)([0-9]+[iI]*|[a-zA-Z]{1}|_|\+|-|)([^\S\r\n]+)/; // ++BODY: $6^$7$8
|
|
12
|
+
exports.REGEX_START_OF_TAG = /(\[)([.@#▼►%!?+\-$_=&])/; // --BODY: $2^$3 ++BODY: $9^$10
|
|
13
|
+
exports.REGEX_FOOTER_DIVIDER = /^(~)(~~~[ \t]*)$/; // --BODY: $4^$5 ++BODY: $11^$12
|
|
14
|
+
exports.REGEX_PLAIN_TEXT_DIVIDER = /^(\$)(\$\$\$[ \t]*)$/; // --BODY: $6^$7 ++BODY: $13^$14
|
|
15
|
+
exports.REGEX_END_OF_TAG = /(\^*])/; // BM_TAG: ^$2 PLAIN_TAG: ^$1
|
|
16
|
+
exports.REGEX_BIT_START = /^(\[)(\^*)(\.)/; // PLAIN_BODY: $1^$2$3
|
|
17
|
+
exports.REGEX_HATS = /(\^+)/; // BM_TAG: $3^ PLAIN_TAG: $2^ --BODY: ^$8 ++BODY: $15^ // Must be last
|
|
18
|
+
exports.BREAKSCAPE_BITMARK_TAG_REGEX_SOURCE = `${exports.REGEX_MARKS.source}|${exports.REGEX_END_OF_TAG.source}|${exports.REGEX_HATS.source}`;
|
|
19
|
+
exports.BREAKSCAPE_PLAIN_TAG_REGEX_SOURCE = `${exports.REGEX_END_OF_TAG.source}|${exports.REGEX_HATS.source}`;
|
|
20
|
+
exports.BREAKSCAPE_BITMARK_BODY_REGEX_SOURCE = `${exports.REGEX_MARKS.source}|${exports.REGEX_BLOCKS.source}|${exports.REGEX_TITLE_BLOCKS.source}|${exports.REGEX_LIST_BLOCKS.source}|${exports.REGEX_START_OF_TAG.source}|${exports.REGEX_FOOTER_DIVIDER.source}|${exports.REGEX_PLAIN_TEXT_DIVIDER.source}|${exports.REGEX_HATS.source}`;
|
|
21
|
+
exports.BREAKSCAPE_PLAIN_BODY_REGEX_SOURCE = `${exports.REGEX_BIT_START.source}`;
|
|
22
|
+
exports.BREAKSCAPE_BITMARK_TAG_REGEX = new RegExp(exports.BREAKSCAPE_BITMARK_TAG_REGEX_SOURCE, 'gm');
|
|
23
|
+
exports.BREAKSCAPE_BITMARK_TAG_REGEX_REPLACER = '$1$3^$2';
|
|
24
|
+
exports.BREAKSCAPE_PLAIN_TAG_REGEX = new RegExp(exports.BREAKSCAPE_PLAIN_TAG_REGEX_SOURCE, 'gm');
|
|
25
|
+
exports.BREAKSCAPE_PLAIN_TAG_REGEX_REPLACER = '$2^$1';
|
|
26
|
+
exports.BREAKSCAPE_BITMARK_BODY_REGEX = new RegExp(exports.BREAKSCAPE_BITMARK_BODY_REGEX_SOURCE, 'gm');
|
|
27
|
+
exports.BREAKSCAPE_BITMARK_BODY_REGEX_REPLACER = '$1$2$4$6$9$11$13$15^$3$5$7$8$10$12$14';
|
|
28
|
+
exports.BREAKSCAPE_PLAIN_BODY_REGEX = new RegExp(exports.BREAKSCAPE_PLAIN_BODY_REGEX_SOURCE, 'gm');
|
|
29
|
+
exports.BREAKSCAPE_PLAIN_BODY_REGEX_REPLACER = '$1^$2$3';
|
|
30
|
+
exports.BREAKSCAPE_V2_BODY_REGEX = new RegExp('^(?:(\\[)(\\^*)(\\.))|(\\^+)', 'gm');
|
|
31
|
+
exports.BREAKSCAPE_V2_BODY_REGEX_REPLACER = '$1$4^$2$3';
|
|
32
|
+
exports.UNBREAKSCAPE_REGEX = new RegExp('\\^([\\^]*)', 'gm');
|
|
33
|
+
exports.UNBREAKSCAPE_REGEX_REPLACER = '$1';
|
|
34
|
+
exports.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX = new RegExp('^(\\[)\\^(\\^*)(\\.)', 'gm');
|
|
35
|
+
exports.UNBREAKSCAPE_PLAIN_IN_BODY_REGEX_REPLACER = '$1$2$3';
|
|
36
|
+
exports.BREAKSCAPE_CODE_REGEX = new RegExp('^(\\||•|#)', 'gm');
|
|
37
|
+
exports.BREAKSCAPE_CODE_REGEX_REPLACER = '$1^';
|
|
38
|
+
//# sourceMappingURL=RegexConfigs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegexConfigs.js","sourceRoot":"","sources":["../../../src/breakscaping/RegexConfigs.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,WAAW,GAAG,iBAAiB,CAAC,CAAC,wCAAwC;AACzE,QAAA,YAAY,GAAG,sCAAsC,CAAC,CAAC,gBAAgB;AACvE,QAAA,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,gBAAgB;AAChE,QAAA,iBAAiB,GAAG,mDAAmD,CAAC,CAAC,kBAAkB;AAC3F,QAAA,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,gCAAgC;AAChF,QAAA,oBAAoB,GAAG,kBAAkB,CAAC,CAAC,iCAAiC;AAC5E,QAAA,wBAAwB,GAAG,sBAAsB,CAAC,CAAC,iCAAiC;AACpF,QAAA,gBAAgB,GAAG,QAAQ,CAAC,CAAC,8BAA8B;AAC3D,QAAA,eAAe,GAAG,gBAAgB,CAAC,CAAC,sBAAsB;AAC1D,QAAA,UAAU,GAAG,OAAO,CAAC,CAAC,0EAA0E;AAEhG,QAAA,mCAAmC,GAAG,GAAG,mBAAW,CAAC,MAAM,IAAI,wBAAgB,CAAC,MAAM,IAAI,kBAAU,CAAC,MAAM,EAAE,CAAC;AAC9G,QAAA,iCAAiC,GAAG,GAAG,wBAAgB,CAAC,MAAM,IAAI,kBAAU,CAAC,MAAM,EAAE,CAAC;AACtF,QAAA,oCAAoC,GAAG,GAAG,mBAAW,CAAC,MAAM,IAAI,oBAAY,CAAC,MAAM,IAAI,0BAAkB,CAAC,MAAM,IAAI,yBAAiB,CAAC,MAAM,IAAI,0BAAkB,CAAC,MAAM,IAAI,4BAAoB,CAAC,MAAM,IAAI,gCAAwB,CAAC,MAAM,IAAI,kBAAU,CAAC,MAAM,EAAE,CAAC;AACnQ,QAAA,kCAAkC,GAAG,GAAG,uBAAe,CAAC,MAAM,EAAE,CAAC;AAEjE,QAAA,4BAA4B,GAAG,IAAI,MAAM,CAAC,2CAAmC,EAAE,IAAI,CAAC,CAAC;AACrF,QAAA,qCAAqC,GAAG,SAAS,CAAC;AAElD,QAAA,0BAA0B,GAAG,IAAI,MAAM,CAAC,yCAAiC,EAAE,IAAI,CAAC,CAAC;AACjF,QAAA,mCAAmC,GAAG,OAAO,CAAC;AAE9C,QAAA,6BAA6B,GAAG,IAAI,MAAM,CAAC,4CAAoC,EAAE,IAAI,CAAC,CAAC;AACvF,QAAA,sCAAsC,GAAG,uCAAuC,CAAC;AAEjF,QAAA,2BAA2B,GAAG,IAAI,MAAM,CAAC,0CAAkC,EAAE,IAAI,CAAC,CAAC;AACnF,QAAA,oCAAoC,GAAG,SAAS,CAAC;AAEjD,QAAA,wBAAwB,GAAG,IAAI,MAAM,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;AAC5E,QAAA,iCAAiC,GAAG,WAAW,CAAC;AAEhD,QAAA,kBAAkB,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACrD,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEnC,QAAA,gCAAgC,GAAG,IAAI,MAAM,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAC5E,QAAA,yCAAyC,GAAG,QAAQ,CAAC;AAErD,QAAA,qBAAqB,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACvD,QAAA,8BAA8B,GAAG,KAAK,CAAC"}
|
|
@@ -5,7 +5,7 @@ exports.buildInfo = void 0;
|
|
|
5
5
|
/* eslint-disable */
|
|
6
6
|
exports.buildInfo = {
|
|
7
7
|
"name": "@gmb/bitmark-parser-generator",
|
|
8
|
-
"version": "3.31.
|
|
8
|
+
"version": "3.31.1",
|
|
9
9
|
"author": "Get More Brain Ltd",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"description": "A bitmark parser and generator using Peggy.js"
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { TextFormat } from '../model/enum/TextFormat';
|
|
2
2
|
import { TextLocation } from '../model/enum/TextLocation';
|
|
3
|
-
|
|
4
|
-
const ExternalBreakscape = require('@gmb/bitmark-breakscape');
|
|
3
|
+
import { Breakscape as BreakscapeImpl } from './BreakscapeRegex';
|
|
5
4
|
const DEFAULT_BREAKSCAPE_OPTIONS = {
|
|
6
5
|
textFormat: TextFormat.bitmarkText,
|
|
7
6
|
textLocation: TextLocation.body,
|
|
8
7
|
inPlaceArray: false,
|
|
9
8
|
v2: false,
|
|
10
9
|
};
|
|
11
|
-
const externalBreakscape = new
|
|
10
|
+
const externalBreakscape = new BreakscapeImpl();
|
|
12
11
|
class Breakscape {
|
|
13
12
|
constructor() {
|
|
14
13
|
this.EMPTY_STRING = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breakscape.js","sourceRoot":"","sources":["../../../src/breakscaping/Breakscape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Breakscape.js","sourceRoot":"","sources":["../../../src/breakscaping/Breakscape.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAoB,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgCjE,MAAM,0BAA0B,GAAsB;IACpD,UAAU,EAAE,UAAU,CAAC,WAAW;IAClC,YAAY,EAAE,YAAY,CAAC,IAAI;IAC/B,YAAY,EAAE,KAAK;IACnB,EAAE,EAAE,KAAK;CACV,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,cAAc,EAAE,CAAC;AAEhD,MAAM,UAAU;IAAhB;QACkB,iBAAY,GAAG,EAAuB,CAAC;IAqFzD,CAAC;IAnFC;;;;;;;;OAQG;IACI,UAAU,CACf,GAAM,EACN,OAA0B;QAI1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAEpE,OAAO,kBAAkB,CAAC,UAAU,CAAC,GAAwB,EAAE;YAC7D,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAM,CAAC;IACV,CAAC;IAED;;;;;;;OAOG;IACI,YAAY,CACjB,GAAM,EACN,OAA0B;QAI1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAEpE,OAAO,kBAAkB,CAAC,YAAY,CAAC,GAAwB,EAAE;YAC/D,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAM,CAAC;IACV,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CACnB,GAAM,EACN,OAA2B;QAI3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAEpE,OAAO,kBAAkB,CAAC,cAAc,CAAC,GAAwB,EAAE;YACjE,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAM,CAAC;IACV,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,EAAqB,EAAE,EAAqB;QAC7D,OAAO,CAAC,EAAE,GAAG,EAAE,CAAsB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;AAElC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* breakscape.ts
|
|
3
|
+
* ------------------------------------------------------------
|
|
4
|
+
* Breakscaping for bitmark text.
|
|
5
|
+
* (c) 2025 — MIT / public domain
|
|
6
|
+
*/
|
|
7
|
+
import { buildInfo } from '../generated/build-info';
|
|
8
|
+
import { BodyTextFormat } from '../model/enum/BodyTextFormat';
|
|
9
|
+
import { TextLocation } from '../model/enum/TextLocation';
|
|
10
|
+
const DEF = {
|
|
11
|
+
format: BodyTextFormat.bitmarkPlusPlus,
|
|
12
|
+
location: TextLocation.body,
|
|
13
|
+
};
|
|
14
|
+
// -----------------------------------------------------------------------------
|
|
15
|
+
// ╭──────────────────────────────────────────────────────────────────────────╮
|
|
16
|
+
// │ 1. LOW‑LEVEL helpers │
|
|
17
|
+
// ╰──────────────────────────────────────────────────────────────────────────╯
|
|
18
|
+
// 1‑a) Trigger characters that start a bit tag construct when they follow "["
|
|
19
|
+
const TRIGGERS = new Set('.@#▼►%!?+-$_=&');
|
|
20
|
+
// 1‑b) Paired punctuation we have to split with a caret
|
|
21
|
+
const HALF_TAGS = new Set(['*', '`', '_', '!', '=']);
|
|
22
|
+
/**
|
|
23
|
+
* Predicate – true for every flavour that the spec calls “bitmark text”
|
|
24
|
+
*/
|
|
25
|
+
function isBitmarkText(fmt) {
|
|
26
|
+
// Only bitmarkPlusPlus is defined in TextFormat, so only check for that
|
|
27
|
+
return fmt === BodyTextFormat.bitmarkPlusPlus || fmt === 'bitmark+' || fmt === 'bitmark--';
|
|
28
|
+
}
|
|
29
|
+
// -----------------------------------------------------------------------------
|
|
30
|
+
// 1‑c) Single‑buffer worker (BREAKSCAPE)
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
function breakscapeBuf(src, fmt, loc) {
|
|
33
|
+
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
|
|
34
|
+
if (!isString(src))
|
|
35
|
+
return src;
|
|
36
|
+
const bitmarkText = isBitmarkText(fmt);
|
|
37
|
+
const body = loc === TextLocation.body;
|
|
38
|
+
const inTag = loc === TextLocation.tag;
|
|
39
|
+
const len = src.length;
|
|
40
|
+
// Assume breakscaping will usually increas the length of the string by less than 20%
|
|
41
|
+
// we can allocate a buffer of that size as reallocation is expensive
|
|
42
|
+
const out = new Array(Math.ceil(len * 1.1)); // upper bound
|
|
43
|
+
let atLineStart = true;
|
|
44
|
+
let col = 0;
|
|
45
|
+
for (let i = 0; i < len;) {
|
|
46
|
+
const ch = src.charCodeAt(i); // number
|
|
47
|
+
const nxt = i + 1 < len ? src.charCodeAt(i + 1) : 0;
|
|
48
|
+
// 1) newline ----------------------------------------------------------
|
|
49
|
+
if (ch === 0x0a) {
|
|
50
|
+
// '\n'
|
|
51
|
+
out.push('\n');
|
|
52
|
+
atLineStart = true;
|
|
53
|
+
col = 0;
|
|
54
|
+
i++;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const space = ch === 0x20 || ch === 0x09; // ' ' or '\t'
|
|
58
|
+
const physicalBOC = col === 0; // zero indent
|
|
59
|
+
// 2) hats -------------------------------------------------------------
|
|
60
|
+
if (bitmarkText || inTag) {
|
|
61
|
+
if (ch === 0x5e) {
|
|
62
|
+
// '^'
|
|
63
|
+
let j = i + 1;
|
|
64
|
+
while (j < len && src.charCodeAt(j) === 0x5e)
|
|
65
|
+
j++;
|
|
66
|
+
out.push('^'); // extra one
|
|
67
|
+
out.push(src.slice(i, j)); // original run
|
|
68
|
+
col += j - i;
|
|
69
|
+
i = j;
|
|
70
|
+
atLineStart = false;
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// 3) inline doubles ---------------------------------------------------
|
|
75
|
+
if (bitmarkText && HALF_TAGS.has(String.fromCharCode(ch))) {
|
|
76
|
+
out.push(String.fromCharCode(ch));
|
|
77
|
+
if (nxt === ch)
|
|
78
|
+
out.push('^');
|
|
79
|
+
i++;
|
|
80
|
+
col++;
|
|
81
|
+
atLineStart = false;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
// 4) end-of-tag -------------------------------------------------------
|
|
85
|
+
if (inTag && ch === 0x5d /* ']' */ && (i === 0 || src.charCodeAt(i - 1) !== 0x5e)) {
|
|
86
|
+
out.push('^', ']');
|
|
87
|
+
i++;
|
|
88
|
+
col++;
|
|
89
|
+
atLineStart = false;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
// 5) body-only rules --------------------------------------------------
|
|
93
|
+
if (body) {
|
|
94
|
+
// (a) ### | • at BOL
|
|
95
|
+
if (atLineStart && physicalBOC && bitmarkText && (ch === 0x23 || ch === 0x7c || ch === 0x2022)) {
|
|
96
|
+
let j = i;
|
|
97
|
+
while (j < len && src.charCodeAt(j) === ch)
|
|
98
|
+
j++;
|
|
99
|
+
out.push(src.slice(i, j));
|
|
100
|
+
if (nxt !== 0x5e)
|
|
101
|
+
out.push('^');
|
|
102
|
+
col += j - i;
|
|
103
|
+
i = j;
|
|
104
|
+
atLineStart = false;
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
// (b) '[' + trigger
|
|
108
|
+
if (bitmarkText && ch === 0x5b /* '[' */ && TRIGGERS.has(String.fromCharCode(nxt))) {
|
|
109
|
+
out.push('[', '^');
|
|
110
|
+
i++;
|
|
111
|
+
col++;
|
|
112
|
+
atLineStart = false;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// 6) plain-text "[." or "[^^... ." at BOL
|
|
117
|
+
if (!bitmarkText && body && atLineStart && physicalBOC && ch === 0x5b /* '[' */) {
|
|
118
|
+
// count carets after '['
|
|
119
|
+
let j = i + 1;
|
|
120
|
+
let count = 0;
|
|
121
|
+
while (j < len && src.charCodeAt(j) === 0x5e /* '^' */) {
|
|
122
|
+
count++;
|
|
123
|
+
j++;
|
|
124
|
+
}
|
|
125
|
+
// if next char is dot, escape by adding one more caret
|
|
126
|
+
if (j < len && src.charCodeAt(j) === 0x2e /* '.' */) {
|
|
127
|
+
out.push('[');
|
|
128
|
+
for (let k = 0; k < count + 1; k++)
|
|
129
|
+
out.push('^');
|
|
130
|
+
col += count + 1;
|
|
131
|
+
i = j; // skip '[' and all carets, next iteration handles '.'
|
|
132
|
+
atLineStart = false;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// default copy --------------------------------------------------------
|
|
137
|
+
out.push(String.fromCharCode(ch));
|
|
138
|
+
if (!space)
|
|
139
|
+
atLineStart = false;
|
|
140
|
+
col++;
|
|
141
|
+
i++;
|
|
142
|
+
}
|
|
143
|
+
return out.join('');
|
|
144
|
+
}
|
|
145
|
+
// -----------------------------------------------------------------------------
|
|
146
|
+
// 1‑d) Single‑buffer worker (UNBREAKSCAPE)
|
|
147
|
+
// -----------------------------------------------------------------------------
|
|
148
|
+
function unbreakscapeBuf(src, fmt, loc) {
|
|
149
|
+
// If an unrecognized type is passed, return it as is (e.g. true, false, 0, 1, etc.)
|
|
150
|
+
if (!isString(src))
|
|
151
|
+
return src;
|
|
152
|
+
const bitmarkText = isBitmarkText(fmt);
|
|
153
|
+
const isTag = loc === TextLocation.tag;
|
|
154
|
+
const isPlainBody = loc === TextLocation.body && !bitmarkText;
|
|
155
|
+
const len = src.length;
|
|
156
|
+
const out = new Array(len); // upper bound
|
|
157
|
+
let outPos = 0;
|
|
158
|
+
let bol = true; // beginning-of-line flag
|
|
159
|
+
for (let i = 0; i < len;) {
|
|
160
|
+
const ch = src[i];
|
|
161
|
+
// 1) HATS – remove exactly one ^ from each run
|
|
162
|
+
if ((bitmarkText || isTag) && ch === '^') {
|
|
163
|
+
let j = i + 1;
|
|
164
|
+
while (j < len && src[j] === '^')
|
|
165
|
+
j++;
|
|
166
|
+
if (j - i > 1)
|
|
167
|
+
out[outPos++] = src.slice(i + 1, j); // keep the rest
|
|
168
|
+
i = j;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
// 2) PLAIN-body “[ ^ .” with zero indent
|
|
172
|
+
if (isPlainBody && bol && ch === '[') {
|
|
173
|
+
let j = i + 1;
|
|
174
|
+
let count = 0;
|
|
175
|
+
while (j < len && src[j] === '^') {
|
|
176
|
+
count++;
|
|
177
|
+
j++;
|
|
178
|
+
}
|
|
179
|
+
if (count >= 1 && j < len && src[j] === '.') {
|
|
180
|
+
out[outPos++] = '[';
|
|
181
|
+
for (let k = 0; k < count - 1; k++)
|
|
182
|
+
out[outPos++] = '^';
|
|
183
|
+
out[outPos++] = '.';
|
|
184
|
+
i = j + 1;
|
|
185
|
+
bol = false;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// 3) default copy
|
|
190
|
+
out[outPos++] = ch;
|
|
191
|
+
i++;
|
|
192
|
+
// keep bol up to date
|
|
193
|
+
if (ch === '\n')
|
|
194
|
+
bol = true;
|
|
195
|
+
else if (bol && ch !== ' ' && ch !== '\t')
|
|
196
|
+
bol = false;
|
|
197
|
+
}
|
|
198
|
+
return out.slice(0, outPos).join('');
|
|
199
|
+
}
|
|
200
|
+
// -----------------------------------------------------------------------------
|
|
201
|
+
// ╭──────────────────────────────────────────────────────────────────────────╮
|
|
202
|
+
// │ 2. PUBLIC API │
|
|
203
|
+
// ╰──────────────────────────────────────────────────────────────────────────╯
|
|
204
|
+
function isString(x) {
|
|
205
|
+
return typeof x === 'string' || x instanceof String;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Main class for performing breakscape and unbreakscape operations on bitmark text.
|
|
209
|
+
*
|
|
210
|
+
* Breakscaping is the process of escaping special characters in bitmark text to prevent
|
|
211
|
+
* them from being interpreted as markup. This includes adding caret (^) characters before
|
|
212
|
+
* special characters that would otherwise be interpreted as bitmark syntax.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* const breakscape = new Breakscape();
|
|
217
|
+
*
|
|
218
|
+
* // Breakscape a string
|
|
219
|
+
* const escaped = breakscape.breakscape('[.hello]');
|
|
220
|
+
*
|
|
221
|
+
* // Unbreakscape a string
|
|
222
|
+
* const unescaped = breakscape.unbreakscape('[^.hello]');
|
|
223
|
+
*
|
|
224
|
+
* // Process arrays
|
|
225
|
+
* const escapedArray = breakscape.breakscape(['[.hello]', '[.world]']);
|
|
226
|
+
* ```
|
|
227
|
+
*
|
|
228
|
+
* @public
|
|
229
|
+
*/
|
|
230
|
+
class Breakscape {
|
|
231
|
+
breakscape(val, opts = {}) {
|
|
232
|
+
const { format: fmt, location: loc } = Object.assign(Object.assign({}, DEF), opts);
|
|
233
|
+
if (val == null)
|
|
234
|
+
return undefined;
|
|
235
|
+
const proc = (s) => breakscapeBuf(s, fmt, loc);
|
|
236
|
+
if (Array.isArray(val)) {
|
|
237
|
+
const a = opts.inPlaceArray ? val : [...val];
|
|
238
|
+
for (let i = 0; i < a.length; i++)
|
|
239
|
+
if (isString(a[i]))
|
|
240
|
+
a[i] = proc(a[i]);
|
|
241
|
+
return a;
|
|
242
|
+
}
|
|
243
|
+
return proc(val);
|
|
244
|
+
}
|
|
245
|
+
unbreakscape(val, opts = {}) {
|
|
246
|
+
const { format: fmt, location: loc } = Object.assign(Object.assign({}, DEF), opts);
|
|
247
|
+
if (val == null)
|
|
248
|
+
return undefined;
|
|
249
|
+
const proc = (s) => unbreakscapeBuf(s, fmt, loc);
|
|
250
|
+
if (Array.isArray(val)) {
|
|
251
|
+
const a = opts.inPlaceArray ? val : [...val];
|
|
252
|
+
for (let i = 0; i < a.length; i++)
|
|
253
|
+
if (isString(a[i]))
|
|
254
|
+
a[i] = proc(a[i]);
|
|
255
|
+
return a;
|
|
256
|
+
}
|
|
257
|
+
return proc(val);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Breakscape a code string or an array of code strings.
|
|
261
|
+
* If the input is an array, a new array will be returned.
|
|
262
|
+
*
|
|
263
|
+
* @param val input value
|
|
264
|
+
* @param modifyArray if true, the original array will be modified rather than a copy being made
|
|
265
|
+
* @returns the input value with any strings breakscaped
|
|
266
|
+
*/
|
|
267
|
+
breakscapeCode(_val, _options) {
|
|
268
|
+
_val; // to avoid unused variable warning
|
|
269
|
+
_options; // to avoid unused variable warning
|
|
270
|
+
throw new Error('breakscapeCode is not implemented.');
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Gets the version of the breakscape library.
|
|
274
|
+
*
|
|
275
|
+
* @returns The current version string of the library.
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```typescript
|
|
279
|
+
* const breakscape = new Breakscape();
|
|
280
|
+
* console.log(breakscape.version()); // e.g., "1.0.0"
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
version() {
|
|
284
|
+
return buildInfo.version;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Gets the license information for the breakscape library.
|
|
288
|
+
*
|
|
289
|
+
* @returns The license string for the library.
|
|
290
|
+
*
|
|
291
|
+
* @example
|
|
292
|
+
* ```typescript
|
|
293
|
+
* const breakscape = new Breakscape();
|
|
294
|
+
* console.log(breakscape.license()); // e.g., "MIT"
|
|
295
|
+
* ```
|
|
296
|
+
*/
|
|
297
|
+
license() {
|
|
298
|
+
return buildInfo.license;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
export { Breakscape };
|
|
302
|
+
//# sourceMappingURL=BreakscapeLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BreakscapeLoop.js","sourceRoot":"","sources":["../../../src/breakscaping/BreakscapeLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BreakscapeOptions.js","sourceRoot":"","sources":["../../../src/breakscaping/BreakscapeOptions.ts"],"names":[],"mappings":""}
|