muhammara 3.8.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +260 -3
  3. package/lib/Recipe.js +1 -1
  4. package/lib/recipe/htmlToTextObjects.js +1 -0
  5. package/lib/recipe/overlay.js +1 -0
  6. package/lib/recipe/text.js +23 -6
  7. package/lib/recipe/vector.helper.js +1 -0
  8. package/muhammara.d.ts +22 -3
  9. package/node_modules/@mapbox/node-pre-gyp/package.json +5 -5
  10. package/node_modules/inherits/package.json +1 -6
  11. package/node_modules/make-dir/node_modules/semver/package.json +21 -12
  12. package/node_modules/make-dir/node_modules/semver/semver.js +71 -24
  13. package/node_modules/minipass/README.md +7 -7
  14. package/node_modules/minipass/index.d.ts +18 -16
  15. package/node_modules/minipass/index.js +6 -1
  16. package/node_modules/minipass/index.mjs +7 -2
  17. package/node_modules/minipass/package.json +10 -10
  18. package/node_modules/node-fetch/lib/index.es.js +4 -1
  19. package/node_modules/node-fetch/lib/index.js +4 -1
  20. package/node_modules/node-fetch/lib/index.mjs +4 -1
  21. package/node_modules/node-fetch/package.json +5 -5
  22. package/node_modules/readable-stream/lib/_stream_duplex.js +8 -8
  23. package/node_modules/readable-stream/lib/_stream_passthrough.js +1 -1
  24. package/node_modules/readable-stream/lib/_stream_readable.js +37 -36
  25. package/node_modules/readable-stream/lib/_stream_transform.js +6 -5
  26. package/node_modules/readable-stream/lib/_stream_writable.js +19 -18
  27. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +81 -86
  28. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +155 -127
  29. package/node_modules/readable-stream/lib/internal/streams/destroy.js +17 -16
  30. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +11 -11
  31. package/node_modules/readable-stream/lib/internal/streams/from.js +6 -6
  32. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +14 -14
  33. package/node_modules/readable-stream/lib/internal/streams/state.js +4 -4
  34. package/node_modules/readable-stream/package.json +5 -5
  35. package/node_modules/semver/README.md +70 -1
  36. package/node_modules/semver/bin/semver.js +16 -2
  37. package/node_modules/semver/classes/comparator.js +39 -34
  38. package/node_modules/semver/classes/range.js +45 -28
  39. package/node_modules/semver/classes/semver.js +32 -17
  40. package/node_modules/semver/functions/coerce.js +1 -1
  41. package/node_modules/semver/functions/diff.js +58 -16
  42. package/node_modules/semver/functions/inc.js +3 -2
  43. package/node_modules/semver/functions/parse.js +5 -22
  44. package/node_modules/semver/index.js +1 -0
  45. package/node_modules/semver/internal/constants.js +20 -2
  46. package/node_modules/semver/internal/parse-options.js +14 -10
  47. package/node_modules/semver/internal/re.js +34 -4
  48. package/node_modules/semver/package.json +12 -11
  49. package/node_modules/semver/ranges/intersects.js +1 -1
  50. package/node_modules/semver/ranges/subset.js +6 -3
  51. package/node_modules/tar/lib/normalize-unicode.js +1 -1
  52. package/node_modules/tar/lib/pack.js +2 -2
  53. package/node_modules/tar/lib/path-reservations.js +1 -1
  54. package/node_modules/tar/lib/read-entry.js +2 -2
  55. package/node_modules/tar/lib/unpack.js +1 -1
  56. package/node_modules/tar/lib/write-entry.js +3 -3
  57. package/node_modules/tar/package.json +11 -11
  58. package/node_modules/util-deprecate/package.json +1 -5
  59. package/package.json +3 -5
  60. package/node_modules/make-dir/node_modules/semver/CHANGELOG.md +0 -70
