@oddington/sdk 0.1.6 → 0.1.7

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.js CHANGED
@@ -697,7 +697,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
697
697
  step((generator = generator.apply(thisArg, _arguments || [])).next());
698
698
  });
699
699
  }
700
- function __generator(thisArg, body) {
700
+ function __generator(thisArg, body2) {
701
701
  var _ = { label: 0, sent: function() {
702
702
  if (t[0] & 1)
703
703
  throw t[1];
@@ -761,7 +761,7 @@ function __generator(thisArg, body) {
761
761
  _.trys.pop();
762
762
  continue;
763
763
  }
764
- op = body.call(thisArg, _);
764
+ op = body2.call(thisArg, _);
765
765
  } catch (e) {
766
766
  op = [6, e];
767
767
  y = 0;
@@ -6329,30 +6329,30 @@ var init_PDFArray = __esm(() => {
6329
6329
  init_errors();
6330
6330
  PDFArray = function(_super) {
6331
6331
  __extends(PDFArray2, _super);
6332
- function PDFArray2(context) {
6332
+ function PDFArray2(context2) {
6333
6333
  var _this = _super.call(this) || this;
6334
6334
  _this.array = [];
6335
- _this.context = context;
6335
+ _this.context = context2;
6336
6336
  return _this;
6337
6337
  }
6338
6338
  PDFArray2.prototype.size = function() {
6339
6339
  return this.array.length;
6340
6340
  };
6341
- PDFArray2.prototype.push = function(object3) {
6342
- this.array.push(object3);
6341
+ PDFArray2.prototype.push = function(object4) {
6342
+ this.array.push(object4);
6343
6343
  };
6344
- PDFArray2.prototype.insert = function(index, object3) {
6345
- this.array.splice(index, 0, object3);
6344
+ PDFArray2.prototype.insert = function(index, object4) {
6345
+ this.array.splice(index, 0, object4);
6346
6346
  };
6347
- PDFArray2.prototype.indexOf = function(object3) {
6348
- var index = this.array.indexOf(object3);
6347
+ PDFArray2.prototype.indexOf = function(object4) {
6348
+ var index = this.array.indexOf(object4);
6349
6349
  return index === -1 ? undefined : index;
6350
6350
  };
6351
6351
  PDFArray2.prototype.remove = function(index) {
6352
6352
  this.array.splice(index, 1);
6353
6353
  };
6354
- PDFArray2.prototype.set = function(idx2, object3) {
6355
- this.array[idx2] = object3;
6354
+ PDFArray2.prototype.set = function(idx2, object4) {
6355
+ this.array[idx2] = object4;
6356
6356
  };
6357
6357
  PDFArray2.prototype.get = function(index) {
6358
6358
  return this.array[index];
@@ -6389,8 +6389,8 @@ var init_PDFArray = __esm(() => {
6389
6389
  PDFArray2.prototype.asArray = function() {
6390
6390
  return this.array.slice();
6391
6391
  };
6392
- PDFArray2.prototype.clone = function(context) {
6393
- var clone = PDFArray2.withContext(context || this.context);
6392
+ PDFArray2.prototype.clone = function(context2) {
6393
+ var clone = PDFArray2.withContext(context2 || this.context);
6394
6394
  for (var idx2 = 0, len = this.size();idx2 < len; idx2++) {
6395
6395
  clone.push(this.array[idx2]);
6396
6396
  }
@@ -6432,8 +6432,8 @@ var init_PDFArray = __esm(() => {
6432
6432
  }
6433
6433
  }
6434
6434
  };
6435
- PDFArray2.withContext = function(context) {
6436
- return new PDFArray2(context);
6435
+ PDFArray2.withContext = function(context2) {
6436
+ return new PDFArray2(context2);
6437
6437
  };
6438
6438
  return PDFArray2;
6439
6439
  }(PDFObject_default);
@@ -6708,10 +6708,10 @@ var init_PDFDict = __esm(() => {
6708
6708
  init_CharCodes();
6709
6709
  PDFDict = function(_super) {
6710
6710
  __extends(PDFDict2, _super);
6711
- function PDFDict2(map, context) {
6711
+ function PDFDict2(map, context2) {
6712
6712
  var _this = _super.call(this) || this;
6713
6713
  _this.dict = map;
6714
- _this.context = context;
6714
+ _this.context = context2;
6715
6715
  return _this;
6716
6716
  }
6717
6717
  PDFDict2.prototype.keys = function() {
@@ -6780,8 +6780,8 @@ var init_PDFDict = __esm(() => {
6780
6780
  }
6781
6781
  return key;
6782
6782
  };
6783
- PDFDict2.prototype.clone = function(context) {
6784
- var clone = PDFDict2.withContext(context || this.context);
6783
+ PDFDict2.prototype.clone = function(context2) {
6784
+ var clone = PDFDict2.withContext(context2 || this.context);
6785
6785
  var entries = this.entries();
6786
6786
  for (var idx3 = 0, len2 = entries.length;idx3 < len2; idx3++) {
6787
6787
  var _a = entries[idx3], key = _a[0], value = _a[1];
@@ -6827,11 +6827,11 @@ var init_PDFDict = __esm(() => {
6827
6827
  buffer[offset++] = CharCodes_default.GreaterThan;
6828
6828
  return offset - initialOffset;
6829
6829
  };
6830
- PDFDict2.withContext = function(context) {
6831
- return new PDFDict2(new Map, context);
6830
+ PDFDict2.withContext = function(context2) {
6831
+ return new PDFDict2(new Map, context2);
6832
6832
  };
6833
- PDFDict2.fromMapWithContext = function(map, context) {
6834
- return new PDFDict2(map, context);
6833
+ PDFDict2.fromMapWithContext = function(map, context2) {
6834
+ return new PDFDict2(map, context2);
6835
6835
  };
6836
6836
  return PDFDict2;
6837
6837
  }(PDFObject_default);
@@ -6934,8 +6934,8 @@ var init_PDFRawStream = __esm(() => {
6934
6934
  PDFRawStream2.prototype.asUint8Array = function() {
6935
6935
  return this.contents.slice();
6936
6936
  };
6937
- PDFRawStream2.prototype.clone = function(context) {
6938
- return PDFRawStream2.of(this.dict.clone(context), this.contents.slice());
6937
+ PDFRawStream2.prototype.clone = function(context2) {
6938
+ return PDFRawStream2.of(this.dict.clone(context2), this.contents.slice());
6939
6939
  };
6940
6940
  PDFRawStream2.prototype.getContentsString = function() {
6941
6941
  return arrayAsString(this.contents);
@@ -7016,11 +7016,11 @@ var init_PDFOperator = __esm(() => {
7016
7016
  this.name = name;
7017
7017
  this.args = args || [];
7018
7018
  }
7019
- PDFOperator2.prototype.clone = function(context) {
7019
+ PDFOperator2.prototype.clone = function(context2) {
7020
7020
  var args = new Array(this.args.length);
7021
7021
  for (var idx3 = 0, len2 = args.length;idx3 < len2; idx3++) {
7022
7022
  var arg = this.args[idx3];
7023
- args[idx3] = arg instanceof PDFObject_default ? arg.clone(context) : arg;
7023
+ args[idx3] = arg instanceof PDFObject_default ? arg.clone(context2) : arg;
7024
7024
  }
7025
7025
  return PDFOperator2.of(this.name, args);
7026
7026
  };
@@ -7205,13 +7205,13 @@ var init_PDFContentStream = __esm(() => {
7205
7205
  }
7206
7206
  (_a = this.operators).push.apply(_a, operators);
7207
7207
  };
7208
- PDFContentStream2.prototype.clone = function(context) {
7208
+ PDFContentStream2.prototype.clone = function(context2) {
7209
7209
  var operators = new Array(this.operators.length);
7210
7210
  for (var idx3 = 0, len2 = this.operators.length;idx3 < len2; idx3++) {
7211
- operators[idx3] = this.operators[idx3].clone(context);
7211
+ operators[idx3] = this.operators[idx3].clone(context2);
7212
7212
  }
7213
7213
  var _a = this, dict = _a.dict, encode = _a.encode;
7214
- return PDFContentStream2.of(dict.clone(context), operators, encode);
7214
+ return PDFContentStream2.of(dict.clone(context2), operators, encode);
7215
7215
  };
7216
7216
  PDFContentStream2.prototype.getContentsString = function() {
7217
7217
  var value = "";
@@ -7299,8 +7299,8 @@ var init_PDFContext = __esm(() => {
7299
7299
  this.indirectObjects = new Map;
7300
7300
  this.rng = SimpleRNG.withSeed(1);
7301
7301
  }
7302
- PDFContext2.prototype.assign = function(ref, object3) {
7303
- this.indirectObjects.set(ref, object3);
7302
+ PDFContext2.prototype.assign = function(ref, object4) {
7303
+ this.indirectObjects.set(ref, object4);
7304
7304
  if (ref.objectNumber > this.largestObjectNumber) {
7305
7305
  this.largestObjectNumber = ref.objectNumber;
7306
7306
  }
@@ -7309,9 +7309,9 @@ var init_PDFContext = __esm(() => {
7309
7309
  this.largestObjectNumber += 1;
7310
7310
  return PDFRef_default.of(this.largestObjectNumber);
7311
7311
  };
7312
- PDFContext2.prototype.register = function(object3) {
7312
+ PDFContext2.prototype.register = function(object4) {
7313
7313
  var ref = this.nextRef();
7314
- this.assign(ref, object3);
7314
+ this.assign(ref, object4);
7315
7315
  return ref;
7316
7316
  };
7317
7317
  PDFContext2.prototype.delete = function(ref) {
@@ -7361,8 +7361,8 @@ var init_PDFContext = __esm(() => {
7361
7361
  PDFContext2.prototype.getObjectRef = function(pdfObject) {
7362
7362
  var entries = Array.from(this.indirectObjects.entries());
7363
7363
  for (var idx3 = 0, len2 = entries.length;idx3 < len2; idx3++) {
7364
- var _a = entries[idx3], ref = _a[0], object3 = _a[1];
7365
- if (object3 === pdfObject) {
7364
+ var _a = entries[idx3], ref = _a[0], object4 = _a[1];
7365
+ if (object4 === pdfObject) {
7366
7366
  return ref;
7367
7367
  }
7368
7368
  }
@@ -7390,9 +7390,9 @@ var init_PDFContext = __esm(() => {
7390
7390
  return array2;
7391
7391
  } else {
7392
7392
  var dict = PDFDict_default.withContext(this);
7393
- var keys3 = Object.keys(literal);
7394
- for (var idx3 = 0, len2 = keys3.length;idx3 < len2; idx3++) {
7395
- var key = keys3[idx3];
7393
+ var keys4 = Object.keys(literal);
7394
+ for (var idx3 = 0, len2 = keys4.length;idx3 < len2; idx3++) {
7395
+ var key = keys4[idx3];
7396
7396
  var value = literal[key];
7397
7397
  if (value !== undefined)
7398
7398
  dict.set(PDFName_default.of(key), this.obj(value));
@@ -7469,17 +7469,17 @@ var init_PDFPageLeaf = __esm(() => {
7469
7469
  init_PDFStream();
7470
7470
  PDFPageLeaf = function(_super) {
7471
7471
  __extends(PDFPageLeaf2, _super);
7472
- function PDFPageLeaf2(map, context, autoNormalizeCTM) {
7472
+ function PDFPageLeaf2(map, context2, autoNormalizeCTM) {
7473
7473
  if (autoNormalizeCTM === undefined) {
7474
7474
  autoNormalizeCTM = true;
7475
7475
  }
7476
- var _this = _super.call(this, map, context) || this;
7476
+ var _this = _super.call(this, map, context2) || this;
7477
7477
  _this.normalized = false;
7478
7478
  _this.autoNormalizeCTM = autoNormalizeCTM;
7479
7479
  return _this;
7480
7480
  }
7481
- PDFPageLeaf2.prototype.clone = function(context) {
7482
- var clone = PDFPageLeaf2.fromMapWithContext(new Map, context || this.context, this.autoNormalizeCTM);
7481
+ PDFPageLeaf2.prototype.clone = function(context2) {
7482
+ var clone = PDFPageLeaf2.fromMapWithContext(new Map, context2 || this.context, this.autoNormalizeCTM);
7483
7483
  var entries = this.entries();
7484
7484
  for (var idx3 = 0, len2 = entries.length;idx3 < len2; idx3++) {
7485
7485
  var _a = entries[idx3], key = _a[0], value = _a[1];
@@ -7605,25 +7605,25 @@ var init_PDFPageLeaf = __esm(() => {
7605
7605
  PDFPageLeaf2.prototype.normalize = function() {
7606
7606
  if (this.normalized)
7607
7607
  return;
7608
- var context = this.context;
7608
+ var context2 = this.context;
7609
7609
  var contentsRef = this.get(PDFName_default.Contents);
7610
7610
  var contents = this.context.lookup(contentsRef);
7611
7611
  if (contents instanceof PDFStream_default) {
7612
- this.set(PDFName_default.Contents, context.obj([contentsRef]));
7612
+ this.set(PDFName_default.Contents, context2.obj([contentsRef]));
7613
7613
  }
7614
7614
  if (this.autoNormalizeCTM) {
7615
7615
  this.wrapContentStreams(this.context.getPushGraphicsStateContentStream(), this.context.getPopGraphicsStateContentStream());
7616
7616
  }
7617
7617
  var dictOrRef = this.getInheritableAttribute(PDFName_default.Resources);
7618
- var Resources = context.lookupMaybe(dictOrRef, PDFDict_default) || context.obj({});
7618
+ var Resources = context2.lookupMaybe(dictOrRef, PDFDict_default) || context2.obj({});
7619
7619
  this.set(PDFName_default.Resources, Resources);
7620
- var Font3 = Resources.lookupMaybe(PDFName_default.Font, PDFDict_default) || context.obj({});
7620
+ var Font3 = Resources.lookupMaybe(PDFName_default.Font, PDFDict_default) || context2.obj({});
7621
7621
  Resources.set(PDFName_default.Font, Font3);
7622
- var XObject = Resources.lookupMaybe(PDFName_default.XObject, PDFDict_default) || context.obj({});
7622
+ var XObject = Resources.lookupMaybe(PDFName_default.XObject, PDFDict_default) || context2.obj({});
7623
7623
  Resources.set(PDFName_default.XObject, XObject);
7624
- var ExtGState = Resources.lookupMaybe(PDFName_default.ExtGState, PDFDict_default) || context.obj({});
7624
+ var ExtGState = Resources.lookupMaybe(PDFName_default.ExtGState, PDFDict_default) || context2.obj({});
7625
7625
  Resources.set(PDFName_default.ExtGState, ExtGState);
7626
- var Annots = this.Annots() || context.obj([]);
7626
+ var Annots = this.Annots() || context2.obj([]);
7627
7627
  this.set(PDFName_default.Annots, Annots);
7628
7628
  this.normalized = true;
7629
7629
  };
@@ -7647,19 +7647,19 @@ var init_PDFPageLeaf = __esm(() => {
7647
7647
  "CropBox",
7648
7648
  "Rotate"
7649
7649
  ];
7650
- PDFPageLeaf2.withContextAndParent = function(context, parent) {
7650
+ PDFPageLeaf2.withContextAndParent = function(context2, parent) {
7651
7651
  var dict = new Map;
7652
7652
  dict.set(PDFName_default.Type, PDFName_default.Page);
7653
7653
  dict.set(PDFName_default.Parent, parent);
7654
- dict.set(PDFName_default.Resources, context.obj({}));
7655
- dict.set(PDFName_default.MediaBox, context.obj([0, 0, 612, 792]));
7656
- return new PDFPageLeaf2(dict, context, false);
7654
+ dict.set(PDFName_default.Resources, context2.obj({}));
7655
+ dict.set(PDFName_default.MediaBox, context2.obj([0, 0, 612, 792]));
7656
+ return new PDFPageLeaf2(dict, context2, false);
7657
7657
  };
7658
- PDFPageLeaf2.fromMapWithContext = function(map, context, autoNormalizeCTM) {
7658
+ PDFPageLeaf2.fromMapWithContext = function(map, context2, autoNormalizeCTM) {
7659
7659
  if (autoNormalizeCTM === undefined) {
7660
7660
  autoNormalizeCTM = true;
7661
7661
  }
7662
- return new PDFPageLeaf2(map, context, autoNormalizeCTM);
7662
+ return new PDFPageLeaf2(map, context2, autoNormalizeCTM);
7663
7663
  };
7664
7664
  return PDFPageLeaf2;
7665
7665
  }(PDFDict_default);
@@ -7679,8 +7679,8 @@ var init_PDFObjectCopier = __esm(() => {
7679
7679
  function PDFObjectCopier2(src, dest) {
7680
7680
  var _this = this;
7681
7681
  this.traversedObjects = new Map;
7682
- this.copy = function(object3) {
7683
- return object3 instanceof PDFPageLeaf_default ? _this.copyPDFPage(object3) : object3 instanceof PDFDict_default ? _this.copyPDFDict(object3) : object3 instanceof PDFArray_default ? _this.copyPDFArray(object3) : object3 instanceof PDFStream_default ? _this.copyPDFStream(object3) : object3 instanceof PDFRef_default ? _this.copyPDFIndirectObject(object3) : object3.clone();
7682
+ this.copy = function(object4) {
7683
+ return object4 instanceof PDFPageLeaf_default ? _this.copyPDFPage(object4) : object4 instanceof PDFDict_default ? _this.copyPDFDict(object4) : object4 instanceof PDFArray_default ? _this.copyPDFArray(object4) : object4 instanceof PDFStream_default ? _this.copyPDFStream(object4) : object4 instanceof PDFRef_default ? _this.copyPDFIndirectObject(object4) : object4.clone();
7684
7684
  };
7685
7685
  this.copyPDFPage = function(originalPage) {
7686
7686
  var clonedPage = originalPage.clone();
@@ -7974,11 +7974,11 @@ var init_PDFObjectStream = __esm(() => {
7974
7974
  init_utils2();
7975
7975
  PDFObjectStream = function(_super) {
7976
7976
  __extends(PDFObjectStream2, _super);
7977
- function PDFObjectStream2(context, objects2, encode) {
7977
+ function PDFObjectStream2(context2, objects2, encode) {
7978
7978
  if (encode === undefined) {
7979
7979
  encode = true;
7980
7980
  }
7981
- var _this = _super.call(this, context.obj({}), encode) || this;
7981
+ var _this = _super.call(this, context2.obj({}), encode) || this;
7982
7982
  _this.objects = objects2;
7983
7983
  _this.offsets = _this.computeObjectOffsets();
7984
7984
  _this.offsetsString = _this.computeOffsetsString();
@@ -7990,14 +7990,14 @@ var init_PDFObjectStream = __esm(() => {
7990
7990
  PDFObjectStream2.prototype.getObjectsCount = function() {
7991
7991
  return this.objects.length;
7992
7992
  };
7993
- PDFObjectStream2.prototype.clone = function(context) {
7994
- return PDFObjectStream2.withContextAndObjects(context || this.dict.context, this.objects.slice(), this.encode);
7993
+ PDFObjectStream2.prototype.clone = function(context2) {
7994
+ return PDFObjectStream2.withContextAndObjects(context2 || this.dict.context, this.objects.slice(), this.encode);
7995
7995
  };
7996
7996
  PDFObjectStream2.prototype.getContentsString = function() {
7997
7997
  var value = this.offsetsString;
7998
7998
  for (var idx3 = 0, len2 = this.objects.length;idx3 < len2; idx3++) {
7999
- var _a = this.objects[idx3], object3 = _a[1];
8000
- value += object3 + `
7999
+ var _a = this.objects[idx3], object4 = _a[1];
8000
+ value += object4 + `
8001
8001
  `;
8002
8002
  }
8003
8003
  return value;
@@ -8006,8 +8006,8 @@ var init_PDFObjectStream = __esm(() => {
8006
8006
  var buffer = new Uint8Array(this.getUnencodedContentsSize());
8007
8007
  var offset = copyStringIntoBuffer(this.offsetsString, buffer, 0);
8008
8008
  for (var idx3 = 0, len2 = this.objects.length;idx3 < len2; idx3++) {
8009
- var _a = this.objects[idx3], object3 = _a[1];
8010
- offset += object3.copyBytesInto(buffer, offset);
8009
+ var _a = this.objects[idx3], object4 = _a[1];
8010
+ offset += object4.copyBytesInto(buffer, offset);
8011
8011
  buffer[offset++] = CharCodes_default.Newline;
8012
8012
  }
8013
8013
  return buffer;
@@ -8027,17 +8027,17 @@ var init_PDFObjectStream = __esm(() => {
8027
8027
  var offset = 0;
8028
8028
  var offsets = new Array(this.objects.length);
8029
8029
  for (var idx3 = 0, len2 = this.objects.length;idx3 < len2; idx3++) {
8030
- var _a = this.objects[idx3], ref = _a[0], object3 = _a[1];
8030
+ var _a = this.objects[idx3], ref = _a[0], object4 = _a[1];
8031
8031
  offsets[idx3] = [ref.objectNumber, offset];
8032
- offset += object3.sizeInBytes() + 1;
8032
+ offset += object4.sizeInBytes() + 1;
8033
8033
  }
8034
8034
  return offsets;
8035
8035
  };
8036
- PDFObjectStream2.withContextAndObjects = function(context, objects2, encode) {
8036
+ PDFObjectStream2.withContextAndObjects = function(context2, objects2, encode) {
8037
8037
  if (encode === undefined) {
8038
8038
  encode = true;
8039
8039
  }
8040
- return new PDFObjectStream2(context, objects2, encode);
8040
+ return new PDFObjectStream2(context2, objects2, encode);
8041
8041
  };
8042
8042
  return PDFObjectStream2;
8043
8043
  }(PDFFlateStream_default);
@@ -8056,19 +8056,19 @@ var init_PDFWriter = __esm(() => {
8056
8056
  init_CharCodes();
8057
8057
  init_utils2();
8058
8058
  PDFWriter = function() {
8059
- function PDFWriter2(context, objectsPerTick) {
8059
+ function PDFWriter2(context2, objectsPerTick) {
8060
8060
  var _this = this;
8061
8061
  this.parsedObjects = 0;
8062
8062
  this.shouldWaitForTick = function(n) {
8063
8063
  _this.parsedObjects += n;
8064
8064
  return _this.parsedObjects % _this.objectsPerTick === 0;
8065
8065
  };
8066
- this.context = context;
8066
+ this.context = context2;
8067
8067
  this.objectsPerTick = objectsPerTick;
8068
8068
  }
8069
8069
  PDFWriter2.prototype.serializeToBuffer = function() {
8070
8070
  return __awaiter(this, undefined, undefined, function() {
8071
- var _a, size, header, indirectObjects, xref, trailerDict, trailer, offset, buffer, idx3, len2, _b, ref, object3, objectNumber, generationNumber, n;
8071
+ var _a, size, header, indirectObjects, xref, trailerDict, trailer, offset, buffer, idx3, len2, _b, ref, object4, objectNumber, generationNumber, n;
8072
8072
  return __generator(this, function(_c) {
8073
8073
  switch (_c.label) {
8074
8074
  case 0:
@@ -8085,7 +8085,7 @@ var init_PDFWriter = __esm(() => {
8085
8085
  case 2:
8086
8086
  if (!(idx3 < len2))
8087
8087
  return [3, 5];
8088
- _b = indirectObjects[idx3], ref = _b[0], object3 = _b[1];
8088
+ _b = indirectObjects[idx3], ref = _b[0], object4 = _b[1];
8089
8089
  objectNumber = String(ref.objectNumber);
8090
8090
  offset += copyStringIntoBuffer(objectNumber, buffer, offset);
8091
8091
  buffer[offset++] = CharCodes_default.Space;
@@ -8096,7 +8096,7 @@ var init_PDFWriter = __esm(() => {
8096
8096
  buffer[offset++] = CharCodes_default.b;
8097
8097
  buffer[offset++] = CharCodes_default.j;
8098
8098
  buffer[offset++] = CharCodes_default.Newline;
8099
- offset += object3.copyBytesInto(buffer, offset);
8099
+ offset += object4.copyBytesInto(buffer, offset);
8100
8100
  buffer[offset++] = CharCodes_default.Newline;
8101
8101
  buffer[offset++] = CharCodes_default.e;
8102
8102
  buffer[offset++] = CharCodes_default.n;
@@ -8106,7 +8106,7 @@ var init_PDFWriter = __esm(() => {
8106
8106
  buffer[offset++] = CharCodes_default.j;
8107
8107
  buffer[offset++] = CharCodes_default.Newline;
8108
8108
  buffer[offset++] = CharCodes_default.Newline;
8109
- n = object3 instanceof PDFObjectStream_default ? object3.getObjectsCount() : 1;
8109
+ n = object4 instanceof PDFObjectStream_default ? object4.getObjectsCount() : 1;
8110
8110
  if (!this.shouldWaitForTick(n))
8111
8111
  return [3, 4];
8112
8112
  return [4, waitForTick()];
@@ -8133,9 +8133,9 @@ var init_PDFWriter = __esm(() => {
8133
8133
  });
8134
8134
  };
8135
8135
  PDFWriter2.prototype.computeIndirectObjectSize = function(_a) {
8136
- var ref = _a[0], object3 = _a[1];
8136
+ var ref = _a[0], object4 = _a[1];
8137
8137
  var refSize = ref.sizeInBytes() + 3;
8138
- var objectSize = object3.sizeInBytes() + 9;
8138
+ var objectSize = object4.sizeInBytes() + 9;
8139
8139
  return refSize + objectSize;
8140
8140
  };
8141
8141
  PDFWriter2.prototype.createTrailerDict = function() {
@@ -8187,8 +8187,8 @@ var init_PDFWriter = __esm(() => {
8187
8187
  });
8188
8188
  });
8189
8189
  };
8190
- PDFWriter2.forContext = function(context, objectsPerTick) {
8191
- return new PDFWriter2(context, objectsPerTick);
8190
+ PDFWriter2.forContext = function(context2, objectsPerTick) {
8191
+ return new PDFWriter2(context2, objectsPerTick);
8192
8192
  };
8193
8193
  return PDFWriter2;
8194
8194
  }();
@@ -8336,9 +8336,9 @@ var init_PDFCrossRefStream = __esm(() => {
8336
8336
  this.indexCache.invalidate();
8337
8337
  this.contentsCache.invalidate();
8338
8338
  };
8339
- PDFCrossRefStream2.prototype.clone = function(context) {
8339
+ PDFCrossRefStream2.prototype.clone = function(context2) {
8340
8340
  var _a = this, dict = _a.dict, entries = _a.entries, encode = _a.encode;
8341
- return PDFCrossRefStream2.of(dict.clone(context), entries.slice(), encode);
8341
+ return PDFCrossRefStream2.of(dict.clone(context2), entries.slice(), encode);
8342
8342
  };
8343
8343
  PDFCrossRefStream2.prototype.getContentsString = function() {
8344
8344
  var entryTuples = this.entryTuplesCache.access();
@@ -8392,9 +8392,9 @@ var init_PDFCrossRefStream = __esm(() => {
8392
8392
  _super.prototype.updateDict.call(this);
8393
8393
  var byteWidths = this.maxByteWidthsCache.access();
8394
8394
  var index = this.indexCache.access();
8395
- var context = this.dict.context;
8396
- this.dict.set(PDFName_default.of("W"), context.obj(byteWidths));
8397
- this.dict.set(PDFName_default.of("Index"), context.obj(index));
8395
+ var context2 = this.dict.context;
8396
+ this.dict.set(PDFName_default.of("W"), context2.obj(byteWidths));
8397
+ this.dict.set(PDFName_default.of("Index"), context2.obj(index));
8398
8398
  };
8399
8399
  PDFCrossRefStream2.create = function(dict, encode) {
8400
8400
  if (encode === undefined) {
@@ -8432,15 +8432,15 @@ var init_PDFStreamWriter = __esm(() => {
8432
8432
  init_utils2();
8433
8433
  PDFStreamWriter = function(_super) {
8434
8434
  __extends(PDFStreamWriter2, _super);
8435
- function PDFStreamWriter2(context, objectsPerTick, encodeStreams, objectsPerStream) {
8436
- var _this = _super.call(this, context, objectsPerTick) || this;
8435
+ function PDFStreamWriter2(context2, objectsPerTick, encodeStreams, objectsPerStream) {
8436
+ var _this = _super.call(this, context2, objectsPerTick) || this;
8437
8437
  _this.encodeStreams = encodeStreams;
8438
8438
  _this.objectsPerStream = objectsPerStream;
8439
8439
  return _this;
8440
8440
  }
8441
8441
  PDFStreamWriter2.prototype.computeBufferSize = function() {
8442
8442
  return __awaiter(this, undefined, undefined, function() {
8443
- var objectNumber, header, size, xrefStream, uncompressedObjects, compressedObjects, objectStreamRefs, indirectObjects, idx3, len2, indirectObject, ref, object3, shouldNotCompress, chunk, objectStreamRef, idx3, len2, chunk, ref, objectStream, xrefStreamRef, xrefOffset, trailer;
8443
+ var objectNumber, header, size, xrefStream, uncompressedObjects, compressedObjects, objectStreamRefs, indirectObjects, idx3, len2, indirectObject, ref, object4, shouldNotCompress, chunk, objectStreamRef, idx3, len2, chunk, ref, objectStream, xrefStreamRef, xrefOffset, trailer;
8444
8444
  return __generator(this, function(_a) {
8445
8445
  switch (_a.label) {
8446
8446
  case 0:
@@ -8458,8 +8458,8 @@ var init_PDFStreamWriter = __esm(() => {
8458
8458
  if (!(idx3 < len2))
8459
8459
  return [3, 6];
8460
8460
  indirectObject = indirectObjects[idx3];
8461
- ref = indirectObject[0], object3 = indirectObject[1];
8462
- shouldNotCompress = ref === this.context.trailerInfo.Encrypt || object3 instanceof PDFStream_default || object3 instanceof PDFInvalidObject_default || ref.generationNumber !== 0;
8461
+ ref = indirectObject[0], object4 = indirectObject[1];
8462
+ shouldNotCompress = ref === this.context.trailerInfo.Encrypt || object4 instanceof PDFStream_default || object4 instanceof PDFInvalidObject_default || ref.generationNumber !== 0;
8463
8463
  if (!shouldNotCompress)
8464
8464
  return [3, 4];
8465
8465
  uncompressedObjects.push(indirectObject);
@@ -8523,14 +8523,14 @@ var init_PDFStreamWriter = __esm(() => {
8523
8523
  });
8524
8524
  });
8525
8525
  };
8526
- PDFStreamWriter2.forContext = function(context, objectsPerTick, encodeStreams, objectsPerStream) {
8526
+ PDFStreamWriter2.forContext = function(context2, objectsPerTick, encodeStreams, objectsPerStream) {
8527
8527
  if (encodeStreams === undefined) {
8528
8528
  encodeStreams = true;
8529
8529
  }
8530
8530
  if (objectsPerStream === undefined) {
8531
8531
  objectsPerStream = 50;
8532
8532
  }
8533
- return new PDFStreamWriter2(context, objectsPerTick, encodeStreams, objectsPerStream);
8533
+ return new PDFStreamWriter2(context2, objectsPerTick, encodeStreams, objectsPerStream);
8534
8534
  };
8535
8535
  return PDFStreamWriter2;
8536
8536
  }(PDFWriter_default);
@@ -8665,18 +8665,18 @@ var init_StandardFontEmbedder = __esm(() => {
8665
8665
  var yBottom = Descender || FontBBox[1];
8666
8666
  return 1000 * height / (yTop - yBottom);
8667
8667
  };
8668
- StandardFontEmbedder2.prototype.embedIntoContext = function(context, ref) {
8669
- var fontDict = context.obj({
8668
+ StandardFontEmbedder2.prototype.embedIntoContext = function(context2, ref) {
8669
+ var fontDict = context2.obj({
8670
8670
  Type: "Font",
8671
8671
  Subtype: "Type1",
8672
8672
  BaseFont: this.customName || this.fontName,
8673
8673
  Encoding: this.encoding === Encodings.WinAnsi ? "WinAnsiEncoding" : undefined
8674
8674
  });
8675
8675
  if (ref) {
8676
- context.assign(ref, fontDict);
8676
+ context2.assign(ref, fontDict);
8677
8677
  return ref;
8678
8678
  } else {
8679
- return context.register(fontDict);
8679
+ return context2.register(fontDict);
8680
8680
  }
8681
8681
  };
8682
8682
  StandardFontEmbedder2.prototype.widthOfGlyph = function(glyphName) {
@@ -8991,21 +8991,21 @@ var init_CustomFontEmbedder = __esm(() => {
8991
8991
  var yBottom = (descent || bbox.minY) * this.scale;
8992
8992
  return 1000 * height / (yTop - yBottom);
8993
8993
  };
8994
- CustomFontEmbedder2.prototype.embedIntoContext = function(context, ref) {
8995
- this.baseFontName = this.customName || context.addRandomSuffix(this.fontName);
8996
- return this.embedFontDict(context, ref);
8994
+ CustomFontEmbedder2.prototype.embedIntoContext = function(context2, ref) {
8995
+ this.baseFontName = this.customName || context2.addRandomSuffix(this.fontName);
8996
+ return this.embedFontDict(context2, ref);
8997
8997
  };
8998
- CustomFontEmbedder2.prototype.embedFontDict = function(context, ref) {
8998
+ CustomFontEmbedder2.prototype.embedFontDict = function(context2, ref) {
8999
8999
  return __awaiter(this, undefined, undefined, function() {
9000
9000
  var cidFontDictRef, unicodeCMapRef, fontDict;
9001
9001
  return __generator(this, function(_a) {
9002
9002
  switch (_a.label) {
9003
9003
  case 0:
9004
- return [4, this.embedCIDFontDict(context)];
9004
+ return [4, this.embedCIDFontDict(context2)];
9005
9005
  case 1:
9006
9006
  cidFontDictRef = _a.sent();
9007
- unicodeCMapRef = this.embedUnicodeCmap(context);
9008
- fontDict = context.obj({
9007
+ unicodeCMapRef = this.embedUnicodeCmap(context2);
9008
+ fontDict = context2.obj({
9009
9009
  Type: "Font",
9010
9010
  Subtype: "Type0",
9011
9011
  BaseFont: this.baseFontName,
@@ -9014,10 +9014,10 @@ var init_CustomFontEmbedder = __esm(() => {
9014
9014
  ToUnicode: unicodeCMapRef
9015
9015
  });
9016
9016
  if (ref) {
9017
- context.assign(ref, fontDict);
9017
+ context2.assign(ref, fontDict);
9018
9018
  return [2, ref];
9019
9019
  } else {
9020
- return [2, context.register(fontDict)];
9020
+ return [2, context2.register(fontDict)];
9021
9021
  }
9022
9022
  return [2];
9023
9023
  }
@@ -9027,16 +9027,16 @@ var init_CustomFontEmbedder = __esm(() => {
9027
9027
  CustomFontEmbedder2.prototype.isCFF = function() {
9028
9028
  return this.font.cff;
9029
9029
  };
9030
- CustomFontEmbedder2.prototype.embedCIDFontDict = function(context) {
9030
+ CustomFontEmbedder2.prototype.embedCIDFontDict = function(context2) {
9031
9031
  return __awaiter(this, undefined, undefined, function() {
9032
9032
  var fontDescriptorRef, cidFontDict;
9033
9033
  return __generator(this, function(_a) {
9034
9034
  switch (_a.label) {
9035
9035
  case 0:
9036
- return [4, this.embedFontDescriptor(context)];
9036
+ return [4, this.embedFontDescriptor(context2)];
9037
9037
  case 1:
9038
9038
  fontDescriptorRef = _a.sent();
9039
- cidFontDict = context.obj({
9039
+ cidFontDict = context2.obj({
9040
9040
  Type: "Font",
9041
9041
  Subtype: this.isCFF() ? "CIDFontType0" : "CIDFontType2",
9042
9042
  CIDToGIDMap: "Identity",
@@ -9049,25 +9049,25 @@ var init_CustomFontEmbedder = __esm(() => {
9049
9049
  FontDescriptor: fontDescriptorRef,
9050
9050
  W: this.computeWidths()
9051
9051
  });
9052
- return [2, context.register(cidFontDict)];
9052
+ return [2, context2.register(cidFontDict)];
9053
9053
  }
9054
9054
  });
9055
9055
  });
9056
9056
  };
9057
- CustomFontEmbedder2.prototype.embedFontDescriptor = function(context) {
9057
+ CustomFontEmbedder2.prototype.embedFontDescriptor = function(context2) {
9058
9058
  return __awaiter(this, undefined, undefined, function() {
9059
9059
  var fontStreamRef, scale, _a, italicAngle, ascent, descent, capHeight, xHeight, _b, minX, minY, maxX, maxY, fontDescriptor;
9060
9060
  var _c;
9061
9061
  return __generator(this, function(_d) {
9062
9062
  switch (_d.label) {
9063
9063
  case 0:
9064
- return [4, this.embedFontStream(context)];
9064
+ return [4, this.embedFontStream(context2)];
9065
9065
  case 1:
9066
9066
  fontStreamRef = _d.sent();
9067
9067
  scale = this.scale;
9068
9068
  _a = this.font, italicAngle = _a.italicAngle, ascent = _a.ascent, descent = _a.descent, capHeight = _a.capHeight, xHeight = _a.xHeight;
9069
9069
  _b = this.font.bbox, minX = _b.minX, minY = _b.minY, maxX = _b.maxX, maxY = _b.maxY;
9070
- fontDescriptor = context.obj((_c = {
9070
+ fontDescriptor = context2.obj((_c = {
9071
9071
  Type: "FontDescriptor",
9072
9072
  FontName: this.baseFontName,
9073
9073
  Flags: deriveFontFlags(this.font),
@@ -9079,7 +9079,7 @@ var init_CustomFontEmbedder = __esm(() => {
9079
9079
  XHeight: (xHeight || 0) * scale,
9080
9080
  StemV: 0
9081
9081
  }, _c[this.isCFF() ? "FontFile3" : "FontFile2"] = fontStreamRef, _c));
9082
- return [2, context.register(fontDescriptor)];
9082
+ return [2, context2.register(fontDescriptor)];
9083
9083
  }
9084
9084
  });
9085
9085
  });
@@ -9091,27 +9091,27 @@ var init_CustomFontEmbedder = __esm(() => {
9091
9091
  });
9092
9092
  });
9093
9093
  };
9094
- CustomFontEmbedder2.prototype.embedFontStream = function(context) {
9094
+ CustomFontEmbedder2.prototype.embedFontStream = function(context2) {
9095
9095
  return __awaiter(this, undefined, undefined, function() {
9096
9096
  var fontStream, _a, _b;
9097
9097
  return __generator(this, function(_c) {
9098
9098
  switch (_c.label) {
9099
9099
  case 0:
9100
- _b = (_a = context).flateStream;
9100
+ _b = (_a = context2).flateStream;
9101
9101
  return [4, this.serializeFont()];
9102
9102
  case 1:
9103
9103
  fontStream = _b.apply(_a, [_c.sent(), {
9104
9104
  Subtype: this.isCFF() ? "CIDFontType0C" : undefined
9105
9105
  }]);
9106
- return [2, context.register(fontStream)];
9106
+ return [2, context2.register(fontStream)];
9107
9107
  }
9108
9108
  });
9109
9109
  });
9110
9110
  };
9111
- CustomFontEmbedder2.prototype.embedUnicodeCmap = function(context) {
9111
+ CustomFontEmbedder2.prototype.embedUnicodeCmap = function(context2) {
9112
9112
  var cmap = createCmap(this.glyphCache.access(), this.glyphId.bind(this));
9113
- var cmapStream = context.flateStream(cmap);
9114
- return context.register(cmapStream);
9113
+ var cmapStream = context2.flateStream(cmap);
9114
+ return context2.register(cmapStream);
9115
9115
  };
9116
9116
  CustomFontEmbedder2.prototype.glyphId = function(glyph) {
9117
9117
  return glyph ? glyph.id : -1;
@@ -9243,12 +9243,12 @@ var init_FileEmbedder = __esm(() => {
9243
9243
  }
9244
9244
  return new FileEmbedder2(bytes, fileName, options);
9245
9245
  };
9246
- FileEmbedder2.prototype.embedIntoContext = function(context, ref) {
9246
+ FileEmbedder2.prototype.embedIntoContext = function(context2, ref) {
9247
9247
  return __awaiter(this, undefined, undefined, function() {
9248
9248
  var _a, mimeType, description, creationDate, modificationDate, afRelationship, embeddedFileStream, embeddedFileStreamRef, fileSpecDict;
9249
9249
  return __generator(this, function(_b) {
9250
9250
  _a = this.options, mimeType = _a.mimeType, description = _a.description, creationDate = _a.creationDate, modificationDate = _a.modificationDate, afRelationship = _a.afRelationship;
9251
- embeddedFileStream = context.flateStream(this.fileData, {
9251
+ embeddedFileStream = context2.flateStream(this.fileData, {
9252
9252
  Type: "EmbeddedFile",
9253
9253
  Subtype: mimeType !== null && mimeType !== undefined ? mimeType : undefined,
9254
9254
  Params: {
@@ -9257,8 +9257,8 @@ var init_FileEmbedder = __esm(() => {
9257
9257
  ModDate: modificationDate ? PDFString_default.fromDate(modificationDate) : undefined
9258
9258
  }
9259
9259
  });
9260
- embeddedFileStreamRef = context.register(embeddedFileStream);
9261
- fileSpecDict = context.obj({
9260
+ embeddedFileStreamRef = context2.register(embeddedFileStream);
9261
+ fileSpecDict = context2.obj({
9262
9262
  Type: "Filespec",
9263
9263
  F: PDFString_default.of(this.fileName),
9264
9264
  UF: PDFHexString_default.fromText(this.fileName),
@@ -9267,10 +9267,10 @@ var init_FileEmbedder = __esm(() => {
9267
9267
  AFRelationship: afRelationship !== null && afRelationship !== undefined ? afRelationship : undefined
9268
9268
  });
9269
9269
  if (ref) {
9270
- context.assign(ref, fileSpecDict);
9270
+ context2.assign(ref, fileSpecDict);
9271
9271
  return [2, ref];
9272
9272
  } else {
9273
- return [2, context.register(fileSpecDict)];
9273
+ return [2, context2.register(fileSpecDict)];
9274
9274
  }
9275
9275
  return [2];
9276
9276
  });
@@ -9353,11 +9353,11 @@ var init_JpegEmbedder = __esm(() => {
9353
9353
  });
9354
9354
  });
9355
9355
  };
9356
- JpegEmbedder2.prototype.embedIntoContext = function(context, ref) {
9356
+ JpegEmbedder2.prototype.embedIntoContext = function(context2, ref) {
9357
9357
  return __awaiter(this, undefined, undefined, function() {
9358
9358
  var xObject;
9359
9359
  return __generator(this, function(_a) {
9360
- xObject = context.stream(this.imageData, {
9360
+ xObject = context2.stream(this.imageData, {
9361
9361
  Type: "XObject",
9362
9362
  Subtype: "Image",
9363
9363
  BitsPerComponent: this.bitsPerComponent,
@@ -9368,10 +9368,10 @@ var init_JpegEmbedder = __esm(() => {
9368
9368
  Decode: this.colorSpace === ColorSpace.DeviceCMYK ? [1, 0, 1, 0, 1, 0, 1, 0] : undefined
9369
9369
  });
9370
9370
  if (ref) {
9371
- context.assign(ref, xObject);
9371
+ context2.assign(ref, xObject);
9372
9372
  return [2, ref];
9373
9373
  } else {
9374
- return [2, context.register(xObject)];
9374
+ return [2, context2.register(xObject)];
9375
9375
  }
9376
9376
  return [2];
9377
9377
  });
@@ -10996,12 +10996,12 @@ var init_PngEmbedder = __esm(() => {
10996
10996
  });
10997
10997
  });
10998
10998
  };
10999
- PngEmbedder2.prototype.embedIntoContext = function(context, ref) {
10999
+ PngEmbedder2.prototype.embedIntoContext = function(context2, ref) {
11000
11000
  return __awaiter(this, undefined, undefined, function() {
11001
11001
  var SMask, xObject;
11002
11002
  return __generator(this, function(_a) {
11003
- SMask = this.embedAlphaChannel(context);
11004
- xObject = context.flateStream(this.image.rgbChannel, {
11003
+ SMask = this.embedAlphaChannel(context2);
11004
+ xObject = context2.flateStream(this.image.rgbChannel, {
11005
11005
  Type: "XObject",
11006
11006
  Subtype: "Image",
11007
11007
  BitsPerComponent: this.image.bitsPerComponent,
@@ -11011,19 +11011,19 @@ var init_PngEmbedder = __esm(() => {
11011
11011
  SMask
11012
11012
  });
11013
11013
  if (ref) {
11014
- context.assign(ref, xObject);
11014
+ context2.assign(ref, xObject);
11015
11015
  return [2, ref];
11016
11016
  } else {
11017
- return [2, context.register(xObject)];
11017
+ return [2, context2.register(xObject)];
11018
11018
  }
11019
11019
  return [2];
11020
11020
  });
11021
11021
  });
11022
11022
  };
11023
- PngEmbedder2.prototype.embedAlphaChannel = function(context) {
11023
+ PngEmbedder2.prototype.embedAlphaChannel = function(context2) {
11024
11024
  if (!this.image.alphaChannel)
11025
11025
  return;
11026
- var xObject = context.flateStream(this.image.alphaChannel, {
11026
+ var xObject = context2.flateStream(this.image.alphaChannel, {
11027
11027
  Type: "XObject",
11028
11028
  Subtype: "Image",
11029
11029
  Height: this.image.height,
@@ -11032,7 +11032,7 @@ var init_PngEmbedder = __esm(() => {
11032
11032
  ColorSpace: "DeviceGray",
11033
11033
  Decode: [0, 1]
11034
11034
  });
11035
- return context.register(xObject);
11035
+ return context2.register(xObject);
11036
11036
  };
11037
11037
  return PngEmbedder2;
11038
11038
  }();
@@ -12550,7 +12550,7 @@ var init_PDFPageEmbedder = __esm(() => {
12550
12550
  });
12551
12551
  });
12552
12552
  };
12553
- PDFPageEmbedder2.prototype.embedIntoContext = function(context, ref) {
12553
+ PDFPageEmbedder2.prototype.embedIntoContext = function(context2, ref) {
12554
12554
  return __awaiter(this, undefined, undefined, function() {
12555
12555
  var _a, Contents, Resources, decodedContents, _b, left, bottom, right, top, xObject;
12556
12556
  return __generator(this, function(_c) {
@@ -12559,7 +12559,7 @@ var init_PDFPageEmbedder = __esm(() => {
12559
12559
  throw new MissingPageContentsEmbeddingError;
12560
12560
  decodedContents = this.decodeContents(Contents);
12561
12561
  _b = this.boundingBox, left = _b.left, bottom = _b.bottom, right = _b.right, top = _b.top;
12562
- xObject = context.flateStream(decodedContents, {
12562
+ xObject = context2.flateStream(decodedContents, {
12563
12563
  Type: "XObject",
12564
12564
  Subtype: "Form",
12565
12565
  FormType: 1,
@@ -12568,10 +12568,10 @@ var init_PDFPageEmbedder = __esm(() => {
12568
12568
  Resources
12569
12569
  });
12570
12570
  if (ref) {
12571
- context.assign(ref, xObject);
12571
+ context2.assign(ref, xObject);
12572
12572
  return [2, ref];
12573
12573
  } else {
12574
- return [2, context.register(xObject)];
12574
+ return [2, context2.register(xObject)];
12575
12575
  }
12576
12576
  return [2];
12577
12577
  });
@@ -12824,8 +12824,8 @@ var init_ViewerPreferences = __esm(() => {
12824
12824
  ViewerPreferences2.fromDict = function(dict) {
12825
12825
  return new ViewerPreferences2(dict);
12826
12826
  };
12827
- ViewerPreferences2.create = function(context) {
12828
- var dict = context.obj({});
12827
+ ViewerPreferences2.create = function(context2) {
12828
+ var dict = context2.obj({});
12829
12829
  return new ViewerPreferences2(dict);
12830
12830
  };
12831
12831
  return ViewerPreferences2;
@@ -13334,9 +13334,9 @@ var init_PDFWidgetAnnotation = __esm(() => {
13334
13334
  var _a;
13335
13335
  var normal = (_a = this.getAppearances()) === null || _a === undefined ? undefined : _a.normal;
13336
13336
  if (normal instanceof PDFDict_default) {
13337
- var keys3 = normal.keys();
13338
- for (var idx3 = 0, len2 = keys3.length;idx3 < len2; idx3++) {
13339
- var key = keys3[idx3];
13337
+ var keys4 = normal.keys();
13338
+ for (var idx3 = 0, len2 = keys4.length;idx3 < len2; idx3++) {
13339
+ var key = keys4[idx3];
13340
13340
  if (key !== PDFName_default.of("Off"))
13341
13341
  return key;
13342
13342
  }
@@ -13346,8 +13346,8 @@ var init_PDFWidgetAnnotation = __esm(() => {
13346
13346
  PDFWidgetAnnotation2.fromDict = function(dict) {
13347
13347
  return new PDFWidgetAnnotation2(dict);
13348
13348
  };
13349
- PDFWidgetAnnotation2.create = function(context, parent) {
13350
- var dict = context.obj({
13349
+ PDFWidgetAnnotation2.create = function(context2, parent) {
13350
+ var dict = context2.obj({
13351
13351
  Type: "Annot",
13352
13352
  Subtype: "Widget",
13353
13353
  Rect: [0, 0, 0, 0],
@@ -13553,12 +13553,12 @@ var init_PDFAcroCheckBox = __esm(() => {
13553
13553
  PDFAcroCheckBox2.fromDict = function(dict, ref) {
13554
13554
  return new PDFAcroCheckBox2(dict, ref);
13555
13555
  };
13556
- PDFAcroCheckBox2.create = function(context) {
13557
- var dict = context.obj({
13556
+ PDFAcroCheckBox2.create = function(context2) {
13557
+ var dict = context2.obj({
13558
13558
  FT: "Btn",
13559
13559
  Kids: []
13560
13560
  });
13561
- var ref = context.register(dict);
13561
+ var ref = context2.register(dict);
13562
13562
  return new PDFAcroCheckBox2(dict, ref);
13563
13563
  };
13564
13564
  return PDFAcroCheckBox2;
@@ -13740,13 +13740,13 @@ var init_PDFAcroComboBox = __esm(() => {
13740
13740
  PDFAcroComboBox2.fromDict = function(dict, ref) {
13741
13741
  return new PDFAcroComboBox2(dict, ref);
13742
13742
  };
13743
- PDFAcroComboBox2.create = function(context) {
13744
- var dict = context.obj({
13743
+ PDFAcroComboBox2.create = function(context2) {
13744
+ var dict = context2.obj({
13745
13745
  FT: "Ch",
13746
13746
  Ff: AcroChoiceFlags.Combo,
13747
13747
  Kids: []
13748
13748
  });
13749
- var ref = context.register(dict);
13749
+ var ref = context2.register(dict);
13750
13750
  return new PDFAcroComboBox2(dict, ref);
13751
13751
  };
13752
13752
  return PDFAcroComboBox2;
@@ -13780,9 +13780,9 @@ var init_PDFAcroNonTerminal = __esm(() => {
13780
13780
  PDFAcroNonTerminal2.fromDict = function(dict, ref) {
13781
13781
  return new PDFAcroNonTerminal2(dict, ref);
13782
13782
  };
13783
- PDFAcroNonTerminal2.create = function(context) {
13784
- var dict = context.obj({});
13785
- var ref = context.register(dict);
13783
+ PDFAcroNonTerminal2.create = function(context2) {
13784
+ var dict = context2.obj({});
13785
+ var ref = context2.register(dict);
13786
13786
  return new PDFAcroNonTerminal2(dict, ref);
13787
13787
  };
13788
13788
  return PDFAcroNonTerminal2;
@@ -13866,12 +13866,12 @@ var init_PDFAcroText = __esm(() => {
13866
13866
  PDFAcroText2.fromDict = function(dict, ref) {
13867
13867
  return new PDFAcroText2(dict, ref);
13868
13868
  };
13869
- PDFAcroText2.create = function(context) {
13870
- var dict = context.obj({
13869
+ PDFAcroText2.create = function(context2) {
13870
+ var dict = context2.obj({
13871
13871
  FT: "Tx",
13872
13872
  Kids: []
13873
13873
  });
13874
- var ref = context.register(dict);
13874
+ var ref = context2.register(dict);
13875
13875
  return new PDFAcroText2(dict, ref);
13876
13876
  };
13877
13877
  return PDFAcroText2;
@@ -13893,13 +13893,13 @@ var init_PDFAcroPushButton = __esm(() => {
13893
13893
  PDFAcroPushButton2.fromDict = function(dict, ref) {
13894
13894
  return new PDFAcroPushButton2(dict, ref);
13895
13895
  };
13896
- PDFAcroPushButton2.create = function(context) {
13897
- var dict = context.obj({
13896
+ PDFAcroPushButton2.create = function(context2) {
13897
+ var dict = context2.obj({
13898
13898
  FT: "Btn",
13899
13899
  Ff: AcroButtonFlags.PushButton,
13900
13900
  Kids: []
13901
13901
  });
13902
- var ref = context.register(dict);
13902
+ var ref = context2.register(dict);
13903
13903
  return new PDFAcroPushButton2(dict, ref);
13904
13904
  };
13905
13905
  return PDFAcroPushButton2;
@@ -13952,13 +13952,13 @@ var init_PDFAcroRadioButton = __esm(() => {
13952
13952
  PDFAcroRadioButton2.fromDict = function(dict, ref) {
13953
13953
  return new PDFAcroRadioButton2(dict, ref);
13954
13954
  };
13955
- PDFAcroRadioButton2.create = function(context) {
13956
- var dict = context.obj({
13955
+ PDFAcroRadioButton2.create = function(context2) {
13956
+ var dict = context2.obj({
13957
13957
  FT: "Btn",
13958
13958
  Ff: AcroButtonFlags.Radio,
13959
13959
  Kids: []
13960
13960
  });
13961
- var ref = context.register(dict);
13961
+ var ref = context2.register(dict);
13962
13962
  return new PDFAcroRadioButton2(dict, ref);
13963
13963
  };
13964
13964
  return PDFAcroRadioButton2;
@@ -13979,12 +13979,12 @@ var init_PDFAcroListBox = __esm(() => {
13979
13979
  PDFAcroListBox2.fromDict = function(dict, ref) {
13980
13980
  return new PDFAcroListBox2(dict, ref);
13981
13981
  };
13982
- PDFAcroListBox2.create = function(context) {
13983
- var dict = context.obj({
13982
+ PDFAcroListBox2.create = function(context2) {
13983
+ var dict = context2.obj({
13984
13984
  FT: "Ch",
13985
13985
  Kids: []
13986
13986
  });
13987
- var ref = context.register(dict);
13987
+ var ref = context2.register(dict);
13988
13988
  return new PDFAcroListBox2(dict, ref);
13989
13989
  };
13990
13990
  return PDFAcroListBox2;
@@ -14101,28 +14101,28 @@ var init_PDFAcroForm = __esm(() => {
14101
14101
  this.dict = dict;
14102
14102
  }
14103
14103
  PDFAcroForm2.prototype.Fields = function() {
14104
- var fields3 = this.dict.lookup(PDFName_default.of("Fields"));
14105
- if (fields3 instanceof PDFArray_default)
14106
- return fields3;
14104
+ var fields4 = this.dict.lookup(PDFName_default.of("Fields"));
14105
+ if (fields4 instanceof PDFArray_default)
14106
+ return fields4;
14107
14107
  return;
14108
14108
  };
14109
14109
  PDFAcroForm2.prototype.getFields = function() {
14110
14110
  var Fields = this.normalizedEntries().Fields;
14111
- var fields3 = new Array(Fields.size());
14111
+ var fields4 = new Array(Fields.size());
14112
14112
  for (var idx3 = 0, len2 = Fields.size();idx3 < len2; idx3++) {
14113
14113
  var ref = Fields.get(idx3);
14114
14114
  var dict = Fields.lookup(idx3, PDFDict_default);
14115
- fields3[idx3] = [createPDFAcroField(dict, ref), ref];
14115
+ fields4[idx3] = [createPDFAcroField(dict, ref), ref];
14116
14116
  }
14117
- return fields3;
14117
+ return fields4;
14118
14118
  };
14119
14119
  PDFAcroForm2.prototype.getAllFields = function() {
14120
14120
  var allFields = [];
14121
- var pushFields = function(fields3) {
14122
- if (!fields3)
14121
+ var pushFields = function(fields4) {
14122
+ if (!fields4)
14123
14123
  return;
14124
- for (var idx3 = 0, len2 = fields3.length;idx3 < len2; idx3++) {
14125
- var field = fields3[idx3];
14124
+ for (var idx3 = 0, len2 = fields4.length;idx3 < len2; idx3++) {
14125
+ var field = fields4[idx3];
14126
14126
  allFields.push(field);
14127
14127
  var fieldModel = field[0];
14128
14128
  if (fieldModel instanceof PDFAcroNonTerminal_default) {
@@ -14139,13 +14139,13 @@ var init_PDFAcroForm = __esm(() => {
14139
14139
  };
14140
14140
  PDFAcroForm2.prototype.removeField = function(field) {
14141
14141
  var parent = field.getParent();
14142
- var fields3 = parent === undefined ? this.normalizedEntries().Fields : parent.Kids();
14143
- var index = fields3 === null || fields3 === undefined ? undefined : fields3.indexOf(field.ref);
14144
- if (fields3 === undefined || index === undefined) {
14142
+ var fields4 = parent === undefined ? this.normalizedEntries().Fields : parent.Kids();
14143
+ var index = fields4 === null || fields4 === undefined ? undefined : fields4.indexOf(field.ref);
14144
+ if (fields4 === undefined || index === undefined) {
14145
14145
  throw new Error("Tried to remove inexistent field " + field.getFullyQualifiedName());
14146
14146
  }
14147
- fields3.remove(index);
14148
- if (parent !== undefined && fields3.size() === 0) {
14147
+ fields4.remove(index);
14148
+ if (parent !== undefined && fields4.size() === 0) {
14149
14149
  this.removeField(parent);
14150
14150
  }
14151
14151
  };
@@ -14160,8 +14160,8 @@ var init_PDFAcroForm = __esm(() => {
14160
14160
  PDFAcroForm2.fromDict = function(dict) {
14161
14161
  return new PDFAcroForm2(dict);
14162
14162
  };
14163
- PDFAcroForm2.create = function(context) {
14164
- var dict = context.obj({ Fields: [] });
14163
+ PDFAcroForm2.create = function(context2) {
14164
+ var dict = context2.obj({ Fields: [] });
14165
14165
  return new PDFAcroForm2(dict);
14166
14166
  };
14167
14167
  return PDFAcroForm2;
@@ -14248,14 +14248,14 @@ var init_PDFCatalog = __esm(() => {
14248
14248
  PDFCatalog2.prototype.removeLeafNode = function(index) {
14249
14249
  this.Pages().removeLeafNode(index);
14250
14250
  };
14251
- PDFCatalog2.withContextAndPages = function(context, pages) {
14251
+ PDFCatalog2.withContextAndPages = function(context2, pages) {
14252
14252
  var dict = new Map;
14253
14253
  dict.set(PDFName_default.of("Type"), PDFName_default.of("Catalog"));
14254
14254
  dict.set(PDFName_default.of("Pages"), pages);
14255
- return new PDFCatalog2(dict, context);
14255
+ return new PDFCatalog2(dict, context2);
14256
14256
  };
14257
- PDFCatalog2.fromMapWithContext = function(map, context) {
14258
- return new PDFCatalog2(map, context);
14257
+ PDFCatalog2.fromMapWithContext = function(map, context2) {
14258
+ return new PDFCatalog2(map, context2);
14259
14259
  };
14260
14260
  return PDFCatalog2;
14261
14261
  }(PDFDict_default);
@@ -14394,17 +14394,17 @@ var init_PDFPageTree = __esm(() => {
14394
14394
  }
14395
14395
  Kids.remove(kidIdx);
14396
14396
  };
14397
- PDFPageTree2.withContext = function(context, parent) {
14397
+ PDFPageTree2.withContext = function(context2, parent) {
14398
14398
  var dict = new Map;
14399
14399
  dict.set(PDFName_default.of("Type"), PDFName_default.of("Pages"));
14400
- dict.set(PDFName_default.of("Kids"), context.obj([]));
14401
- dict.set(PDFName_default.of("Count"), context.obj(0));
14400
+ dict.set(PDFName_default.of("Kids"), context2.obj([]));
14401
+ dict.set(PDFName_default.of("Count"), context2.obj(0));
14402
14402
  if (parent)
14403
14403
  dict.set(PDFName_default.of("Parent"), parent);
14404
- return new PDFPageTree2(dict, context);
14404
+ return new PDFPageTree2(dict, context2);
14405
14405
  };
14406
- PDFPageTree2.fromMapWithContext = function(map, context) {
14407
- return new PDFPageTree2(map, context);
14406
+ PDFPageTree2.fromMapWithContext = function(map, context2) {
14407
+ return new PDFPageTree2(map, context2);
14408
14408
  };
14409
14409
  return PDFPageTree2;
14410
14410
  }(PDFDict_default);
@@ -14724,12 +14724,12 @@ var init_PDFObjectParser = __esm(() => {
14724
14724
  init_utils2();
14725
14725
  PDFObjectParser = function(_super) {
14726
14726
  __extends(PDFObjectParser2, _super);
14727
- function PDFObjectParser2(byteStream, context, capNumbers) {
14727
+ function PDFObjectParser2(byteStream, context2, capNumbers) {
14728
14728
  if (capNumbers === undefined) {
14729
14729
  capNumbers = false;
14730
14730
  }
14731
14731
  var _this = _super.call(this, byteStream, capNumbers) || this;
14732
- _this.context = context;
14732
+ _this.context = context2;
14733
14733
  return _this;
14734
14734
  }
14735
14735
  PDFObjectParser2.prototype.parseObject = function() {
@@ -14896,14 +14896,14 @@ var init_PDFObjectParser = __esm(() => {
14896
14896
  throw new PDFStreamParsingError(startPos);
14897
14897
  return end;
14898
14898
  };
14899
- PDFObjectParser2.forBytes = function(bytes, context, capNumbers) {
14900
- return new PDFObjectParser2(ByteStream_default.of(bytes), context, capNumbers);
14899
+ PDFObjectParser2.forBytes = function(bytes, context2, capNumbers) {
14900
+ return new PDFObjectParser2(ByteStream_default.of(bytes), context2, capNumbers);
14901
14901
  };
14902
- PDFObjectParser2.forByteStream = function(byteStream, context, capNumbers) {
14902
+ PDFObjectParser2.forByteStream = function(byteStream, context2, capNumbers) {
14903
14903
  if (capNumbers === undefined) {
14904
14904
  capNumbers = false;
14905
14905
  }
14906
- return new PDFObjectParser2(byteStream, context, capNumbers);
14906
+ return new PDFObjectParser2(byteStream, context2, capNumbers);
14907
14907
  };
14908
14908
  return PDFObjectParser2;
14909
14909
  }(BaseParser_default);
@@ -14936,7 +14936,7 @@ var init_PDFObjectStreamParser = __esm(() => {
14936
14936
  }
14937
14937
  PDFObjectStreamParser2.prototype.parseIntoContext = function() {
14938
14938
  return __awaiter(this, undefined, undefined, function() {
14939
- var offsetsAndObjectNumbers, idx4, len3, _a, objectNumber, offset, object3, ref;
14939
+ var offsetsAndObjectNumbers, idx4, len3, _a, objectNumber, offset, object4, ref;
14940
14940
  return __generator(this, function(_b) {
14941
14941
  switch (_b.label) {
14942
14942
  case 0:
@@ -14952,9 +14952,9 @@ var init_PDFObjectStreamParser = __esm(() => {
14952
14952
  return [3, 4];
14953
14953
  _a = offsetsAndObjectNumbers[idx4], objectNumber = _a.objectNumber, offset = _a.offset;
14954
14954
  this.bytes.moveTo(this.firstOffset + offset);
14955
- object3 = this.parseObject();
14955
+ object4 = this.parseObject();
14956
14956
  ref = PDFRef_default.of(objectNumber, 0);
14957
- this.context.assign(ref, object3);
14957
+ this.context.assign(ref, object4);
14958
14958
  if (!this.shouldWaitForTick())
14959
14959
  return [3, 3];
14960
14960
  return [4, waitForTick()];
@@ -15164,8 +15164,8 @@ var init_PDFParser = __esm(() => {
15164
15164
  if (!isValidCatalog(catalog)) {
15165
15165
  var indirectObjects = this.context.enumerateIndirectObjects();
15166
15166
  for (var idx4 = 0, len3 = indirectObjects.length;idx4 < len3; idx4++) {
15167
- var _a = indirectObjects[idx4], ref = _a[0], object3 = _a[1];
15168
- if (isValidCatalog(object3)) {
15167
+ var _a = indirectObjects[idx4], ref = _a[0], object4 = _a[1];
15168
+ if (isValidCatalog(object4)) {
15169
15169
  this.context.trailerInfo.Root = ref;
15170
15170
  }
15171
15171
  }
@@ -15208,26 +15208,26 @@ var init_PDFParser = __esm(() => {
15208
15208
  };
15209
15209
  PDFParser2.prototype.parseIndirectObject = function() {
15210
15210
  return __awaiter(this, undefined, undefined, function() {
15211
- var ref, object3;
15211
+ var ref, object4;
15212
15212
  return __generator(this, function(_a) {
15213
15213
  switch (_a.label) {
15214
15214
  case 0:
15215
15215
  ref = this.parseIndirectObjectHeader();
15216
15216
  this.skipWhitespaceAndComments();
15217
- object3 = this.parseObject();
15217
+ object4 = this.parseObject();
15218
15218
  this.skipWhitespaceAndComments();
15219
15219
  this.matchKeyword(Keywords.endobj);
15220
- if (!(object3 instanceof PDFRawStream_default && object3.dict.lookup(PDFName_default.of("Type")) === PDFName_default.of("ObjStm")))
15220
+ if (!(object4 instanceof PDFRawStream_default && object4.dict.lookup(PDFName_default.of("Type")) === PDFName_default.of("ObjStm")))
15221
15221
  return [3, 2];
15222
- return [4, PDFObjectStreamParser_default.forStream(object3, this.shouldWaitForTick).parseIntoContext()];
15222
+ return [4, PDFObjectStreamParser_default.forStream(object4, this.shouldWaitForTick).parseIntoContext()];
15223
15223
  case 1:
15224
15224
  _a.sent();
15225
15225
  return [3, 3];
15226
15226
  case 2:
15227
- if (object3 instanceof PDFRawStream_default && object3.dict.lookup(PDFName_default.of("Type")) === PDFName_default.of("XRef")) {
15228
- PDFXRefStreamParser_default.forStream(object3).parseIntoContext();
15227
+ if (object4 instanceof PDFRawStream_default && object4.dict.lookup(PDFName_default.of("Type")) === PDFName_default.of("XRef")) {
15228
+ PDFXRefStreamParser_default.forStream(object4).parseIntoContext();
15229
15229
  } else {
15230
- this.context.assign(ref, object3);
15230
+ this.context.assign(ref, object4);
15231
15231
  }
15232
15232
  _a.label = 3;
15233
15233
  case 3:
@@ -15258,8 +15258,8 @@ var init_PDFParser = __esm(() => {
15258
15258
  if (failed)
15259
15259
  throw new PDFInvalidObjectParsingError(startPos);
15260
15260
  var end = this.bytes.offset() - Keywords.endobj.length;
15261
- var object3 = PDFInvalidObject_default.of(this.bytes.slice(start, end));
15262
- this.context.assign(ref, object3);
15261
+ var object4 = PDFInvalidObject_default.of(this.bytes.slice(start, end));
15262
+ this.context.assign(ref, object4);
15263
15263
  return ref;
15264
15264
  };
15265
15265
  PDFParser2.prototype.parseIndirectObjects = function() {
@@ -15337,12 +15337,12 @@ var init_PDFParser = __esm(() => {
15337
15337
  return;
15338
15338
  this.skipWhitespaceAndComments();
15339
15339
  var dict = this.parseDict();
15340
- var context = this.context;
15341
- context.trailerInfo = {
15342
- Root: dict.get(PDFName_default.of("Root")) || context.trailerInfo.Root,
15343
- Encrypt: dict.get(PDFName_default.of("Encrypt")) || context.trailerInfo.Encrypt,
15344
- Info: dict.get(PDFName_default.of("Info")) || context.trailerInfo.Info,
15345
- ID: dict.get(PDFName_default.of("ID")) || context.trailerInfo.ID
15340
+ var context2 = this.context;
15341
+ context2.trailerInfo = {
15342
+ Root: dict.get(PDFName_default.of("Root")) || context2.trailerInfo.Root,
15343
+ Encrypt: dict.get(PDFName_default.of("Encrypt")) || context2.trailerInfo.Encrypt,
15344
+ Info: dict.get(PDFName_default.of("Info")) || context2.trailerInfo.Info,
15345
+ ID: dict.get(PDFName_default.of("ID")) || context2.trailerInfo.ID
15346
15346
  };
15347
15347
  };
15348
15348
  PDFParser2.prototype.maybeParseTrailer = function() {
@@ -17666,21 +17666,21 @@ var init_PDFField = __esm(() => {
17666
17666
  };
17667
17667
  PDFField2.prototype.createAppearanceStream = function(widget, appearance, font) {
17668
17668
  var _a;
17669
- var context = this.acroField.dict.context;
17669
+ var context2 = this.acroField.dict.context;
17670
17670
  var _b = widget.getRectangle(), width = _b.width, height = _b.height;
17671
17671
  var Resources = font && { Font: (_a = {}, _a[font.name] = font.ref, _a) };
17672
- var stream2 = context.formXObject(appearance, {
17672
+ var stream2 = context2.formXObject(appearance, {
17673
17673
  Resources,
17674
- BBox: context.obj([0, 0, width, height]),
17675
- Matrix: context.obj([1, 0, 0, 1, 0, 0])
17674
+ BBox: context2.obj([0, 0, width, height]),
17675
+ Matrix: context2.obj([1, 0, 0, 1, 0, 0])
17676
17676
  });
17677
- var streamRef = context.register(stream2);
17677
+ var streamRef = context2.register(stream2);
17678
17678
  return streamRef;
17679
17679
  };
17680
17680
  PDFField2.prototype.createImageAppearanceStream = function(widget, image, alignment2) {
17681
17681
  var _a;
17682
17682
  var _b;
17683
- var context = this.acroField.dict.context;
17683
+ var context2 = this.acroField.dict.context;
17684
17684
  var rectangle2 = widget.getRectangle();
17685
17685
  var ap = widget.getAppearanceCharacteristics();
17686
17686
  var bs = widget.getBorderStyle();
@@ -17708,18 +17708,18 @@ var init_PDFField = __esm(() => {
17708
17708
  var imageName = this.doc.context.addRandomSuffix("Image", 10);
17709
17709
  var appearance = __spreadArrays(rotate, drawImage(imageName, options));
17710
17710
  var Resources = { XObject: (_a = {}, _a[imageName] = image.ref, _a) };
17711
- var stream2 = context.formXObject(appearance, {
17711
+ var stream2 = context2.formXObject(appearance, {
17712
17712
  Resources,
17713
- BBox: context.obj([0, 0, rectangle2.width, rectangle2.height]),
17714
- Matrix: context.obj([1, 0, 0, 1, 0, 0])
17713
+ BBox: context2.obj([0, 0, rectangle2.width, rectangle2.height]),
17714
+ Matrix: context2.obj([1, 0, 0, 1, 0, 0])
17715
17715
  });
17716
- return context.register(stream2);
17716
+ return context2.register(stream2);
17717
17717
  };
17718
17718
  PDFField2.prototype.createAppearanceDict = function(widget, appearance, onValue) {
17719
- var context = this.acroField.dict.context;
17719
+ var context2 = this.acroField.dict.context;
17720
17720
  var onStreamRef = this.createAppearanceStream(widget, appearance.on);
17721
17721
  var offStreamRef = this.createAppearanceStream(widget, appearance.off);
17722
- var appearanceDict = context.obj({});
17722
+ var appearanceDict = context2.obj({});
17723
17723
  appearanceDict.set(onValue, onStreamRef);
17724
17724
  appearanceDict.set(PDFName_default.of("Off"), offStreamRef);
17725
17725
  return appearanceDict;
@@ -18725,9 +18725,9 @@ var PDFForm, PDFForm_default, convertToPDFField = function(field, ref, doc) {
18725
18725
  var parent = _a[0], parentRef = _a[1];
18726
18726
  var field = _b[0], fieldRef = _b[1];
18727
18727
  var entries = parent.normalizedEntries();
18728
- var fields3 = createPDFAcroFields("Kids" in entries ? entries.Kids : entries.Fields);
18729
- for (var idx4 = 0, len3 = fields3.length;idx4 < len3; idx4++) {
18730
- if (fields3[idx4][0].getPartialName() === partialName) {
18728
+ var fields4 = createPDFAcroFields("Kids" in entries ? entries.Kids : entries.Fields);
18729
+ for (var idx4 = 0, len3 = fields4.length;idx4 < len3; idx4++) {
18730
+ if (fields4[idx4][0].getPartialName() === partialName) {
18731
18731
  throw new FieldAlreadyExistsError(partialName);
18732
18732
  }
18733
18733
  }
@@ -18772,20 +18772,20 @@ var init_PDFForm = __esm(() => {
18772
18772
  };
18773
18773
  PDFForm2.prototype.getFields = function() {
18774
18774
  var allFields = this.acroForm.getAllFields();
18775
- var fields3 = [];
18775
+ var fields4 = [];
18776
18776
  for (var idx4 = 0, len3 = allFields.length;idx4 < len3; idx4++) {
18777
18777
  var _a = allFields[idx4], acroField = _a[0], ref = _a[1];
18778
18778
  var field = convertToPDFField(acroField, ref, this.doc);
18779
18779
  if (field)
18780
- fields3.push(field);
18780
+ fields4.push(field);
18781
18781
  }
18782
- return fields3;
18782
+ return fields4;
18783
18783
  };
18784
18784
  PDFForm2.prototype.getFieldMaybe = function(name) {
18785
18785
  assertIs(name, "name", ["string"]);
18786
- var fields3 = this.getFields();
18787
- for (var idx4 = 0, len3 = fields3.length;idx4 < len3; idx4++) {
18788
- var field = fields3[idx4];
18786
+ var fields4 = this.getFields();
18787
+ for (var idx4 = 0, len3 = fields4.length;idx4 < len3; idx4++) {
18788
+ var field = fields4[idx4];
18789
18789
  if (field.getName() === name)
18790
18790
  return field;
18791
18791
  }
@@ -18908,9 +18908,9 @@ var init_PDFForm = __esm(() => {
18908
18908
  if (options.updateFieldAppearances) {
18909
18909
  this.updateFieldAppearances();
18910
18910
  }
18911
- var fields3 = this.getFields();
18912
- for (var i3 = 0, lenFields = fields3.length;i3 < lenFields; i3++) {
18913
- var field = fields3[i3];
18911
+ var fields4 = this.getFields();
18912
+ for (var i3 = 0, lenFields = fields4.length;i3 < lenFields; i3++) {
18913
+ var field = fields4[i3];
18914
18914
  var widgets = field.acroField.getWidgets();
18915
18915
  for (var j = 0, lenWidgets = widgets.length;j < lenWidgets; j++) {
18916
18916
  var widget = widgets[j];
@@ -18957,9 +18957,9 @@ var init_PDFForm = __esm(() => {
18957
18957
  PDFForm2.prototype.updateFieldAppearances = function(font) {
18958
18958
  assertOrUndefined(font, "font", [[PDFFont_default, "PDFFont"]]);
18959
18959
  font = font !== null && font !== undefined ? font : this.getDefaultFont();
18960
- var fields3 = this.getFields();
18961
- for (var idx4 = 0, len3 = fields3.length;idx4 < len3; idx4++) {
18962
- var field = fields3[idx4];
18960
+ var fields4 = this.getFields();
18961
+ for (var idx4 = 0, len3 = fields4.length;idx4 < len3; idx4++) {
18962
+ var field = fields4[idx4];
18963
18963
  if (field.needsAppearancesUpdate()) {
18964
18964
  field.defaultUpdateAppearances(font);
18965
18965
  }
@@ -19037,9 +19037,9 @@ var init_PDFForm = __esm(() => {
19037
19037
  return nonTerminal;
19038
19038
  };
19039
19039
  PDFForm2.prototype.findNonTerminal = function(partialName, parent) {
19040
- var fields3 = parent instanceof PDFAcroForm_default ? this.acroForm.getFields() : createPDFAcroFields(parent.Kids());
19041
- for (var idx4 = 0, len3 = fields3.length;idx4 < len3; idx4++) {
19042
- var _a = fields3[idx4], field = _a[0], ref = _a[1];
19040
+ var fields4 = parent instanceof PDFAcroForm_default ? this.acroForm.getFields() : createPDFAcroFields(parent.Kids());
19041
+ for (var idx4 = 0, len3 = fields4.length;idx4 < len3; idx4++) {
19042
+ var _a = fields4[idx4], field = _a[0], ref = _a[1];
19043
19043
  if (field.getPartialName() === partialName) {
19044
19044
  if (field instanceof PDFAcroNonTerminal_default)
19045
19045
  return [field, ref];
@@ -19196,26 +19196,26 @@ var init_PDFJavaScript = __esm(() => {
19196
19196
  }
19197
19197
  PDFJavaScript2.prototype.embed = function() {
19198
19198
  return __awaiter(this, undefined, undefined, function() {
19199
- var _a, catalog, context, ref, Names, Javascript, JSNames;
19199
+ var _a, catalog, context2, ref, Names, Javascript, JSNames;
19200
19200
  return __generator(this, function(_b) {
19201
19201
  switch (_b.label) {
19202
19202
  case 0:
19203
19203
  if (!!this.alreadyEmbedded)
19204
19204
  return [3, 2];
19205
- _a = this.doc, catalog = _a.catalog, context = _a.context;
19205
+ _a = this.doc, catalog = _a.catalog, context2 = _a.context;
19206
19206
  return [4, this.embedder.embedIntoContext(this.doc.context, this.ref)];
19207
19207
  case 1:
19208
19208
  ref = _b.sent();
19209
19209
  if (!catalog.has(PDFName_default.of("Names"))) {
19210
- catalog.set(PDFName_default.of("Names"), context.obj({}));
19210
+ catalog.set(PDFName_default.of("Names"), context2.obj({}));
19211
19211
  }
19212
19212
  Names = catalog.lookup(PDFName_default.of("Names"), PDFDict_default);
19213
19213
  if (!Names.has(PDFName_default.of("JavaScript"))) {
19214
- Names.set(PDFName_default.of("JavaScript"), context.obj({}));
19214
+ Names.set(PDFName_default.of("JavaScript"), context2.obj({}));
19215
19215
  }
19216
19216
  Javascript = Names.lookup(PDFName_default.of("JavaScript"), PDFDict_default);
19217
19217
  if (!Javascript.has(PDFName_default.of("Names"))) {
19218
- Javascript.set(PDFName_default.of("Names"), context.obj([]));
19218
+ Javascript.set(PDFName_default.of("Names"), context2.obj([]));
19219
19219
  }
19220
19220
  JSNames = Javascript.lookup(PDFName_default.of("Names"), PDFArray_default);
19221
19221
  JSNames.push(PDFHexString_default.fromText(this.embedder.scriptName));
@@ -19249,20 +19249,20 @@ var init_JavaScriptEmbedder = __esm(() => {
19249
19249
  JavaScriptEmbedder2.for = function(script, scriptName) {
19250
19250
  return new JavaScriptEmbedder2(script, scriptName);
19251
19251
  };
19252
- JavaScriptEmbedder2.prototype.embedIntoContext = function(context, ref) {
19252
+ JavaScriptEmbedder2.prototype.embedIntoContext = function(context2, ref) {
19253
19253
  return __awaiter(this, undefined, undefined, function() {
19254
19254
  var jsActionDict;
19255
19255
  return __generator(this, function(_a) {
19256
- jsActionDict = context.obj({
19256
+ jsActionDict = context2.obj({
19257
19257
  Type: "Action",
19258
19258
  S: "JavaScript",
19259
19259
  JS: PDFHexString_default.fromText(this.script)
19260
19260
  });
19261
19261
  if (ref) {
19262
- context.assign(ref, jsActionDict);
19262
+ context2.assign(ref, jsActionDict);
19263
19263
  return [2, ref];
19264
19264
  } else {
19265
- return [2, context.register(jsActionDict)];
19265
+ return [2, context2.register(jsActionDict)];
19266
19266
  }
19267
19267
  return [2];
19268
19268
  });
@@ -19297,7 +19297,7 @@ var init_PDFDocument = __esm(() => {
19297
19297
  init_PDFJavaScript();
19298
19298
  init_JavaScriptEmbedder();
19299
19299
  PDFDocument = function() {
19300
- function PDFDocument2(context, ignoreEncryption, updateMetadata) {
19300
+ function PDFDocument2(context2, ignoreEncryption, updateMetadata) {
19301
19301
  var _this = this;
19302
19302
  this.defaultWordBreaks = [" "];
19303
19303
  this.computePages = function() {
@@ -19318,11 +19318,11 @@ var init_PDFDocument = __esm(() => {
19318
19318
  var acroForm = _this.catalog.getOrCreateAcroForm();
19319
19319
  return PDFForm_default.of(acroForm, _this);
19320
19320
  };
19321
- assertIs(context, "context", [[PDFContext_default, "PDFContext"]]);
19321
+ assertIs(context2, "context", [[PDFContext_default, "PDFContext"]]);
19322
19322
  assertIs(ignoreEncryption, "ignoreEncryption", ["boolean"]);
19323
- this.context = context;
19324
- this.catalog = context.lookup(context.trailerInfo.Root);
19325
- this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);
19323
+ this.context = context2;
19324
+ this.catalog = context2.lookup(context2.trailerInfo.Root);
19325
+ this.isEncrypted = !!context2.lookup(context2.trailerInfo.Encrypt);
19326
19326
  this.pageCache = Cache_default.populatedBy(this.computePages);
19327
19327
  this.pageMap = new Map;
19328
19328
  this.formCache = Cache_default.populatedBy(this.getOrCreateForm);
@@ -19341,7 +19341,7 @@ var init_PDFDocument = __esm(() => {
19341
19341
  options = {};
19342
19342
  }
19343
19343
  return __awaiter(this, undefined, undefined, function() {
19344
- var _a, ignoreEncryption, _b, parseSpeed, _c, throwOnInvalidObject, _d, updateMetadata, _e, capNumbers, bytes, context;
19344
+ var _a, ignoreEncryption, _b, parseSpeed, _c, throwOnInvalidObject, _d, updateMetadata, _e, capNumbers, bytes, context2;
19345
19345
  return __generator(this, function(_f) {
19346
19346
  switch (_f.label) {
19347
19347
  case 0:
@@ -19353,8 +19353,8 @@ var init_PDFDocument = __esm(() => {
19353
19353
  bytes = toUint8Array(pdf);
19354
19354
  return [4, PDFParser_default.forBytesWithOptions(bytes, parseSpeed, throwOnInvalidObject, capNumbers).parseDocument()];
19355
19355
  case 1:
19356
- context = _f.sent();
19357
- return [2, new PDFDocument2(context, ignoreEncryption, updateMetadata)];
19356
+ context2 = _f.sent();
19357
+ return [2, new PDFDocument2(context2, ignoreEncryption, updateMetadata)];
19358
19358
  }
19359
19359
  });
19360
19360
  });
@@ -19364,15 +19364,15 @@ var init_PDFDocument = __esm(() => {
19364
19364
  options = {};
19365
19365
  }
19366
19366
  return __awaiter(this, undefined, undefined, function() {
19367
- var _a, updateMetadata, context, pageTree, pageTreeRef, catalog;
19367
+ var _a, updateMetadata, context2, pageTree, pageTreeRef, catalog;
19368
19368
  return __generator(this, function(_b) {
19369
19369
  _a = options.updateMetadata, updateMetadata = _a === undefined ? true : _a;
19370
- context = PDFContext_default.create();
19371
- pageTree = PDFPageTree_default.withContext(context);
19372
- pageTreeRef = context.register(pageTree);
19373
- catalog = PDFCatalog_default.withContextAndPages(context, pageTreeRef);
19374
- context.trailerInfo.Root = context.register(catalog);
19375
- return [2, new PDFDocument2(context, false, updateMetadata)];
19370
+ context2 = PDFContext_default.create();
19371
+ pageTree = PDFPageTree_default.withContext(context2);
19372
+ pageTreeRef = context2.register(pageTree);
19373
+ catalog = PDFCatalog_default.withContextAndPages(context2, pageTreeRef);
19374
+ context2.trailerInfo.Root = context2.register(catalog);
19375
+ return [2, new PDFDocument2(context2, false, updateMetadata)];
19376
19376
  });
19377
19377
  });
19378
19378
  };
@@ -19789,7 +19789,7 @@ var init_PDFDocument = __esm(() => {
19789
19789
  transformationMatrices = [];
19790
19790
  }
19791
19791
  return __awaiter(this, undefined, undefined, function() {
19792
- var idx4, len3, currPage, nextPage, context, maybeCopyPage, embeddedPages, idx4, len3, page, box, matrix, embedder, ref;
19792
+ var idx4, len3, currPage, nextPage, context2, maybeCopyPage, embeddedPages, idx4, len3, page, box, matrix, embedder, ref;
19793
19793
  var _a;
19794
19794
  return __generator(this, function(_b) {
19795
19795
  switch (_b.label) {
@@ -19803,10 +19803,10 @@ var init_PDFDocument = __esm(() => {
19803
19803
  throw new PageEmbeddingMismatchedContextError;
19804
19804
  }
19805
19805
  }
19806
- context = pages[0].node.context;
19807
- maybeCopyPage = context === this.context ? function(p) {
19806
+ context2 = pages[0].node.context;
19807
+ maybeCopyPage = context2 === this.context ? function(p) {
19808
19808
  return p;
19809
- } : PDFObjectCopier_default.for(context, this.context).copy;
19809
+ } : PDFObjectCopier_default.for(context2, this.context).copy;
19810
19810
  embeddedPages = new Array(pages.length);
19811
19811
  idx4 = 0, len3 = pages.length;
19812
19812
  _b.label = 1;
@@ -21884,6 +21884,7 @@ class FileOperationError extends Error {
21884
21884
  }
21885
21885
  }
21886
21886
  var FILE_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
21887
+ var FILE_ORIGINAL_MAX_BYTES = 5 * 1024 ** 3;
21887
21888
  function parseFileDescriptor(value) {
21888
21889
  const invalid2 = () => {
21889
21890
  throw new FileOperationError("unavailable", 503, true);
@@ -21891,7 +21892,7 @@ function parseFileDescriptor(value) {
21891
21892
  if (!value || typeof value !== "object" || Array.isArray(value))
21892
21893
  return invalid2();
21893
21894
  const f = value;
21894
- if (Object.keys(f).sort().join(",") !== "details,enrichments,id,mediaType,name,path,sha256,size" || typeof f.id !== "string" || !FILE_ID_PATTERN.test(f.id) || !safeFileName(f.name) || !safeFilePath(f.path) || !Number.isSafeInteger(f.size) || f.size < 0 || f.size > 16 * 1024 * 1024 || typeof f.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(f.sha256) || !f.enrichments || typeof f.enrichments !== "object" || Array.isArray(f.enrichments) || !f.details || typeof f.details !== "object" || Array.isArray(f.details))
21895
+ if (Object.keys(f).sort().join(",") !== "details,enrichments,id,mediaType,name,path,sha256,size" || typeof f.id !== "string" || !FILE_ID_PATTERN.test(f.id) || !safeFileName(f.name) || !safeFilePath(f.path) || !Number.isSafeInteger(f.size) || f.size < 0 || f.size > FILE_ORIGINAL_MAX_BYTES || typeof f.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(f.sha256) || !f.enrichments || typeof f.enrichments !== "object" || Array.isArray(f.enrichments) || !f.details || typeof f.details !== "object" || Array.isArray(f.details))
21895
21896
  return invalid2();
21896
21897
  const d = f.details;
21897
21898
  if (d.kind === "other") {
@@ -22100,6 +22101,19 @@ function installMemberContext(resolve) {
22100
22101
  memberContext = undefined;
22101
22102
  };
22102
22103
  }
22104
+ async function resolveAppContext() {
22105
+ const host = memberContext;
22106
+ if (!host)
22107
+ throw new Error("App context unavailable.");
22108
+ const context = await host();
22109
+ if (host !== memberContext || !context.isCurrent() || context.expiresAt <= Date.now()) {
22110
+ throw new Error("App context unavailable.");
22111
+ }
22112
+ if (context.kind !== "local" && (typeof context.accessToken !== "string" || !/^[^\s]{1,8192}$/.test(context.accessToken))) {
22113
+ throw new Error("App context unavailable.");
22114
+ }
22115
+ return context;
22116
+ }
22103
22117
  async function resolveDataContext() {
22104
22118
  try {
22105
22119
  const local = localRoutineRequest();
@@ -22111,6 +22125,10 @@ async function resolveDataContext() {
22111
22125
  const host = memberContext;
22112
22126
  if (host !== undefined) {
22113
22127
  const context = await host();
22128
+ if (host !== memberContext || !context.isCurrent() || context.expiresAt <= Date.now())
22129
+ throw new Error;
22130
+ if (context.kind === "local")
22131
+ return { local: context.requestData };
22114
22132
  if (!context || !Number.isFinite(context.expiresAt) || context.expiresAt <= Date.now() || typeof context.accessToken !== "string" || !/^[^\s]{1,8192}$/.test(context.accessToken))
22115
22133
  throw new Error;
22116
22134
  return checked(context.workspace, context.endpoint, { authorization: `Bearer ${context.accessToken}` });
@@ -22137,6 +22155,8 @@ async function resolveFilesContext() {
22137
22155
  const host = memberContext;
22138
22156
  if (host) {
22139
22157
  const context = await host();
22158
+ if (context.kind === "local")
22159
+ throw new Error;
22140
22160
  if (!Number.isFinite(context.expiresAt) || context.expiresAt <= Date.now() || typeof context.accessToken !== "string" || !/^[^\s]{1,8192}$/.test(context.accessToken))
22141
22161
  throw new Error;
22142
22162
  return {
@@ -22307,6 +22327,7 @@ var data = {
22307
22327
  };
22308
22328
  // src/files.ts
22309
22329
  var MAX_BYTES = 16 * 1024 * 1024;
22330
+ var PART_BYTES = 8 * 1024 * 1024;
22310
22331
  var METADATA_BYTES = 4096;
22311
22332
  var RESULT_BYTES = 16 * 1024;
22312
22333
  var TIMEOUT_MS = 30000;
@@ -22348,7 +22369,7 @@ async function boundedBytes(stream, limit) {
22348
22369
  }
22349
22370
  return bytes.slice(0, size);
22350
22371
  }
22351
- async function timed(work, parent) {
22372
+ async function timed(work, parent, timeout = TIMEOUT_MS) {
22352
22373
  const controller = new AbortController;
22353
22374
  let timer;
22354
22375
  let abort;
@@ -22357,7 +22378,7 @@ async function timed(work, parent) {
22357
22378
  controller.abort();
22358
22379
  reject(unavailable());
22359
22380
  };
22360
- timer = setTimeout(abort, TIMEOUT_MS);
22381
+ timer = setTimeout(abort, timeout);
22361
22382
  parent?.addEventListener("abort", abort, { once: true });
22362
22383
  if (parent?.aborted)
22363
22384
  abort();
@@ -22511,6 +22532,10 @@ async function send(suffix, init, descriptor, initial, parent) {
22511
22532
  if (!descriptor)
22512
22533
  return response;
22513
22534
  const value = await result(response);
22535
+ if (descriptor === "control") {
22536
+ checkCurrent();
22537
+ return value;
22538
+ }
22514
22539
  let parsed;
22515
22540
  if (descriptor === "enrichment") {
22516
22541
  if (!value || typeof value !== "object" || Array.isArray(value))
@@ -22537,6 +22562,126 @@ function idPath(id2) {
22537
22562
  throw invalid2();
22538
22563
  return `/${id2}`;
22539
22564
  }
22565
+ async function multipartCreate(input, metadata, context) {
22566
+ let ticket;
22567
+ let reader;
22568
+ let chunk, offset = 0;
22569
+ const receipts = [];
22570
+ const pending = new Set;
22571
+ const request = (work, timeout = TIMEOUT_MS) => timed((signal) => {
22572
+ const task = work(signal);
22573
+ pending.add(task);
22574
+ task.then(() => pending.delete(task), () => pending.delete(task));
22575
+ return task;
22576
+ }, undefined, timeout);
22577
+ const control = (body) => ({
22578
+ method: "POST",
22579
+ headers: { "content-type": "application/json", ...ticket ? { "x-oddington-transfer": ticket } : {} },
22580
+ body: JSON.stringify(body)
22581
+ });
22582
+ try {
22583
+ const start = await request((signal) => send("/multipart/start", control(metadata), "control", context, signal));
22584
+ if (!start || typeof start !== "object" || Array.isArray(start))
22585
+ throw unavailable();
22586
+ const session = start;
22587
+ if (Object.keys(session).sort().join(",") !== "partBytes,ticket" || session.partBytes !== PART_BYTES || typeof session.ticket !== "string" || !session.ticket || session.ticket.length > 8192)
22588
+ throw unavailable();
22589
+ ticket = session.ticket;
22590
+ if (input.file instanceof ReadableStream)
22591
+ reader = input.file.getReader();
22592
+ let lastProgress = Date.now();
22593
+ const next = async () => {
22594
+ try {
22595
+ if (Date.now() - lastProgress >= TIMEOUT_MS)
22596
+ throw unavailable();
22597
+ const value = await request(() => reader.read(), Math.max(1, TIMEOUT_MS - (Date.now() - lastProgress)));
22598
+ if (value.value?.byteLength)
22599
+ lastProgress = Date.now();
22600
+ return value;
22601
+ } catch (error) {
22602
+ await reader.cancel(error).catch(() => {});
22603
+ throw error;
22604
+ }
22605
+ };
22606
+ for (let sent = 0, partNumber = 1;sent < metadata.size; partNumber++) {
22607
+ const length = Math.min(PART_BYTES, metadata.size - sent);
22608
+ let part;
22609
+ if (input.file instanceof Uint8Array)
22610
+ part = input.file.subarray(sent, sent + length).slice();
22611
+ else if (input.file instanceof Blob) {
22612
+ const slice = input.file.slice(sent, sent + length);
22613
+ part = new Uint8Array(await request(() => slice.arrayBuffer()));
22614
+ } else {
22615
+ part = new Uint8Array(length);
22616
+ let filled = 0;
22617
+ while (filled < length) {
22618
+ if (!chunk || offset === chunk.byteLength) {
22619
+ chunk = undefined;
22620
+ offset = 0;
22621
+ const value2 = await next();
22622
+ if (value2.done)
22623
+ throw invalid2();
22624
+ if (!(value2.value instanceof Uint8Array))
22625
+ throw invalid2();
22626
+ chunk = value2.value;
22627
+ if (chunk.byteLength > metadata.size - sent - filled)
22628
+ throw invalid2();
22629
+ }
22630
+ const take = Math.min(length - filled, chunk.byteLength - offset);
22631
+ part.set(chunk.subarray(offset, offset + take), filled);
22632
+ filled += take;
22633
+ offset += take;
22634
+ if (offset === chunk.byteLength) {
22635
+ chunk = undefined;
22636
+ offset = 0;
22637
+ }
22638
+ }
22639
+ }
22640
+ if (part.byteLength !== length)
22641
+ throw invalid2();
22642
+ if (reader && sent + length === metadata.size) {
22643
+ lastProgress = Date.now();
22644
+ for (;; ) {
22645
+ const value2 = await next();
22646
+ if (value2.done)
22647
+ break;
22648
+ if (!(value2.value instanceof Uint8Array) || value2.value.byteLength)
22649
+ throw invalid2();
22650
+ }
22651
+ }
22652
+ const value = await request((signal) => send("/multipart/part", {
22653
+ method: "POST",
22654
+ headers: { "content-type": "application/octet-stream", "x-oddington-transfer": ticket, "x-oddington-part": String(partNumber) },
22655
+ body: part.buffer
22656
+ }, "control", context, signal));
22657
+ const receipt = value;
22658
+ if (!receipt || typeof receipt !== "object" || Object.keys(receipt).sort().join(",") !== "etag,partNumber" || receipt.partNumber !== partNumber || typeof receipt.etag !== "string" || !receipt.etag || receipt.etag.length > 256 || /[\u0000-\u001f\u007f]/.test(receipt.etag))
22659
+ throw unavailable();
22660
+ receipts.push({ partNumber, etag: receipt.etag });
22661
+ sent += length;
22662
+ lastProgress = Date.now();
22663
+ }
22664
+ const completion = control({ parts: receipts });
22665
+ if (new TextEncoder().encode(completion.body).byteLength > 128 * 1024)
22666
+ throw unavailable();
22667
+ return await request((signal) => send("/multipart/complete", completion, true, context, signal), TIMEOUT_MS + Math.ceil(metadata.size / (1024 * 1024)) * 1000);
22668
+ } catch (error) {
22669
+ if (reader)
22670
+ await reader.cancel(error).catch(() => {});
22671
+ if (ticket)
22672
+ await request((signal) => send("/multipart/abort", control({}), "control", context, signal)).catch(() => {});
22673
+ throw error instanceof FileOperationError ? error : unavailable();
22674
+ } finally {
22675
+ chunk = undefined;
22676
+ reader?.releaseLock();
22677
+ if (pending.size)
22678
+ Promise.allSettled([...pending]).then(() => {
22679
+ active--;
22680
+ });
22681
+ else
22682
+ active--;
22683
+ }
22684
+ }
22540
22685
  async function operation(work, initial, parent) {
22541
22686
  const context = initial ?? await resolveFilesContext();
22542
22687
  if (active >= MAX_ACTIVE)
@@ -22631,7 +22776,7 @@ var files = {
22631
22776
  storage: input.storage,
22632
22777
  csv: input.csv,
22633
22778
  requestKey: options?.requestKey === undefined ? crypto.randomUUID() : options.requestKey
22634
- }, MAX_BYTES);
22779
+ }, context.local ? MAX_BYTES : FILE_ORIGINAL_MAX_BYTES);
22635
22780
  if (!context.local && metadata.storage === "local")
22636
22781
  throw new FileOperationError("unsupported_context", 400);
22637
22782
  const header = encodeURIComponent(JSON.stringify(metadata));
@@ -22640,6 +22785,8 @@ var files = {
22640
22785
  if (active >= MAX_ACTIVE)
22641
22786
  throw new FileOperationError("capacity", 429, true);
22642
22787
  active++;
22788
+ if (metadata.size > MAX_BYTES)
22789
+ return multipartCreate(input, metadata, context);
22643
22790
  return timed(async (signal) => {
22644
22791
  try {
22645
22792
  const bytes = array2 ? input.file.slice() : await boundedBytes(blob ? input.file.stream() : input.file, metadata.size);
@@ -22699,14 +22846,204 @@ var files = {
22699
22846
  },
22700
22847
  read
22701
22848
  };
22849
+ // src/app-context.ts
22850
+ var sessionKey = "_os.app.session";
22851
+
22852
+ class AppResponseReadError extends Error {
22853
+ }
22854
+ async function appResponse(response, maximum, signal) {
22855
+ if (signal.aborted || !response.body || response.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase() !== "application/json")
22856
+ throw new Error;
22857
+ const reader = response.body.getReader();
22858
+ const abort = () => {
22859
+ reader.cancel().catch(() => {});
22860
+ };
22861
+ signal.addEventListener("abort", abort, { once: true });
22862
+ let bytes = 0, text3 = "";
22863
+ const decoder = new TextDecoder("utf-8", { fatal: true });
22864
+ try {
22865
+ while (true) {
22866
+ let chunk;
22867
+ try {
22868
+ chunk = await reader.read();
22869
+ } catch {
22870
+ throw new AppResponseReadError;
22871
+ }
22872
+ if (signal.aborted)
22873
+ throw new Error;
22874
+ if (chunk.done)
22875
+ return JSON.parse(text3 + decoder.decode());
22876
+ bytes += chunk.value.byteLength;
22877
+ if (bytes > maximum) {
22878
+ abort();
22879
+ throw new Error;
22880
+ }
22881
+ text3 += decoder.decode(chunk.value, { stream: true });
22882
+ }
22883
+ } finally {
22884
+ signal.removeEventListener("abort", abort);
22885
+ reader.releaseLock();
22886
+ }
22887
+ }
22888
+ function isAppOrigin(value) {
22889
+ try {
22890
+ const url = new URL(value);
22891
+ return url.protocol === "http:" && url.hostname === "127.0.0.1" && Boolean(url.port) && url.port !== "0" && url.origin === value;
22892
+ } catch {
22893
+ return false;
22894
+ }
22895
+ }
22896
+ function appContext(origin, active2) {
22897
+ let binding;
22898
+ let credential;
22899
+ let denied = false;
22900
+ const controller = new AbortController;
22901
+ let expiry;
22902
+ const invalidate = () => {
22903
+ denied = true;
22904
+ controller.abort();
22905
+ clearTimeout(expiry);
22906
+ clearInterval(monitor);
22907
+ try {
22908
+ if (active2() && globalThis.location.origin === origin && (!credential || globalThis.localStorage.getItem(sessionKey) === credential)) {
22909
+ globalThis.localStorage.removeItem(sessionKey);
22910
+ }
22911
+ } catch {}
22912
+ };
22913
+ const current = () => {
22914
+ try {
22915
+ return !denied && active2() && globalThis.location.origin === origin && globalThis.localStorage.getItem(sessionKey) === credential && (!binding || binding.expiresAt > Date.now());
22916
+ } catch {
22917
+ return false;
22918
+ }
22919
+ };
22920
+ const monitor = setInterval(() => {
22921
+ if (credential && !current())
22922
+ invalidate();
22923
+ }, 100);
22924
+ const dispose = () => {
22925
+ controller.abort();
22926
+ clearTimeout(expiry);
22927
+ clearInterval(monitor);
22928
+ };
22929
+ async function requestData(operation2, input) {
22930
+ try {
22931
+ if (operation2 !== "data/query" || !current())
22932
+ throw new Error;
22933
+ const url = `${origin}/_os/app/data`;
22934
+ const response = await fetch(url, {
22935
+ method: "POST",
22936
+ credentials: "omit",
22937
+ redirect: "error",
22938
+ cache: "no-store",
22939
+ referrerPolicy: "no-referrer",
22940
+ signal: controller.signal,
22941
+ headers: { "content-type": "application/json", authorization: `Bearer ${credential}` },
22942
+ body: JSON.stringify(input)
22943
+ });
22944
+ if (!current() || response.redirected || response.url && response.url !== url)
22945
+ throw new Error;
22946
+ if (response.status === 401 || response.status === 403) {
22947
+ invalidate();
22948
+ throw new DataOperationError("access_denied");
22949
+ }
22950
+ const result2 = await appResponse(response, Number.MAX_SAFE_INTEGER, controller.signal);
22951
+ if (!current())
22952
+ throw new Error;
22953
+ if (!response.ok)
22954
+ throw dataTransportError(response.status, result2);
22955
+ return result2;
22956
+ } catch (error) {
22957
+ if (error instanceof DataOperationError)
22958
+ throw error;
22959
+ if (!current() || controller.signal.aborted)
22960
+ throw new DataOperationError("context_unavailable");
22961
+ throw new DataOperationError("unavailable", true);
22962
+ }
22963
+ }
22964
+ async function requestRoutine(key, suffix, init = {}) {
22965
+ if (!current()) {
22966
+ invalidate();
22967
+ throw new Error("Local app context unavailable.");
22968
+ }
22969
+ const url = `${origin}/_os/app/routines/${encodeURIComponent(key)}/${suffix}`;
22970
+ const response = await fetch(url, {
22971
+ ...init,
22972
+ credentials: "omit",
22973
+ redirect: "error",
22974
+ cache: "no-store",
22975
+ referrerPolicy: "no-referrer",
22976
+ signal: controller.signal,
22977
+ headers: { ...init.body === undefined ? {} : { "content-type": "application/json" }, authorization: `Bearer ${credential}` }
22978
+ });
22979
+ if (!current() || response.redirected || response.url && response.url !== url) {
22980
+ invalidate();
22981
+ throw new Error("Local app context unavailable.");
22982
+ }
22983
+ if (response.status === 401 || response.status === 403)
22984
+ invalidate();
22985
+ return response;
22986
+ }
22987
+ const resolve = async () => {
22988
+ try {
22989
+ if (denied || !active2() || globalThis.location.origin !== origin)
22990
+ throw new Error;
22991
+ const stored = globalThis.localStorage.getItem(sessionKey);
22992
+ if (!stored || !/^[A-Za-z0-9_-]{43}$/.test(stored) || credential && stored !== credential)
22993
+ throw new Error;
22994
+ credential = stored;
22995
+ if (!current())
22996
+ throw new Error;
22997
+ const response = await fetch(`${origin}/_os/app/context`, {
22998
+ credentials: "omit",
22999
+ redirect: "error",
23000
+ referrerPolicy: "no-referrer",
23001
+ headers: { authorization: `Bearer ${credential}` },
23002
+ signal: controller.signal
23003
+ });
23004
+ if (!response.ok || response.redirected || response.url && response.url !== `${origin}/_os/app/context` || !response.headers.get("content-type")?.startsWith("application/json"))
23005
+ throw new Error;
23006
+ const value = await appResponse(response, 4096, controller.signal);
23007
+ if (!validBinding(value) || !current() || value.expiresAt <= Date.now() || value.expiresAt > Date.now() + 600000 || binding && (value.appId !== binding.appId || value.memberId !== binding.memberId || value.workspace !== binding.workspace || value.expiresAt > binding.expiresAt))
23008
+ throw new Error;
23009
+ binding = { ...value };
23010
+ clearTimeout(expiry);
23011
+ expiry = setTimeout(invalidate, binding.expiresAt - Date.now());
23012
+ return {
23013
+ kind: "local",
23014
+ ...binding,
23015
+ isCurrent: current,
23016
+ signal: controller.signal,
23017
+ invalidate,
23018
+ requestRoutine,
23019
+ requestData,
23020
+ requestAvailability: (key) => requestRoutine(key, "availability", { method: "GET" })
23021
+ };
23022
+ } catch {
23023
+ invalidate();
23024
+ throw new Error("Local app context unavailable.");
23025
+ }
23026
+ };
23027
+ return { resolve, invalidate, dispose };
23028
+ }
23029
+ function validBinding(value) {
23030
+ if (!value || typeof value !== "object" || Array.isArray(value) || Object.keys(value).sort().join(",") !== "appId,expiresAt,memberId,workspace")
23031
+ return false;
23032
+ const binding = value;
23033
+ return typeof binding.appId === "string" && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(binding.appId) && typeof binding.workspace === "string" && /^[a-z0-9][a-z0-9-]{0,62}$/.test(binding.workspace) && typeof binding.memberId === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(binding.memberId) && typeof binding.expiresAt === "number" && Number.isFinite(binding.expiresAt);
23034
+ }
23035
+
22702
23036
  // src/os.ts
22703
23037
  var installedDispose;
22704
23038
  function init({ auth }) {
22705
23039
  installedDispose?.();
22706
23040
  let endpoint;
22707
23041
  let workspace;
23042
+ let localOrigin;
22708
23043
  try {
22709
23044
  const url = new URL(globalThis.location.origin);
23045
+ if (isAppOrigin(globalThis.location.origin))
23046
+ localOrigin = url.origin;
22710
23047
  const slug = url.hostname.endsWith(".oddington.ai") ? url.hostname.slice(0, -".oddington.ai".length) : "";
22711
23048
  if (url.protocol === "https:" && !url.port && !url.username && !url.password && !url.search && !url.hash && url.pathname === "/" && /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/.test(slug) && slug !== "auth") {
22712
23049
  endpoint = url.origin;
@@ -22716,18 +23053,23 @@ function init({ auth }) {
22716
23053
  let active2 = true;
22717
23054
  let revision = 0;
22718
23055
  let person;
23056
+ const local = localOrigin ? appContext(localOrigin, () => active2) : undefined;
22719
23057
  const { data: { subscription } } = auth.onAuthStateChange((event, session) => {
22720
23058
  const next = session?.user.id ?? null;
22721
- if (event === "SIGNED_OUT" || person !== undefined && next !== person)
23059
+ if (event === "SIGNED_OUT" || person !== undefined && next !== person) {
22722
23060
  revision++;
23061
+ local?.invalidate();
23062
+ }
22723
23063
  person = next;
22724
23064
  });
22725
23065
  const resolve = async () => {
22726
- if (!active2 || !endpoint || !workspace)
23066
+ if (local)
23067
+ return local.resolve();
23068
+ if (!active2 || !endpoint || !workspace || globalThis.location.origin !== endpoint)
22727
23069
  throw new Error("Hosted Data context unavailable.");
22728
23070
  const started = revision;
22729
23071
  const { data: { session }, error } = await auth.getSession();
22730
- if (!active2 || started !== revision || error || !session || person !== undefined && person !== session.user.id) {
23072
+ if (!active2 || globalThis.location.origin !== endpoint || started !== revision || error || !session || person !== undefined && person !== session.user.id) {
22731
23073
  throw new Error("Hosted Data context unavailable.");
22732
23074
  }
22733
23075
  const expiresAt = (session.expires_at ?? 0) * 1000;
@@ -22740,7 +23082,7 @@ function init({ auth }) {
22740
23082
  endpoint,
22741
23083
  accessToken: session.access_token,
22742
23084
  expiresAt,
22743
- isCurrent: () => active2 && revision === started && person === session.user.id
23085
+ isCurrent: () => active2 && globalThis.location.origin === endpoint && revision === started && person === session.user.id
22744
23086
  };
22745
23087
  };
22746
23088
  const uninstall = installMemberContext(resolve);
@@ -22748,6 +23090,7 @@ function init({ auth }) {
22748
23090
  if (!active2)
22749
23091
  return;
22750
23092
  active2 = false;
23093
+ local?.dispose();
22751
23094
  revision++;
22752
23095
  subscription.unsubscribe();
22753
23096
  uninstall();
@@ -22757,6 +23100,611 @@ function init({ auth }) {
22757
23100
  installedDispose = dispose;
22758
23101
  }
22759
23102
  var os = { init };
23103
+ // src/app-routine-browser.ts
23104
+ var identifier = /^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;
23105
+ var uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
23106
+ var isReason = (value) => value === "authority_unavailable" || value === "execution_unavailable" || value === "invalid_input";
23107
+
23108
+ class AppRoutineError extends Error {
23109
+ reason;
23110
+ constructor(reason) {
23111
+ super(reason);
23112
+ this.reason = reason;
23113
+ this.name = "AppRoutineError";
23114
+ }
23115
+ }
23116
+ function fail3(reason) {
23117
+ throw new AppRoutineError(reason);
23118
+ }
23119
+ function object3(value) {
23120
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
23121
+ }
23122
+ function keys3(value, expected) {
23123
+ return Object.keys(value).sort().join(",") === expected;
23124
+ }
23125
+ function current(context) {
23126
+ if (!context.isCurrent() || context.signal.aborted)
23127
+ fail3("authority_unavailable");
23128
+ }
23129
+ async function body(context, response, maximum) {
23130
+ try {
23131
+ const value = await appResponse(response, maximum, context.signal);
23132
+ current(context);
23133
+ if (!response.ok) {
23134
+ if (object3(value) && keys3(value, "error") && isReason(value.error)) {
23135
+ if (value.error === "authority_unavailable")
23136
+ context.invalidate();
23137
+ fail3(value.error);
23138
+ }
23139
+ fail3("authority_unavailable");
23140
+ }
23141
+ return value;
23142
+ } catch (error) {
23143
+ current(context);
23144
+ if (error instanceof AppResponseReadError)
23145
+ throw error;
23146
+ if (error instanceof AppRoutineError)
23147
+ throw error;
23148
+ return fail3("execution_unavailable");
23149
+ }
23150
+ }
23151
+ function descriptor(value, key) {
23152
+ if (!object3(value) || !keys3(value, "after,key,routine,runId") || value.key !== key || typeof value.runId !== "string" || !uuid.test(value.runId) || value.after !== 0 || typeof value.routine !== "string" || !identifier.test(value.routine))
23153
+ fail3("execution_unavailable");
23154
+ return value;
23155
+ }
23156
+ function safeValue(value, depth = 0) {
23157
+ if (depth > 32)
23158
+ return false;
23159
+ if (value === null || typeof value === "string" || typeof value === "boolean")
23160
+ return true;
23161
+ if (typeof value === "number")
23162
+ return Number.isFinite(value);
23163
+ if (Array.isArray(value))
23164
+ return value.every((item) => safeValue(item, depth + 1));
23165
+ return object3(value) && Object.entries(value).every(([key, item]) => !["__proto__", "constructor", "prototype"].includes(key) && safeValue(item, depth + 1));
23166
+ }
23167
+ function event(value, run, steps) {
23168
+ if (!object3(value) || value.runId !== run.runId || value.key !== run.key || value.routine !== run.routine || !Number.isSafeInteger(value.sequence) || value.sequence < 1 || new TextEncoder().encode(JSON.stringify(value)).byteLength > 16 * 1024)
23169
+ fail3("execution_unavailable");
23170
+ const common = "key,routine,runId,sequence,";
23171
+ if (value.type === "started" && keys3(value, common + "type") && value.sequence === 1)
23172
+ return { type: "started" };
23173
+ if (value.type === "step" && typeof value.id === "string" && identifier.test(value.id) && (!steps || steps.includes(value.id)) && keys3(value, "id," + common + (Object.hasOwn(value, "summary") ? "summary,type" : "type")) && (!Object.hasOwn(value, "summary") || safeValue(value.summary))) {
23174
+ return {
23175
+ type: "step",
23176
+ id: value.id,
23177
+ ...Object.hasOwn(value, "summary") ? { summary: value.summary } : {}
23178
+ };
23179
+ }
23180
+ if (value.type === "finished") {
23181
+ if (value.state === "succeeded" && keys3(value, "key," + (Object.hasOwn(value, "result") ? "result," : "") + "routine,runId,sequence,state,type") && (!Object.hasOwn(value, "result") || safeValue(value.result))) {
23182
+ return {
23183
+ type: "finished",
23184
+ state: "succeeded",
23185
+ ...Object.hasOwn(value, "result") ? { result: value.result } : {}
23186
+ };
23187
+ }
23188
+ if (value.state === "failed" && value.error === "execution_failed" && keys3(value, "error," + common + "state,type")) {
23189
+ return { type: "finished", state: "failed", error: "execution_failed" };
23190
+ }
23191
+ if (value.state === "cancelled" && keys3(value, common + "state,type"))
23192
+ return { type: "finished", state: "cancelled" };
23193
+ }
23194
+ return fail3("execution_unavailable");
23195
+ }
23196
+ async function pause(context, delay) {
23197
+ current(context);
23198
+ await new Promise((resolve, reject) => {
23199
+ const abort = () => {
23200
+ clearTimeout(timer);
23201
+ reject(new AppRoutineError("authority_unavailable"));
23202
+ };
23203
+ const timer = setTimeout(() => {
23204
+ context.signal.removeEventListener("abort", abort);
23205
+ resolve();
23206
+ }, delay);
23207
+ context.signal.addEventListener("abort", abort, { once: true });
23208
+ });
23209
+ current(context);
23210
+ }
23211
+ function handle(context, run, steps) {
23212
+ return Object.freeze({
23213
+ async* events(...args) {
23214
+ if (args.length)
23215
+ fail3("invalid_input");
23216
+ let cursor = 0, terminal = false, delay = 100, retainedBytes = 0;
23217
+ const seen = [];
23218
+ while (!terminal) {
23219
+ current(context);
23220
+ let response;
23221
+ try {
23222
+ response = await context.requestRoutine(run.key, `runs/${run.runId}/events?after=${cursor}`);
23223
+ } catch {
23224
+ current(context);
23225
+ await pause(context, delay);
23226
+ delay = Math.min(delay * 2, 2000);
23227
+ continue;
23228
+ }
23229
+ if (response.status >= 500) {
23230
+ await response.body?.cancel();
23231
+ await pause(context, delay);
23232
+ delay = Math.min(delay * 2, 2000);
23233
+ continue;
23234
+ }
23235
+ let value;
23236
+ try {
23237
+ value = await body(context, response, 80 * 1024);
23238
+ } catch (error) {
23239
+ if (!(error instanceof AppResponseReadError))
23240
+ throw error;
23241
+ await pause(context, delay);
23242
+ delay = Math.min(delay * 2, 2000);
23243
+ continue;
23244
+ }
23245
+ if (!object3(value) || !keys3(value, "after,events,terminal") || !Array.isArray(value.events) || value.events.length > 256 || typeof value.terminal !== "boolean" || !Number.isSafeInteger(value.after))
23246
+ fail3("execution_unavailable");
23247
+ const delivery = [];
23248
+ for (const raw of value.events) {
23249
+ const publicEvent = event(raw, run, steps);
23250
+ const encoded = JSON.stringify(raw);
23251
+ const sequence = raw.sequence;
23252
+ if (sequence <= cursor) {
23253
+ if (seen[sequence - 1] !== encoded)
23254
+ fail3("execution_unavailable");
23255
+ continue;
23256
+ }
23257
+ if (terminal || sequence !== cursor + 1 || sequence > 256 || (cursor === 0 ? publicEvent.type !== "started" : publicEvent.type === "started"))
23258
+ fail3("execution_unavailable");
23259
+ retainedBytes += new TextEncoder().encode(encoded).byteLength;
23260
+ if (retainedBytes > 1024 * 1024)
23261
+ fail3("execution_unavailable");
23262
+ seen.push(encoded);
23263
+ cursor = sequence;
23264
+ terminal = publicEvent.type === "finished";
23265
+ delivery.push(publicEvent);
23266
+ }
23267
+ if (value.after !== cursor || value.terminal !== terminal)
23268
+ fail3("execution_unavailable");
23269
+ for (const item of delivery) {
23270
+ current(context);
23271
+ yield item;
23272
+ }
23273
+ delay = 100;
23274
+ if (!terminal)
23275
+ await pause(context, delivery.length ? 100 : 250);
23276
+ }
23277
+ },
23278
+ async cancel(...args) {
23279
+ if (args.length)
23280
+ fail3("invalid_input");
23281
+ try {
23282
+ const value = await body(context, await context.requestRoutine(run.key, `runs/${run.runId}/cancel`, { method: "POST" }), 1024);
23283
+ if (!object3(value) || !keys3(value, "cancelled") || value.cancelled !== true)
23284
+ fail3("execution_unavailable");
23285
+ } catch (error) {
23286
+ current(context);
23287
+ if (error instanceof AppRoutineError)
23288
+ throw error;
23289
+ fail3("execution_unavailable");
23290
+ }
23291
+ }
23292
+ });
23293
+ }
23294
+ async function appRoutineOperation(key, input, recover) {
23295
+ let context;
23296
+ try {
23297
+ if (!identifier.test(key))
23298
+ fail3("authority_unavailable");
23299
+ const resolved = await resolveAppContext();
23300
+ if (resolved.kind !== "local")
23301
+ fail3("execution_unavailable");
23302
+ context = resolved;
23303
+ if (recover) {
23304
+ const value2 = await body(context, await context.requestRoutine(key, "runs"), 16 * 1024);
23305
+ if (!object3(value2) || !keys3(value2, "runs") || !Array.isArray(value2.runs) || value2.runs.length > 20)
23306
+ fail3("execution_unavailable");
23307
+ const runs = value2.runs.map((run) => descriptor(run, key));
23308
+ if (new Set(runs.map((run) => run.runId)).size !== runs.length || new Set(runs.map((run) => run.routine)).size > 1)
23309
+ fail3("execution_unavailable");
23310
+ return runs.map((run) => handle(resolved, run));
23311
+ }
23312
+ const available = await body(context, await context.requestAvailability(key), 16 * 1024);
23313
+ if (object3(available) && keys3(available, "available,reason") && available.available === false && isReason(available.reason))
23314
+ fail3(available.reason);
23315
+ if (!object3(available) || !keys3(available, "available,steps") || available.available !== true || !Array.isArray(available.steps) || available.steps.length < 1 || available.steps.length > 64 || !available.steps.every((step) => typeof step === "string" && identifier.test(step)) || new Set(available.steps).size !== available.steps.length)
23316
+ fail3("execution_unavailable");
23317
+ const steps = [...available.steps];
23318
+ let encoded;
23319
+ try {
23320
+ encoded = JSON.stringify(input);
23321
+ if (encoded === undefined || new TextEncoder().encode(encoded).byteLength > 16 * 1024)
23322
+ fail3("invalid_input");
23323
+ } catch {
23324
+ fail3("invalid_input");
23325
+ }
23326
+ const value = await body(context, await context.requestRoutine(key, "runs", {
23327
+ method: "POST",
23328
+ body: `{"input":${encoded}}`
23329
+ }), 16 * 1024);
23330
+ return handle(context, descriptor(value, key), steps);
23331
+ } catch (error) {
23332
+ if (context)
23333
+ current(context);
23334
+ if (error instanceof AppRoutineError)
23335
+ throw error;
23336
+ return fail3(context ? "execution_unavailable" : "authority_unavailable");
23337
+ }
23338
+ }
23339
+
23340
+ // src/app.ts
23341
+ var authorityUnavailable = () => ({ available: false, reason: "authority_unavailable" });
23342
+ var MAX_RESPONSE_BYTES = 16 * 1024;
23343
+ async function availability(key) {
23344
+ try {
23345
+ if (!/^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/.test(key))
23346
+ return authorityUnavailable();
23347
+ const context = await resolveAppContext();
23348
+ if (context.kind !== "local")
23349
+ return { available: false, reason: "execution_unavailable" };
23350
+ const response = await context.requestAvailability(key);
23351
+ if (!response.ok || response.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase() !== "application/json") {
23352
+ return authorityUnavailable();
23353
+ }
23354
+ const value = await appResponse(response, MAX_RESPONSE_BYTES, context.signal);
23355
+ if (!context.isCurrent())
23356
+ return authorityUnavailable();
23357
+ if (!value || typeof value !== "object" || Array.isArray(value))
23358
+ return authorityUnavailable();
23359
+ const result2 = value;
23360
+ if (result2.available === false && Object.keys(result2).sort().join(",") === "available,reason" && (result2.reason === "authority_unavailable" || result2.reason === "execution_unavailable")) {
23361
+ return { available: false, reason: result2.reason };
23362
+ }
23363
+ if (result2.available !== true || Object.keys(result2).sort().join(",") !== "available,steps" || !Array.isArray(result2.steps) || result2.steps.length < 1 || result2.steps.length > 64 || !result2.steps.every((step) => typeof step === "string" && /^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/.test(step)) || new Set(result2.steps).size !== result2.steps.length)
23364
+ return authorityUnavailable();
23365
+ return { available: true, steps: [...result2.steps] };
23366
+ } catch {
23367
+ return authorityUnavailable();
23368
+ }
23369
+ }
23370
+ var app = Object.freeze({ routines: new Proxy(Object.create(null), {
23371
+ get(_target, key) {
23372
+ if (typeof key !== "string")
23373
+ return;
23374
+ return Object.freeze({
23375
+ availability: (...args) => args.length ? Promise.resolve(authorityUnavailable()) : availability(key),
23376
+ run: (...args) => args.length === 1 ? appRoutineOperation(key, args[0], false) : Promise.reject(new AppRoutineError("invalid_input")),
23377
+ recover: (...args) => args.length === 0 ? appRoutineOperation(key, undefined, true) : Promise.reject(new AppRoutineError("invalid_input"))
23378
+ });
23379
+ },
23380
+ set: () => false,
23381
+ defineProperty: () => false,
23382
+ deleteProperty: () => false
23383
+ }) });
23384
+ // ../../shared/app-routine-contract.ts
23385
+ class AppRoutineContractError extends Error {
23386
+ code;
23387
+ constructor(code) {
23388
+ super(code);
23389
+ this.code = code;
23390
+ }
23391
+ }
23392
+ var propertyName = /^[a-z][A-Za-z0-9]*(?![\s\S])/;
23393
+ var stepId = /^[a-z0-9]+(?:-[a-z0-9]+)*(?![\s\S])/;
23394
+ var routineName = /^[a-z0-9][a-z0-9-]{0,62}(?![\s\S])/;
23395
+ var owns = (value, key) => Object.hasOwn(value, key);
23396
+ var invalidContract = () => {
23397
+ throw new AppRoutineContractError("invalid_contract");
23398
+ };
23399
+ var invalidValue = () => {
23400
+ throw new AppRoutineContractError("invalid_value");
23401
+ };
23402
+ function record2(value) {
23403
+ return value !== null && typeof value === "object" && !Array.isArray(value) && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
23404
+ }
23405
+ function fields3(value, required, optional = []) {
23406
+ return required.every((key) => owns(value, key)) && Object.keys(value).every((key) => required.includes(key) || optional.includes(key));
23407
+ }
23408
+ function denseArray(value) {
23409
+ return Array.isArray(value) && Object.keys(value).length === value.length && Array.from({ length: value.length }, (_, index) => owns(value, String(index))).every(Boolean);
23410
+ }
23411
+ function parseAppRoutineContract(value) {
23412
+ let properties = 0;
23413
+ function schema(value2, depth = 1) {
23414
+ if (depth > 8 || !record2(value2))
23415
+ return invalidContract();
23416
+ switch (value2.type) {
23417
+ case "object": {
23418
+ if (!fields3(value2, ["type", "properties", "additionalProperties"], ["required"]) || value2.additionalProperties !== false || !record2(value2.properties))
23419
+ return invalidContract();
23420
+ const entries = Object.entries(value2.properties);
23421
+ properties += entries.length;
23422
+ if (properties > 64 || entries.some(([key]) => !propertyName.test(key)))
23423
+ return invalidContract();
23424
+ let required;
23425
+ if (owns(value2, "required")) {
23426
+ if (!denseArray(value2.required) || value2.required.some((key) => typeof key !== "string" || !owns(value2.properties, key)) || new Set(value2.required).size !== value2.required.length)
23427
+ return invalidContract();
23428
+ required = [...value2.required];
23429
+ }
23430
+ return {
23431
+ type: "object",
23432
+ properties: Object.fromEntries(entries.map(([key, child]) => [key, schema(child, depth + 1)])),
23433
+ ...required === undefined ? {} : { required },
23434
+ additionalProperties: false
23435
+ };
23436
+ }
23437
+ case "array":
23438
+ if (!fields3(value2, ["type", "items", "maxItems"]) || !Number.isSafeInteger(value2.maxItems) || value2.maxItems < 1 || value2.maxItems > 64)
23439
+ return invalidContract();
23440
+ return { type: "array", items: schema(value2.items, depth + 1), maxItems: value2.maxItems };
23441
+ case "boolean":
23442
+ case "file":
23443
+ if (!fields3(value2, ["type"]))
23444
+ return invalidContract();
23445
+ return { type: value2.type };
23446
+ case "string":
23447
+ if (!fields3(value2, ["type"], ["maxLength"]) || owns(value2, "maxLength") && (!Number.isSafeInteger(value2.maxLength) || value2.maxLength < 0 || value2.maxLength > 4096))
23448
+ return invalidContract();
23449
+ return { type: "string", ...owns(value2, "maxLength") ? { maxLength: value2.maxLength } : {} };
23450
+ case "integer":
23451
+ case "number": {
23452
+ const validNumber = value2.type === "integer" ? Number.isSafeInteger : Number.isFinite;
23453
+ if (!fields3(value2, ["type"], ["minimum", "maximum"]) || owns(value2, "minimum") && !validNumber(value2.minimum) || owns(value2, "maximum") && !validNumber(value2.maximum) || owns(value2, "minimum") && owns(value2, "maximum") && value2.minimum > value2.maximum)
23454
+ return invalidContract();
23455
+ return {
23456
+ type: value2.type,
23457
+ ...owns(value2, "minimum") ? { minimum: value2.minimum } : {},
23458
+ ...owns(value2, "maximum") ? { maximum: value2.maximum } : {}
23459
+ };
23460
+ }
23461
+ default:
23462
+ return invalidContract();
23463
+ }
23464
+ }
23465
+ if (!record2(value) || !fields3(value, ["routine", "input", "steps"], ["result"]) || typeof value.routine !== "string" || !routineName.test(value.routine) || !denseArray(value.steps) || value.steps.length < 1 || value.steps.length > 64)
23466
+ return invalidContract();
23467
+ const input = schema(value.input);
23468
+ const result2 = owns(value, "result") ? schema(value.result) : undefined;
23469
+ const ids = new Set;
23470
+ const steps = value.steps.map((step) => {
23471
+ if (!record2(step) || !fields3(step, ["id"], ["summary"]) || typeof step.id !== "string" || !stepId.test(step.id) || ids.has(step.id))
23472
+ return invalidContract();
23473
+ ids.add(step.id);
23474
+ return { id: step.id, ...owns(step, "summary") ? { summary: schema(step.summary) } : {} };
23475
+ });
23476
+ return { routine: value.routine, input, steps, ...result2 === undefined ? {} : { result: result2 } };
23477
+ }
23478
+ function jsonData(value, ancestors = new Set) {
23479
+ if (value === null || typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value))
23480
+ return;
23481
+ if (!record2(value) && !denseArray(value))
23482
+ return invalidValue();
23483
+ if (ancestors.has(value))
23484
+ return invalidValue();
23485
+ ancestors.add(value);
23486
+ for (const child of Object.values(value))
23487
+ jsonData(child, ancestors);
23488
+ ancestors.delete(value);
23489
+ }
23490
+ function validate(schema, value) {
23491
+ switch (schema.type) {
23492
+ case "object":
23493
+ if (!record2(value) || (schema.required ?? []).some((key) => !owns(value, key)) || Object.keys(value).some((key) => !owns(schema.properties, key)))
23494
+ return invalidValue();
23495
+ for (const [key, child] of Object.entries(value))
23496
+ validate(schema.properties[key], child);
23497
+ return;
23498
+ case "array":
23499
+ if (!denseArray(value) || value.length > schema.maxItems)
23500
+ return invalidValue();
23501
+ for (const child of value)
23502
+ validate(schema.items, child);
23503
+ return;
23504
+ case "boolean":
23505
+ if (typeof value !== "boolean")
23506
+ return invalidValue();
23507
+ return;
23508
+ case "string":
23509
+ if (typeof value !== "string" || Array.from(value).length > (schema.maxLength ?? 4096))
23510
+ return invalidValue();
23511
+ return;
23512
+ case "integer":
23513
+ case "number":
23514
+ if (typeof value !== "number" || !(schema.type === "integer" ? Number.isSafeInteger(value) : Number.isFinite(value)) || schema.minimum !== undefined && value < schema.minimum || schema.maximum !== undefined && value > schema.maximum)
23515
+ return invalidValue();
23516
+ return;
23517
+ case "file":
23518
+ try {
23519
+ jsonData(value);
23520
+ parseFileDescriptor(value);
23521
+ } catch {
23522
+ return invalidValue();
23523
+ }
23524
+ }
23525
+ }
23526
+ function boundedValue(schema, value) {
23527
+ validate(schema, value);
23528
+ if (new TextEncoder().encode(JSON.stringify(value)).byteLength > 16 * 1024)
23529
+ return invalidValue();
23530
+ }
23531
+ function validateAppRoutineInput(contract, value) {
23532
+ boundedValue(contract.input, value);
23533
+ }
23534
+ function validateAppRoutineResult(contract, value) {
23535
+ if (contract.result === undefined) {
23536
+ if (value !== undefined)
23537
+ return invalidValue();
23538
+ } else
23539
+ boundedValue(contract.result, value);
23540
+ }
23541
+ function validateAppRoutineStep(contract, id2, summary) {
23542
+ const step = contract.steps.find((step2) => step2.id === id2);
23543
+ if (!step)
23544
+ return invalidValue();
23545
+ if (step.summary === undefined) {
23546
+ if (summary !== undefined)
23547
+ return invalidValue();
23548
+ } else
23549
+ validate(step.summary, summary);
23550
+ }
23551
+
23552
+ // src/app-run.ts
23553
+ var LIMIT = 16 * 1024;
23554
+ var context;
23555
+ var unavailable2 = () => new Error("App routine reporting unavailable");
23556
+ function freeze(value) {
23557
+ if (value !== null && typeof value === "object") {
23558
+ for (const child of Object.values(value))
23559
+ freeze(child);
23560
+ Object.freeze(value);
23561
+ }
23562
+ return value;
23563
+ }
23564
+ if (typeof process !== "undefined" && process.env.ODDINGTON_APP_RUN !== undefined) {
23565
+ let fail4 = function() {
23566
+ broken = true;
23567
+ pending?.reject(unavailable2());
23568
+ pending = undefined;
23569
+ channel.destroy();
23570
+ }, report = function(value) {
23571
+ let frame;
23572
+ try {
23573
+ frame = JSON.stringify({ ...value, sequence: ++sequence });
23574
+ if (Buffer.byteLength(frame) > LIMIT)
23575
+ return rejected();
23576
+ } catch {
23577
+ return rejected();
23578
+ }
23579
+ const operation2 = queue.then(async () => {
23580
+ if (broken)
23581
+ throw unavailable2();
23582
+ await new Promise((resolve, reject) => {
23583
+ const timeout = setTimeout(fail4, 30000);
23584
+ pending = {
23585
+ sequence: JSON.parse(frame).sequence,
23586
+ resolve() {
23587
+ clearTimeout(timeout);
23588
+ resolve();
23589
+ },
23590
+ reject(error) {
23591
+ clearTimeout(timeout);
23592
+ reject(error);
23593
+ }
23594
+ };
23595
+ channel.ref();
23596
+ channel.write(`${frame}
23597
+ `, (error) => {
23598
+ if (error)
23599
+ fail4();
23600
+ });
23601
+ });
23602
+ });
23603
+ queue = operation2.catch(() => {});
23604
+ return operation2;
23605
+ }, rejected = function() {
23606
+ if (!broken)
23607
+ channel.end(`{"type":"invalid"}
23608
+ `);
23609
+ broken = true;
23610
+ pending?.reject(unavailable2());
23611
+ pending = undefined;
23612
+ return Promise.reject(unavailable2());
23613
+ };
23614
+ if (process.env.ODDINGTON_APP_RUN !== "1")
23615
+ throw unavailable2();
23616
+ const { readSync, closeSync } = await import("node:fs");
23617
+ const { Socket } = await import("node:net");
23618
+ let bootstrap;
23619
+ try {
23620
+ const chunks = [];
23621
+ let size = 0;
23622
+ for (;; ) {
23623
+ const bytes2 = new Uint8Array(4096);
23624
+ const count = readSync(4, bytes2, 0, bytes2.length, null);
23625
+ if (!count)
23626
+ break;
23627
+ size += count;
23628
+ if (size > 131072)
23629
+ throw unavailable2();
23630
+ chunks.push(bytes2.slice(0, count));
23631
+ }
23632
+ closeSync(4);
23633
+ const bytes = new Uint8Array(size);
23634
+ let offset = 0;
23635
+ for (const chunk of chunks) {
23636
+ bytes.set(chunk, offset);
23637
+ offset += chunk.length;
23638
+ }
23639
+ bootstrap = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
23640
+ if (!bootstrap || Object.keys(bootstrap).sort().join(",") !== "contract,input")
23641
+ throw unavailable2();
23642
+ } catch {
23643
+ throw unavailable2();
23644
+ }
23645
+ const contract = parseAppRoutineContract(bootstrap.contract);
23646
+ validateAppRoutineInput(contract, bootstrap.input);
23647
+ const input = freeze(bootstrap.input);
23648
+ const channel = new Socket({ fd: 3, readable: true, writable: true });
23649
+ channel.unref();
23650
+ let broken = false, finishing = false, sequence = 0;
23651
+ let pending;
23652
+ let buffer = "";
23653
+ channel.on("error", fail4);
23654
+ channel.on("close", fail4);
23655
+ channel.on("end", fail4);
23656
+ channel.on("data", (bytes) => {
23657
+ buffer += bytes.toString("utf8");
23658
+ if (Buffer.byteLength(buffer) > 1024)
23659
+ return fail4();
23660
+ const end = buffer.indexOf(`
23661
+ `);
23662
+ if (end < 0)
23663
+ return;
23664
+ try {
23665
+ const ack = JSON.parse(buffer.slice(0, end));
23666
+ if (end !== buffer.length - 1 || !pending || !ack || Object.keys(ack).sort().join(",") !== "accepted,sequence" || ack.sequence !== pending.sequence || ack.accepted !== true)
23667
+ return fail4();
23668
+ buffer = "";
23669
+ pending.resolve();
23670
+ pending = undefined;
23671
+ channel.unref();
23672
+ } catch {
23673
+ fail4();
23674
+ }
23675
+ });
23676
+ let queue = Promise.resolve();
23677
+ context = {
23678
+ input,
23679
+ step(id2, ...summary) {
23680
+ if (finishing || broken || summary.length > 1)
23681
+ return rejected();
23682
+ try {
23683
+ validateAppRoutineStep(contract, id2, summary[0]);
23684
+ } catch {
23685
+ return rejected();
23686
+ }
23687
+ return report({ type: "step", id: id2, ...summary.length ? { summary: summary[0] } : {} });
23688
+ },
23689
+ finish(...result2) {
23690
+ if (finishing || broken || result2.length > 1)
23691
+ return rejected();
23692
+ finishing = true;
23693
+ try {
23694
+ validateAppRoutineResult(contract, result2[0]);
23695
+ } catch {
23696
+ return rejected();
23697
+ }
23698
+ return report({ type: "finish", ...result2.length ? { result: result2[0] } : {} });
23699
+ }
23700
+ };
23701
+ Object.freeze(context);
23702
+ }
23703
+ var appRun = {
23704
+ current() {
23705
+ return context;
23706
+ }
23707
+ };
22760
23708
 
22761
23709
  // src/index.ts
22762
23710
  init_inbox_contract();
@@ -22781,13 +23729,13 @@ function routinePublicationClient(options = {}) {
22781
23729
  } : async () => {
22782
23730
  throw new Error("Member publication requires a host-supplied request");
22783
23731
  });
22784
- async function send2(operation2, body) {
23732
+ async function send2(operation2, body2) {
22785
23733
  if (local)
22786
- return await local(operation2, body);
23734
+ return await local(operation2, body2);
22787
23735
  const response = await request(`/api/cli/workspaces/${workspace}/inbox/${operation2}`, {
22788
23736
  method: "POST",
22789
23737
  headers: { "content-type": "application/json", ...headers },
22790
- body: JSON.stringify(body)
23738
+ body: JSON.stringify(body2)
22791
23739
  });
22792
23740
  const result2 = await response.json();
22793
23741
  if (!response.ok && operation2 === "records/update")
@@ -22797,11 +23745,11 @@ function routinePublicationClient(options = {}) {
22797
23745
  return result2;
22798
23746
  }
22799
23747
  const transport = {
22800
- async publish(body) {
22801
- return await send2("publish", body);
23748
+ async publish(body2) {
23749
+ return await send2("publish", body2);
22802
23750
  },
22803
- async resolve(body) {
22804
- await send2("resolve", body);
23751
+ async resolve(body2) {
23752
+ await send2("resolve", body2);
22805
23753
  }
22806
23754
  };
22807
23755
  async function readRecords(input) {
@@ -22853,8 +23801,8 @@ function routinePublicationClient(options = {}) {
22853
23801
  return await verifyInboxFile(bytes, validateInboxFile(result2));
22854
23802
  }
22855
23803
  },
22856
- async check(body) {
22857
- await send2("check", { requestKey: body.requestKey, item: validatePublication(body.item) });
23804
+ async check(body2) {
23805
+ await send2("check", { requestKey: body2.requestKey, item: validatePublication(body2.item) });
22858
23806
  }
22859
23807
  };
22860
23808
  }
@@ -22875,9 +23823,12 @@ export {
22875
23823
  continueAsk,
22876
23824
  connections,
22877
23825
  asksBlock,
23826
+ appRun,
23827
+ app,
22878
23828
  RoutineRecordWriteError,
22879
23829
  InboxContractError,
22880
23830
  FileOperationError,
22881
23831
  DataOperationError,
23832
+ AppRoutineError,
22882
23833
  AirtableOperationError
22883
23834
  };