@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.
Files changed (34) hide show
  1. package/dist/browser/bitmark-parser-generator.min.js +1 -1
  2. package/dist/browser/bundle-report.html +2 -2
  3. package/dist/cjs/breakscaping/Breakscape.js +2 -3
  4. package/dist/cjs/breakscaping/Breakscape.js.map +1 -1
  5. package/dist/cjs/breakscaping/BreakscapeLoop.js +305 -0
  6. package/dist/cjs/breakscaping/BreakscapeLoop.js.map +1 -0
  7. package/dist/cjs/breakscaping/BreakscapeOptions.js +3 -0
  8. package/dist/cjs/breakscaping/BreakscapeOptions.js.map +1 -0
  9. package/dist/cjs/breakscaping/BreakscapeRegex.js +213 -0
  10. package/dist/cjs/breakscaping/BreakscapeRegex.js.map +1 -0
  11. package/dist/cjs/breakscaping/RegexConfigs.js +38 -0
  12. package/dist/cjs/breakscaping/RegexConfigs.js.map +1 -0
  13. package/dist/cjs/generated/build-info.js +1 -1
  14. package/dist/esm/breakscaping/Breakscape.js +2 -3
  15. package/dist/esm/breakscaping/Breakscape.js.map +1 -1
  16. package/dist/esm/breakscaping/BreakscapeLoop.js +302 -0
  17. package/dist/esm/breakscaping/BreakscapeLoop.js.map +1 -0
  18. package/dist/esm/breakscaping/BreakscapeOptions.js +2 -0
  19. package/dist/esm/breakscaping/BreakscapeOptions.js.map +1 -0
  20. package/dist/esm/breakscaping/BreakscapeRegex.js +177 -0
  21. package/dist/esm/breakscaping/BreakscapeRegex.js.map +1 -0
  22. package/dist/esm/breakscaping/RegexConfigs.js +35 -0
  23. package/dist/esm/breakscaping/RegexConfigs.js.map +1 -0
  24. package/dist/esm/generated/build-info.js +1 -1
  25. package/dist/types/breakscaping/Breakscape.d.ts.map +1 -1
  26. package/dist/types/breakscaping/BreakscapeLoop.d.ts +142 -0
  27. package/dist/types/breakscaping/BreakscapeLoop.d.ts.map +1 -0
  28. package/dist/types/breakscaping/BreakscapeOptions.d.ts +30 -0
  29. package/dist/types/breakscaping/BreakscapeOptions.d.ts.map +1 -0
  30. package/dist/types/breakscaping/BreakscapeRegex.d.ts +96 -0
  31. package/dist/types/breakscaping/BreakscapeRegex.d.ts.map +1 -0
  32. package/dist/types/breakscaping/RegexConfigs.d.ts +35 -0
  33. package/dist/types/breakscaping/RegexConfigs.d.ts.map +1 -0
  34. 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":"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"}
@@ -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.0",
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
- // eslint-disable-next-line @typescript-eslint/no-require-imports
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 ExternalBreakscape.Breakscape();
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":"AAGA,OAAO,EAAE,UAAU,EAAkB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAoB,MAAM,4BAA4B,CAAC;AAE5E,iEAAiE;AACjE,MAAM,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAA4B,CAAC;AAgCzF,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,kBAAkB,CAAC,UAAU,EAAE,CAAC;AAE/D,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"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BreakscapeOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakscapeOptions.js","sourceRoot":"","sources":["../../../src/breakscaping/BreakscapeOptions.ts"],"names":[],"mappings":""}