package/CHANGELOG.md CHANGED
@@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Fixed
11
+
12
+ - Underline in text object
13
+ - Recipe type / arg documentation
14
+ - Add missing type `userPassword` to `EncryptOptions`
15
+
16
+ ### Added
17
+
18
+ - Strikethrough implementation in text object
19
+ - Add electron 23.2., 23.3
20
+ - Recipe infos to readme
21
+ - Electron v24.1, 24.2, 24.3, 24.4, 24.5, 24.6
22
+ - Add node 20.x
23
+ - Add electron v25.0, 25.1, 25.2, 25.3
24
+
25
+ ### Removed
26
+
27
+ - Dependency to static-eval and static-module as they are not used directly
28
+
29
+ ### Changed
30
+
31
+ - Older node ubuntu 18.04 builds are now building on docker, as github actions removed 18.04
32
+
10
33
  ## [3.8.0] - 2023-03-01
11
34
 
12
35
  ### Added
package/README.md CHANGED
@@ -28,15 +28,26 @@ It serves as a drop in replacement.
28
28
 
29
29
  # Caution
30
30
 
31
- Version 2.0 will be incompatible with some older node and
31
+ ## Breaking changes
32
+
33
+ ### Version 2.x
34
+
35
+ will be incompatible with some older node and
32
36
  electron versions because we needed to upgrade node-pre-gyp.
33
37
 
34
- Version 3.x has breaking changes:
38
+ ### Version 3.x
35
39
 
36
40
  - Node < 11 and Electron < 11 removed the prebuilts
37
41
  - Renamed typo exported value from eTokenSeprator to eTokenSeparator
38
42
 
39
- This wont affect alot of you but still.
43
+ This won't affect a lot of you but still.
44
+
45
+ ### Version 4.x
46
+
47
+ - Node < 15 and electron < 15 pre-builts have been removed
48
+ - Ubuntu 18.04 has been removed from github actions and so it is unable to build on 18.04.
49
+ This means the glibc has been raised to 2.31 which might break pre-builts for you.
50
+ It is still possible to build for older glibc version.
40
51
 
41
52
  # Installation
42
53
 
@@ -82,3 +93,249 @@ You can find samples and documentation [here](./docs/Home.md)
82
93
  To generate the documentation you could clone this repo and execute:
83
94
 
84
95
  `npm run recipe-jsdoc`
