@gmb/bitmark-parser-generator 4.3.0 → 4.5.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.
package/dist/index.cjs CHANGED
@@ -72,6 +72,7 @@ var BitType = (0, import_superenum.superenum)({
72
72
  // Not to be used as a bit, but as a base for other bit types
73
73
  advertising: "advertising",
74
74
  advertisingAdvertorial: "advertising-advertorial",
75
+ advertisingAdvertorialPage: "advertising-advertorial-page",
75
76
  advertisingCallToAction: "advertising-call-to-action",
76
77
  advertisingCallToActionMeeting: "advertising-call-to-action-meeting",
77
78
  advertisingBanner: "advertising-banner",
@@ -299,8 +300,8 @@ var BitType = (0, import_superenum.superenum)({
299
300
  extractorAiChat: "extractor-ai-chat",
300
301
  extractorBlock: "extractor-block",
301
302
  extractorConfiguration: "extractor-configuration",
302
- extractorEmbeddedImage: "extractor-embedded-image",
303
- extractorEmbeddedImageCollapsible: "extractor-embedded-image-collapsible",
303
+ extractorImage: "extractor-image",
304
+ extractorImageCollapsible: "extractor-image-collapsible",
304
305
  extractorInformation: "extractor-information",
305
306
  extractorPage: "extractor-page",
306
307
  extractorPageCollapsible: "extractor-page-collapsible",
@@ -6321,15 +6322,15 @@ var BITS = {
6321
6322
  description: "Extractor configuration bit, used to configure extractors in articles or books",
6322
6323
  textFormatDefault: TextFormat.plainText
6323
6324
  },
6324
- [BitType.extractorEmbeddedImage]: {
6325
+ [BitType.extractorImage]: {
6325
6326
  since: "4.3.0",
6326
6327
  baseBitType: BitType.image,
6327
6328
  description: "Extractor embedded image bit, used for embedded images extracted from PDFs",
6328
6329
  textFormatDefault: TextFormat.plainText
6329
6330
  },
6330
- [BitType.extractorEmbeddedImageCollapsible]: {
6331
+ [BitType.extractorImageCollapsible]: {
6331
6332
  since: "4.3.0",
6332
- baseBitType: BitType.extractorEmbeddedImage,
6333
+ baseBitType: BitType.extractorImage,
6333
6334
  description: "Collapsible extractor embedded image bit, used for embedded images extracted from PDFs",
6334
6335
  textFormatDefault: TextFormat.plainText
6335
6336
  },
@@ -7569,6 +7570,11 @@ var BITS = {
7569
7570
  baseBitType: BitType.page,
7570
7571
  description: "Page cover image bit, used to create cover images for pages"
7571
7572
  },
7573
+ [BitType.advertisingAdvertorialPage]: {
7574
+ since: "4.5.0",
7575
+ baseBitType: BitType.page,
7576
+ description: "Advertorial Page bit, used to create advertorial pages"
7577
+ },
7572
7578
  [BitType.pageBuyButton]: {
7573
7579
  since: "1.4.3",
7574
7580
  baseBitType: BitType._standard,
@@ -9116,7 +9122,7 @@ var instance2 = new Config();
9116
9122
  // src/generated/package_info.ts
9117
9123
  var PACKAGE_INFO = {
9118
9124
  "name": "@gmb/bitmark-parser-generator",
9119
- "version": "4.3.0",
9125
+ "version": "4.5.0",
9120
9126
  "author": "Get More Brain Ltd",
9121
9127
  "license": "ISC",
9122
9128
  "description": "A bitmark parser and generator using Peggy.js"
@@ -10523,14 +10529,17 @@ var ArrayUtils = class {
10523
10529
  */
10524
10530
  removeDuplicates(arr, keyFunc) {
10525
10531
  const seen = /* @__PURE__ */ new Set();
10526
- for (const item of arr) {
10532
+ let write = 0;
10533
+ for (let read = 0; read < arr.length; read++) {
10534
+ const item = arr[read];
10527
10535
  const k = keyFunc ? keyFunc(item) : item;
10528
- if (seen.has(k)) {
10529
- const index = arr.lastIndexOf(item);
10530
- if (index !== -1) arr.splice(index, 1);
10536
+ if (!seen.has(k)) {
10537
+ seen.add(k);
10538
+ if (write !== read) arr[write] = item;
10539
+ write++;
10531
10540
  }
10532
- seen.add(k);
10533
10541
  }
10542
+ if (write < arr.length) arr.length = write;
10534
10543
  return arr;
10535
10544
  }
10536
10545
  };
@@ -27462,22 +27471,9 @@ var JsonGenerator = class extends AstWalkerGenerator {
27462
27471
  const bitType = this.getBitType(route);
27463
27472
  const parent = this.getParentNode(route);
27464
27473
  if (parser2 && bitType) {
27465
- const {
27466
- version,
27467
- excessResources: parserExcessResources,
27468
- warnings,
27469
- errors,
27470
- ...parserRest
27471
- } = parser2;
27474
+ const { version, warnings, errors, ...parserRest } = parser2;
27472
27475
  const bitmarkVersion = `${this.bitmarkVersion}`;
27473
27476
  const textParserVersion = this.textParserVersion;
27474
- let excessResources;
27475
- if (Array.isArray(parserExcessResources) && parserExcessResources.length > 0) {
27476
- excessResources = [];
27477
- for (const r of parserExcessResources) {
27478
- excessResources.push(r);
27479
- }
27480
- }
27481
27477
  const internalComments = this.getInternalComments(route);
27482
27478
  if (parent?.key === NodeType.bitsValue) {
27483
27479
  this.bitWrapperJson.parser = {
@@ -27487,8 +27483,7 @@ var JsonGenerator = class extends AstWalkerGenerator {
27487
27483
  internalComments,
27488
27484
  ...parserRest,
27489
27485
  warnings,
27490
- errors,
27491
- excessResources
27486
+ errors
27492
27487
  };
27493
27488
  if (!this.options.enableWarnings) {
27494
27489
  delete this.bitWrapperJson.parser.warnings;
@@ -29490,7 +29485,10 @@ var BitmarkPegParserValidator = class {
29490
29485
  if (warning.invalid || warning.excessResource) {
29491
29486
  warningStr = `${keyStr} is not valid here (incorrectly chained?).${ignoredStr}`;
29492
29487
  } else if (warning.tooMany != null) {
29493
- warningStr = `${keyStr} is included more than ${warning.tooMany} time(s).`;
29488
+ warningStr = `${keyStr} is included more than the required ${warning.tooMany} time(s).`;
29489
+ if (warning.tooMany === 0 && typeKey === TypeKey.Resource) {
29490
+ warningStr += ` Did you forget the '${key}' in the bit header?`;
29491
+ }
29494
29492
  if (warning.tooMany > 0) warningStr += " The earlier ones will be ignored";
29495
29493
  } else if (warning.extraProperty) {
29496
29494
  warningStr = `${keyStr} is an unknown property. It can be excluded from the output using the 'excludeUnknownProperties' flag`;
@@ -31263,7 +31261,6 @@ function extractAvatarImage(context, resources) {
31263
31261
  }
31264
31262
  }
31265
31263
  if (excessResources.length > 0) {
31266
- context.parser.excessResources = excessResources;
31267
31264
  context.addWarning(
31268
31265
  `${excessResources.length} excess resource(s) present in the [@person] chain.`
31269
31266
  );
@@ -31536,9 +31533,10 @@ function buildResources(context, resourceTypeAttachment, resources) {
31536
31533
  `Resource type [&${resourceTypeAttachment}] is specified in the bit header, but no such resource is present`
31537
31534
  );
31538
31535
  }
31539
- if (excessResources.length > 0) {
31540
- context.parser.excessResources = excessResources;
31541
- }
31536
+ excessResources.forEach((r) => {
31537
+ r.__excessResource = true;
31538
+ filteredResources.push(r);
31539
+ });
31542
31540
  return filteredResources;
31543
31541
  }
31544
31542
  function resourceContentProcessor(context, _contentDepth, tagsConfig, content, target) {