96
+
97
+ ## Recipe
98
+
99
+ ### Instructions
100
+
101
+ - [GetStarted](#getstarted)
102
+ - [Coordinate System](#coordinate-system)
103
+ - [Create a new PDF](#create-a-new-pdf)
104
+ - [Modify an existing PDF](#modify-an-existing-pdf)
105
+ - [PDF Pages/Info/Structure](#page-info)
106
+ - [Append PDF](#append-pdf)
107
+ - [Insert PDF](#insert-pdf)
108
+ - [Overlay PDF](#overlay-pdf)
109
+ - [Split PDF](#split-pdf)
110
+ - [Encryption](#encryption)
111
+
112
+ ### GetStarted
113
+
114
+ ```bash
115
+ const Recipe = require('muhammara').Recipe
116
+ ```
117
+
118
+ ### Coordinate System
119
+
120
+ In order to make things easier, I use `Left-Top` as center `[0,0]` instead of `Left-Bottom`.
121
+ You may write and edit the pdf like you write things on papers from the left top corner.
122
+ It is similar to the [Html Canvas](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage)
123
+
124
+ ```javascript
125
+ pdfDoc
126
+ .text('start from here', 0, 0)
127
+ .text('next line', 0, 20)
128
+ .text('some other texts', 100, 100)
129
+ ...
130
+ ```
131
+
132
+ ### Create a new PDF
133
+
134
+ ```javascript
135
+ const Recipe = require("muhammara").Recipe;
136
+
137
+ const pdfDoc = new Recipe("new", "output.pdf", {
138
+ version: 1.6,
139
+ author: "John Doe",
140
+ title: "Hummus Recipe",
141
+ subject: "A brand new PDF",
142
+ });
143
+
144
+ pdfDoc.createPage("letter-size").endPage().endPDF();
145
+ ```
146
+
147
+ ```javascript
148
+ const Recipe = require("muhammara").Recipe;
149
+ const pdfDoc = new Recipe("new", "output.pdf");
150
+
151
+ pdfDoc
152
+ // 1st Page
153
+ .createPage("letter-size")
154
+ .circle("center", 100, 30, { stroke: "#3b7721", fill: "#eee000" })
155
+ .polygon(
156
+ [
157
+ [50, 250],
158
+ [100, 200],
159
+ [512, 200],
160
+ [562, 250],
161
+ [512, 300],
162
+ [100, 300],
163
+ [50, 250],
164
+ ],
165
+ {
166
+ color: [153, 143, 32],
167
+ stroke: [0, 0, 140],
168
+ fill: [153, 143, 32],
169
+ lineWidth: 5,
170
+ }
171
+ )
172
+ .rectangle(240, 400, 50, 50, {
173
+ stroke: "#3b7721",
174
+ fill: "#eee000",
175
+ lineWidth: 6,
176
+ opacity: 0.3,
177
+ })
178
+ .moveTo(200, 600)
179
+ .lineTo("center", 650)
180
+ .lineTo(412, 600)
181
+ .text("Welcome to Hummus-Recipe", "center", 250, {
182
+ color: "#066099",
183
+ fontSize: 30,
184
+ bold: true,
185
+ font: "Helvatica",
186
+ align: "center center",
187
+ opacity: 0.8,
188
+ rotation: 180,
189
+ })
190
+ .text("some text box", 450, 400, {
191
+ color: "#066099",
192
+ fontSize: 20,
193
+ font: "Courier New",
194
+ strikeOut: true,
195
+ highlight: {
196
+ color: [255, 0, 0],
197
+ },
198
+ textBox: {
199
+ width: 150,
200
+ lineHeight: 16,
201
+ padding: [5, 15],
202
+ style: {
203
+ lineWidth: 1,
204
+ stroke: "#00ff00",
205
+ fill: "#ff0000",
206
+ dash: [20, 20],
207
+ opacity: 0.1,
208
+ },
209
+ },
210
+ })
211
+ .comment("Feel free to open issues to help us!", "center", 100)
212
+ .endPage()
213
+ // 2nd page
214
+ .createPage("A4", 90)
215
+ .circle(150, 150, 300)
216
+ .endPage()
217
+ // end and save
218
+ .endPDF(() => {
219
+ /* done! */
220
+ });
221
+ ```
222
+
223
+ #### Create a new PDF as a Buffer
224
+
225
+ ```javascript
226
+ const Recipe = require("muhammara").Recipe;
227
+
228
+ const pdfDoc = new Recipe(Buffer.from("new"), null, {
229
+ version: 1.6,
230
+ author: "John Doe",
231
+ title: "Hummus Recipe",
232
+ subject: "A brand new PDF",
233
+ });
234
+
235
+ const pdfBuffer = pdfDoc.createPage("letter-size").endPage().endPDF();
236
+ ```
237
+
238
+ ### Modify an existing PDF
239
+
240
+ ```javascript
241
+ const Recipe = require("muhammara").Recipe;
242
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
243
+
244
+ pdfDoc
245
+ // edit 1st page
246
+ .editPage(1)
247
+ .text("Add some texts to an existing pdf file", 150, 300)
248
+ .rectangle(20, 20, 40, 100)
249
+ .comment("Add 1st comment annotation", 200, 300)
250
+ .image("/path/to/image.jpg", 20, 100, { width: 300, keepAspectRatio: true })
251
+ .endPage()
252
+ // edit 2nd page
253
+ .editPage(2)
254
+ .comment("Add 2nd comment annotation", 200, 100)
255
+ .endPage()
256
+ // end and save
257
+ .endPDF();
258
+ ```
259
+
260
+ ### Page Info
261
+
262
+ ```javascript
263
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
264
+ console.log(pdfDoc.pageInfo(1));
265
+ ```
266
+
267
+ #### Print the pdf structure
268
+
269
+ ```javascript
270
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
271
+
272
+ recipe.structure("pdf-structure.txt").endPDF(done);
273
+ ```
274
+
275
+ ### Append PDF
276
+
277
+ ```javascript
278
+ const Recipe = require("muhammara").Recipe;
279
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
280
+ const longPDF = "/longPDF.pdf";
281
+
282
+ pdfDoc
283
+ // just page 10
284
+ .appendPage(longPDF, 10)
285
+ // page 4 and page 6
286
+ .appendPage(longPDF, [4, 6])
287
+ // page 1-3 and 6-20
288
+ .appendPage(longPDF, [
289
+ [1, 3],
290
+ [6, 20],
291
+ ])
292
+ // all pages
293
+ .appendPage(longPDF)
294
+ .endPDF();
295
+ ```
296
+
297
+ ### Insert PDF
298
+
299
+ ```javascript
300
+ const Recipe = require("muhammara").Recipe;
301
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
302
+
303
+ pdfDoc
304
+ // insert page3 from longPDF to current page 2
305
+ .insertPage(2, "/longPDF.pdf", 3)
306
+ .endPDF();
307
+ ```
308
+
309
+ ### Overlay PDF
310
+
311
+ ```javascript
312
+ const Recipe = require("muhammara").Recipe;
313
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
314
+
315
+ pdfDoc.overlay("/overlayPDF.pdf").endPDF();
316
+ ```
317
+
318
+ ### Split PDF
319
+
320
+ ```javascript
321
+ const Recipe = require("muhammara").Recipe;
322
+ const pdfDoc = new Recipe("input.pdf");
323
+ const outputDir = path.join(__dirname, "output");
324
+
325
+ pdfDoc.split(outputDir, "prefix").endPDF();
326
+ ```
327
+
328
+ ### Encryption
329
+
330
+ ```javascript
331
+ const Recipe = require("muhammara").Recipe;
332
+ const pdfDoc = new Recipe("input.pdf", "output.pdf");
333
+
334
+ pdfDoc
335
+ .encrypt({
336
+ userPassword: "123",
337
+ ownerPassword: "123",
338
+ userProtectionFlag: 4,
339
+ })
340
+ .endPDF();
341
+ ```
package/lib/Recipe.js CHANGED
@@ -9,7 +9,7 @@ const streams = require("memory-streams");
9
9
  * @namespace
10
10
  * @constructor
11
11
  * @param {string} src - The file path or Buffer of the src file.
12
- * @param {string} output - The path of the output file.
12
+ * @param {string} [output] - The path of the output file uses src if its not a buffer.
13
13
  * @param {Object} [options] - The options for pdfDoc
14
14
  * @param {number} [options.version] - The pdf version
15
15
  * @param {string} [options.author] - The author
@@ -85,6 +85,7 @@ function parseNode(node) {
85
85
  isBold: isBoldTag(node.tagName),
86
86
  isItalic: isItalicTag(node.tagName),
87
87
  underline: node.tagName == "u",
88
+ strikeOut: node.tagName == "del",
88
89
  attributes,
89
90
  styles,
90
91
  needsLineBreaker: needsLineBreaker(node.tagName),
@@ -9,6 +9,7 @@ const { xObjectForm } = require("./xObjectForm");
9
9
  * @param {number} x - The coordinate x
10
10
  * @param {number} y - The coordinate y
11
11
  * @param {number} [options.scale] - Scale the overlay pdf, default is 1
12
+ * @param {number} [options.page] - Page of the overlay pdf, default is 1
12
13
  * @param {boolean} [options.keepAspectRatio] - To keep the aspect ratio when scaling, default is true
13
14
  * @param {boolean} [options.fitWidth] - To set the width to 100% (use with keepAspectRatio=true)
14
15
  * @param {boolean} [options.fitHeight] - To set the height to 100% (use with keepAspectRatio=true)
@@ -359,12 +359,8 @@ exports.text = function text(text = "", x, y, options = {}) {
359
359
  const addUnderline = (x, y, ctx, options) => {
360
360
  // underline implementation
361
361
  if (options.underline) {
362
- // console.log(textWidth, lineWidth, currentLineWidth)
363
362
  const underlineY = y - options.textHeight * 0.1;
364
- // TODO: fix the line with calculation
365
- const width =
366
- currentLineWidth -
367
- (isHTML || toWriteTextObject.text.endsWith(" ") ? spaceWidth : 0);
363
+ const width = options.lineWidth;
368
364
  ctx
369
365
  .q()
370
366
  .drawPath(x, underlineY, x + width, underlineY, options)
@@ -372,6 +368,18 @@ exports.text = function text(text = "", x, y, options = {}) {
372
368
  }
373
369
  };
374
370
 
371
+ const addStrikeOut = (x, y, ctx, options) => {
372
+ // strikethrough implementation
373
+ if (options.strikeOut) {
374
+ const strikeOutY = y + options.textHeight * 0.2;
375
+ const width = options.lineWidth;
376
+ ctx
377
+ .q()
378
+ .drawPath(x, strikeOutY, x + width, strikeOutY, options)
379
+ .Q();
380
+ }
381
+ };
382
+
375
383
  const addTextTraits = (ctx, options) => {
376
384
  ctx.Tf(options.font, options.size);
377
385
  ctx.Tc(options.charSpace);
@@ -394,6 +402,7 @@ exports.text = function text(text = "", x, y, options = {}) {
394
402
  ctx.ET();
395
403
 
396
404
  addUnderline(x, y, ctx, options);
405
+ addStrikeOut(x, y, ctx, options);
397
406
  };
398
407
 
399
408
  const justifyText = (left, x, wto, textBox, ctx, options, callback) => {
@@ -416,7 +425,7 @@ exports.text = function text(text = "", x, y, options = {}) {
416
425
 
417
426
  const writeText = (context, x, y, wto) => {
418
427
  const options = wto.writeOptions;
419
- const { lineHeight, text, baseline } = wto;
428
+ const { lineWidth, lineHeight, text, baseline } = wto;
420
429
  let next_x = 0;
421
430
 
422
431
  if (text === "") {
@@ -424,6 +433,10 @@ exports.text = function text(text = "", x, y, options = {}) {
424
433
  return next_x;
425
434
  }
426
435
 
436
+ if (options.underline || options.strikeOut) {
437
+ options.lineWidth = lineWidth;
438
+ }
439
+
427
440
  // Produce a hilite under words?
428
441
  if (options.hilite) {
429
442
  const bgColor = options.hilite.color || "#ffff00";
@@ -798,6 +811,9 @@ exports._layoutText = function _layoutText(textObjects, textBox, pathOptions) {
798
811
  child.underline = textObject.underline
799
812
  ? textObject.underline
800
813
  : child.underline;
814
+ child.strikeOut = textObject.strikeOut
815
+ ? textObject.strikeOut
816
+ : child.strikeOut;
801
817
 
802
818
  child.lineID = textObject.lineID;
803
819
  writeValue(child);
@@ -1075,6 +1091,7 @@ function makeTextObjects(self, textObject = {}, pathOptions, textBox = {}) {
1075
1091
  color: textObject.styles.color,
1076
1092
  opacity: parseFloat(textObject.styles.opacity || pathOptions.opacity || 1),
1077
1093
  underline: textObject.underline || pathOptions.underline,
1094
+ strikeOut: textObject.strikeOut || pathOptions.strikeOut,
1078
1095
  size: textObject.size,
1079
1096
  alignHorizontal: alignHorizontal,
1080
1097
  alignVertical: alignVertical,
@@ -16,6 +16,7 @@ exports._getPathOptions = function _getPathOptions(
16
16
  size: options.size || this.current.defaultFontSize,
17
17
  charSpace: options.charSpace || 0,
18
18
  underline: false,
19
+ strikeOut: false,
19
20
  color: this._transformColor(options.color, {
20
21
  colorspace: colorspace,
21
22
  colorName: options.colorName,
package/muhammara.d.ts CHANGED
@@ -263,6 +263,8 @@ declare module "muhammara" {
263
263
 
264
264
  export interface WriteTextOptions extends FontOptions, ColorOptions {
265
265
  underline?: boolean;
266
+ strikeOut?: boolean;
267
+ lineWidth?: number;
266
268
  }
267
269
 
268
270
  export interface XObjectContentContext extends AbstractContentContext {}
@@ -883,6 +885,7 @@ declare module "muhammara" {
883
885
  interface EncryptOptions {
884
886
  password?: string;
885
887
  ownerPassword?: string;
888
+ userPassword?: string;
886
889
  userProtectionFlag?: number;
887
890
  }
888
891
 
@@ -904,6 +907,7 @@ declare module "muhammara" {
904
907
  }
905
908
 
906
909
  interface OverlayOptions {
910
+ page?: number;
907
911
  scale?: number;
908
912
  keepAspectRatio?: boolean;
909
913
  fitWidth?: boolean;
@@ -929,16 +933,26 @@ declare module "muhammara" {
929
933
  }
930
934
 
931
935
  interface TextOptions {
936
+ charSpace?: number;
932
937
  color?: string | number[];
938
+ flow?: boolean;
939
+ overflow?: () => void;
940
+ layout?: number | string;
933
941
  opacity?: number;
934
942
  rotation?: number;
935
- rotationOrigin?: number[];
943
+ rotationOrigin?: [number, number];
936
944
  font?: string;
937
945
  size?: number;
938
946
  align?: string;
939
947
  highlight?: boolean;
940
948
  underline?: boolean;
941
949
  strikeOut?: boolean;
950
+ hilite?:
951
+ | boolean
952
+ | {
953
+ color?: string | number[];
954
+ opacity?: number;
955
+ };
942
956
  textBox?: TextBox;
943
957
  }
944
958
 
@@ -993,7 +1007,7 @@ declare module "muhammara" {
993
1007
  }
994
1008
 
995
1009
  export class Recipe {
996
- constructor(src: string, output: string, options?: Recipe.RecipeOptions);
1010
+ constructor(src: string, output?: string, options?: Recipe.RecipeOptions);
997
1011
 
998
1012
  constructor(buffer: Buffer, options?: Recipe.RecipeOptions);
999
1013
 
@@ -1047,7 +1061,12 @@ declare module "muhammara" {
1047
1061
 
1048
1062
  editPage(pageNumber: number): Recipe;
1049
1063
 
1050
- pageInfo(pageNumber: number): Recipe;
1064
+ pageInfo(pageNumber: number): {
1065
+ width: number;
1066
+ height: number;
1067
+ rotate: number;
1068
+ pageNumber: number;
1069
+ };
1051
1070
 
1052
1071
  split(outputDir: string, prefix: string): Recipe;
1053
1072
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "_from": "@mapbox/node-pre-gyp@^1.0.5",
2
+ "_from": "@mapbox/node-pre-gyp@^1.0.10",
3
3
  "_id": "@mapbox/node-pre-gyp@1.0.10",
4
4
  "_inBundle": false,
5
5
  "_integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==",
@@ -8,20 +8,20 @@
8
8
  "_requested": {
9
9
  "type": "range",
10
10
  "registry": true,
11
- "raw": "@mapbox/node-pre-gyp@^1.0.5",
11
+ "raw": "@mapbox/node-pre-gyp@^1.0.10",
12
12
  "name": "@mapbox/node-pre-gyp",
13
13
  "escapedName": "@mapbox%2fnode-pre-gyp",
14
14
  "scope": "@mapbox",
15
- "rawSpec": "^1.0.5",
15
+ "rawSpec": "^1.0.10",
16
16
  "saveSpec": null,
17
- "fetchSpec": "^1.0.5"
17
+ "fetchSpec": "^1.0.10"
18
18
  },
19
19
  "_requiredBy": [
20
20
  "/"
21
21
  ],
22
22
  "_resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz",
23
23
  "_shasum": "8e6735ccebbb1581e5a7e652244cadc8a844d03c",
24
- "_spec": "@mapbox/node-pre-gyp@^1.0.5",
24
+ "_spec": "@mapbox/node-pre-gyp@^1.0.10",
25
25
  "_where": "/home/runner/work/MuhammaraJS/MuhammaraJS",
26
26
  "author": {
27
27
  "name": "Dane Springmeyer",
@@ -16,15 +16,10 @@
16
16
  "fetchSpec": "^2.0.3"
17
17
  },
18
18
  "_requiredBy": [
19
- "/concat-stream",
20
- "/concat-stream/readable-stream",
21
- "/duplexer2/readable-stream",
22
19
  "/glob",
23
20
  "/memory-streams/readable-stream",
24
21
  "/mocha/glob",
25
- "/readable-stream",
26
- "/static-module/readable-stream",
27
- "/through2/readable-stream"
22
+ "/readable-stream"
28
23
  ],
29
24
  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
30
25
  "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "semver@^6.0.0",
3
- "_id": "semver@6.3.0",
3
+ "_id": "semver@6.3.1",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
5
+ "_integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
6
6
  "_location": "/make-dir/semver",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -18,10 +18,13 @@
18
18
  "_requiredBy": [
19
19
  "/make-dir"
20
20
  ],
21
- "_resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
22
- "_shasum": "ee0a64c8af5e8ceea67687b133761e1becbd1d3d",
21
+ "_resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
22
+ "_shasum": "556d2ef8689146e46dcea4bfdd095f3434dffcb4",
23
23
  "_spec": "semver@^6.0.0",
24
24
  "_where": "/home/runner/work/MuhammaraJS/MuhammaraJS/node_modules/make-dir",
25
+ "author": {
26
+ "name": "GitHub Inc."
27
+ },
25
28
  "bin": {
26
29
  "semver": "bin/semver.js"
27
30
  },
@@ -32,7 +35,8 @@
32
35
  "deprecated": false,
33
36
  "description": "The semantic version parser used by npm.",
34
37
  "devDependencies": {
35
- "tap": "^14.3.1"
38
+ "@npmcli/template-oss": "4.17.0",
39
+ "tap": "^12.7.0"
36
40
  },
37
41
  "files": [
38
42
  "bin",
@@ -48,13 +52,18 @@
48
52
  "url": "git+https://github.com/npm/node-semver.git"
49
53
  },
50
54
  "scripts": {
51
- "postpublish": "git push origin --follow-tags",
52
- "postversion": "npm publish",
53
- "preversion": "npm test",
54
- "test": "tap"
55
+ "lint": "echo linting disabled",
56
+ "lintfix": "npm run lint -- --fix",
57
+ "postlint": "template-oss-check",
58
+ "posttest": "npm run lint",
59
+ "snap": "tap test/ --100 --timeout=30",
60
+ "template-oss-apply": "template-oss-apply --force",
61
+ "test": "tap test/ --100 --timeout=30"
55
62
  },
56
- "tap": {
57
- "check-coverage": true
63
+ "templateOSS": {
64
+ "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
65
+ "content": "./scripts/template-oss",
66
+ "version": "4.17.0"
58
67
  },
59
- "version": "6.3.0"
68
+ "version": "6.3.1"
60
69
  }