diff --git a/modules/graph-layers/scripts/pack-marker-images.ts b/modules/graph-layers/scripts/pack-marker-images.ts new file mode 100644 index 00000000..bfdc61bd --- /dev/null +++ b/modules/graph-layers/scripts/pack-marker-images.ts @@ -0,0 +1,123 @@ +/** + * Generate texture atlas from images + * ``` + * # default input/output + * npx tsx ./pack-marker-images.ts + * + * # custom input/output directories + * npx tsx ./pack-marker-images.ts [inputDir] [outputDir] + * ``` + */ + +import {readFile, writeFile, readdir} from 'node:fs/promises'; +import {dirname, join, resolve} from 'node:path'; +import { fileURLToPath } from 'node:url'; +import ndarray, {NdArray} from 'ndarray'; +import {getPixels, savePixels} from 'ndarray-pixels'; +import pack from 'bin-pack'; +import Datauri from 'datauri'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const packageRoot = join(__dirname, '..'); + +const inputDir = process.argv[2] || 'src/layers/common-layers/marker-layer/markers/'; +const outputDir = process.argv[3] || 'src/layers/common-layers/marker-layer/'; + +const INPUT_DIR = resolve(packageRoot, inputDir); +const OUTPUT_IMAGE = resolve(packageRoot, outputDir, 'marker-atlas.png'); +const OUTPUT_MAPPING = resolve(packageRoot, outputDir, `marker-mapping.ts`); +const OUTPUT_DATA_URL = resolve(packageRoot, outputDir, 'atlas-data-url.ts'); +const OUTPUT_LIST = resolve(packageRoot, outputDir, 'marker-list.ts'); +const IMAGE_PATTERN = /\.(png|jpg|jpeg|gif|bmp|tiff)$/i; + +// Get all images in the input path +const fileNames = (await readdir(INPUT_DIR)).filter((name) => IMAGE_PATTERN.test(name)); + +Promise.all(fileNames.map((name: string) => readImage(resolve(INPUT_DIR, name)))).then(async (images) => { + // Images are loaded + const nodes = images.map((pixels: NdArray, index: number) => ({ + name: fileNames[index], + pixels, + width: pixels.shape[0], + height: pixels.shape[1] + })); + + // Bin pack + const result = pack(nodes); + // console.log(result.items.length + ' items packed.'); + + // Convert to texture atlas + const outputJSON = {}; + const outputImage = createImage(result.width, result.height); + result.items.forEach((item) => { + outputJSON[item.item.name.replace(IMAGE_PATTERN, '')] = { + x: item.x, + y: item.y, + width: item.width, + height: item.height, + mask: true + }; + copyPixels(item.item.pixels, outputImage, item.x, item.y); + }); + + // Write to disk + await writeMapping(OUTPUT_MAPPING, outputJSON); + await writeImage(OUTPUT_IMAGE, outputImage, () => writeDataURL(OUTPUT_IMAGE, OUTPUT_DATA_URL)); + await writeList(OUTPUT_LIST, outputJSON); +}); + +/* Utils */ + +function copyPixels(fromImage: NdArray, toImage: NdArray, x: number, y: number): void { + const width = fromImage.shape[0]; + const height = fromImage.shape[1]; + const channels = fromImage.shape[2]; + + for (let i = 0; i < width; i++) { + for (let j = 0; j < height; j++) { + for (let k = 0; k < channels; k++) { + const value = fromImage.get(i, j, k); + toImage.set(i + x, j + y, k, value); + } + } + } +} + +async function writeMapping(filePath: string, content: unknown): Promise { + await exportJSFile(filePath, 'MarkerMapping', JSON.stringify(content, null, 2)); +} + +function createImage(width: number, height: number): NdArray { + return ndarray(new Uint8ClampedArray(width * height * 4), [width, height, 4]); +} + +async function writeDataURL(imagePath: string, outputFilePath: string): Promise { + const content = {dataURL: await Datauri(imagePath)}; + await exportJSFile(outputFilePath, 'AtlasDataURL', JSON.stringify(content, null, 2)); +} + +async function writeList(filePath: string, content: object): Promise { + const markers = Object.keys(content); + const markerMap = markers.reduce((res, marker) => { + res[marker] = marker; + return res; + }, {}); + const contentStr = JSON.stringify(markerMap, null, 2); + await exportJSFile(filePath, 'MarkerList', contentStr); +} + +async function exportJSFile(filePath: string, exportName: string, contentStr: string): Promise { + await writeFile( + filePath, + `/* eslint-disable */\nexport const ${exportName} = ${contentStr};\n/* eslint-enable */\n` + ); +} + +async function readImage(filePath: string): Promise { + return readFile(filePath).then((buffer) => getPixels(buffer, 'image/png')); +} + +async function writeImage(filePath: string, pixelArr: NdArray, createDataURL: () => void): Promise { + await writeFile(filePath, await savePixels(pixelArr, 'image/png')); + createDataURL(); +} diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/atlas-data-url.ts b/modules/graph-layers/src/layers/common-layers/marker-layer/atlas-data-url.ts index 35b856af..23b677f2 100644 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/atlas-data-url.ts +++ b/modules/graph-layers/src/layers/common-layers/marker-layer/atlas-data-url.ts @@ -1,6 +1,5 @@ /* eslint-disable */ export const AtlasDataURL = { - dataURL: - 'data:image/png;base64,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' + "dataURL": "data:image/png;base64,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" }; /* eslint-enable */ diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-atlas.png b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-atlas.png index 0cd0486e..06877ea0 100644 Binary files a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-atlas.png and b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-atlas.png differ diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-layer.ts b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-layer.ts index 77d8de1c..d979aff4 100644 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-layer.ts +++ b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-layer.ts @@ -1,4 +1,3 @@ -// @noflow import {CompositeLayer} from '@deck.gl/core'; import {IconLayer} from '@deck.gl/layers'; diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-list.ts b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-list.ts index 46f32caa..34e27246 100644 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-list.ts +++ b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-list.ts @@ -1,64 +1,64 @@ /* eslint-disable */ export const MarkerList = { - 'location-marker-filled': 'location-marker-filled', - 'bell-filled': 'bell-filled', - 'bookmark-filled': 'bookmark-filled', - bookmark: 'bookmark', - 'cd-filled': 'cd-filled', - cd: 'cd', - checkmark: 'checkmark', - 'circle-check-filled': 'circle-check-filled', - 'circle-check': 'circle-check', - 'circle-filled': 'circle-filled', - 'circle-i-filled': 'circle-i-filled', - 'circle-i': 'circle-i', - 'circle-minus-filled': 'circle-minus-filled', - 'circle-minus': 'circle-minus', - 'circle-plus-filled': 'circle-plus-filled', - 'circle-plus': 'circle-plus', - 'circle-questionmark-filled': 'circle-questionmark-filled', - 'circle-questionmark': 'circle-questionmark', - 'circle-slash-filled': 'circle-slash-filled', - 'circle-slash': 'circle-slash', - 'circle-x-filled': 'circle-x-filled', - 'circle-x': 'circle-x', - circle: 'circle', - 'diamond-filled': 'diamond-filled', - diamond: 'diamond', - 'flag-filled': 'flag-filled', - flag: 'flag', - gear: 'gear', - 'heart-filled': 'heart-filled', - heart: 'heart', - bell: 'bell', - 'location-marker': 'location-marker', - 'octagonal-star-filled': 'octagonal-star-filled', - 'octagonal-star': 'octagonal-star', - 'person-filled': 'person-filled', - person: 'person', - 'pin-filled': 'pin-filled', - pin: 'pin', - 'plus-small': 'plus-small', - plus: 'plus', - 'rectangle-filled': 'rectangle-filled', - rectangle: 'rectangle', - 'star-filled': 'star-filled', - star: 'star', - 'tag-filled': 'tag-filled', - tag: 'tag', - 'thumb-down-filled': 'thumb-down-filled', - 'thumb-down': 'thumb-down', - 'thumb-up': 'thumb-up', - 'thumb_up-filled': 'thumb_up-filled', - 'triangle-down-filled': 'triangle-down-filled', - 'triangle-down': 'triangle-down', - 'triangle-left-filled': 'triangle-left-filled', - 'triangle-left': 'triangle-left', - 'triangle-right-filled': 'triangle-right-filled', - 'triangle-right': 'triangle-right', - 'triangle-up-filled': 'triangle-up-filled', - 'triangle-up': 'triangle-up', - 'x-small': 'x-small', - x: 'x' + "bell-filled": "bell-filled", + "bell": "bell", + "bookmark-filled": "bookmark-filled", + "bookmark": "bookmark", + "cd-filled": "cd-filled", + "cd": "cd", + "checkmark": "checkmark", + "circle-check-filled": "circle-check-filled", + "circle-check": "circle-check", + "circle-filled": "circle-filled", + "circle-i-filled": "circle-i-filled", + "circle-i": "circle-i", + "circle-minus-filled": "circle-minus-filled", + "circle-minus": "circle-minus", + "circle-plus-filled": "circle-plus-filled", + "circle-plus": "circle-plus", + "circle-questionmark-filled": "circle-questionmark-filled", + "circle-questionmark": "circle-questionmark", + "circle-slash-filled": "circle-slash-filled", + "circle-slash": "circle-slash", + "circle-x-filled": "circle-x-filled", + "circle-x": "circle-x", + "circle": "circle", + "diamond-filled": "diamond-filled", + "diamond": "diamond", + "flag-filled": "flag-filled", + "flag": "flag", + "gear": "gear", + "heart-filled": "heart-filled", + "heart": "heart", + "location-marker-filled": "location-marker-filled", + "location-marker": "location-marker", + "octagonal-star-filled": "octagonal-star-filled", + "octagonal-star": "octagonal-star", + "person-filled": "person-filled", + "person": "person", + "pin-filled": "pin-filled", + "pin": "pin", + "plus-small": "plus-small", + "plus": "plus", + "rectangle-filled": "rectangle-filled", + "rectangle": "rectangle", + "star-filled": "star-filled", + "star": "star", + "tag-filled": "tag-filled", + "tag": "tag", + "thumb-down-filled": "thumb-down-filled", + "thumb-down": "thumb-down", + "thumb-up": "thumb-up", + "thumb_up-filled": "thumb_up-filled", + "triangle-down-filled": "triangle-down-filled", + "triangle-down": "triangle-down", + "triangle-left-filled": "triangle-left-filled", + "triangle-left": "triangle-left", + "triangle-right-filled": "triangle-right-filled", + "triangle-right": "triangle-right", + "triangle-up-filled": "triangle-up-filled", + "triangle-up": "triangle-up", + "x-small": "x-small", + "x": "x" }; /* eslint-enable */ diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-mapping.ts b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-mapping.ts index 7bc6f16a..f91ac2cf 100644 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/marker-mapping.ts +++ b/modules/graph-layers/src/layers/common-layers/marker-layer/marker-mapping.ts @@ -1,424 +1,424 @@ /* eslint-disable */ export const MarkerMapping = { - 'location-marker-filled': { - x: 0, - y: 0, - width: 32, - height: 32, - mask: true - }, - 'bell-filled': { - x: 32, - y: 0, - width: 32, - height: 32, - mask: true - }, - 'bookmark-filled': { - x: 0, - y: 32, - width: 32, - height: 32, - mask: true - }, - bookmark: { - x: 32, - y: 32, - width: 32, - height: 32, - mask: true - }, - 'cd-filled': { - x: 64, - y: 0, - width: 32, - height: 32, - mask: true - }, - cd: { - x: 64, - y: 32, - width: 32, - height: 32, - mask: true - }, - checkmark: { - x: 0, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'circle-check-filled': { - x: 32, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'circle-check': { - x: 64, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'circle-filled': { - x: 96, - y: 0, - width: 32, - height: 32, - mask: true - }, - 'circle-i-filled': { - x: 96, - y: 32, - width: 32, - height: 32, - mask: true - }, - 'circle-i': { - x: 96, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'circle-minus-filled': { - x: 0, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'circle-minus': { - x: 32, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'circle-plus-filled': { - x: 64, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'circle-plus': { - x: 96, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'circle-questionmark-filled': { - x: 128, - y: 0, - width: 32, - height: 32, - mask: true - }, - 'circle-questionmark': { - x: 128, - y: 32, - width: 32, - height: 32, - mask: true - }, - 'circle-slash-filled': { - x: 128, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'circle-slash': { - x: 128, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'circle-x-filled': { - x: 0, - y: 128, - width: 32, - height: 32, - mask: true - }, - 'circle-x': { - x: 32, - y: 128, - width: 32, - height: 32, - mask: true - }, - circle: { - x: 64, - y: 128, - width: 32, - height: 32, - mask: true - }, - 'diamond-filled': { - x: 96, - y: 128, - width: 32, - height: 32, - mask: true - }, - diamond: { - x: 128, - y: 128, - width: 32, - height: 32, - mask: true - }, - 'flag-filled': { - x: 160, - y: 0, - width: 32, - height: 32, - mask: true - }, - flag: { - x: 160, - y: 32, - width: 32, - height: 32, - mask: true - }, - gear: { - x: 160, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'heart-filled': { - x: 160, - y: 96, - width: 32, - height: 32, - mask: true - }, - heart: { - x: 160, - y: 128, - width: 32, - height: 32, - mask: true - }, - bell: { - x: 0, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'location-marker': { - x: 32, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'octagonal-star-filled': { - x: 64, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'octagonal-star': { - x: 96, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'person-filled': { - x: 128, - y: 160, - width: 32, - height: 32, - mask: true - }, - person: { - x: 160, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'pin-filled': { - x: 192, - y: 0, - width: 32, - height: 32, - mask: true - }, - pin: { - x: 192, - y: 32, - width: 32, - height: 32, - mask: true - }, - 'plus-small': { - x: 192, - y: 64, - width: 32, - height: 32, - mask: true - }, - plus: { - x: 192, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'rectangle-filled': { - x: 192, - y: 128, - width: 32, - height: 32, - mask: true - }, - rectangle: { - x: 192, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'star-filled': { - x: 0, - y: 192, - width: 32, - height: 32, - mask: true - }, - star: { - x: 32, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'tag-filled': { - x: 64, - y: 192, - width: 32, - height: 32, - mask: true - }, - tag: { - x: 96, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'thumb-down-filled': { - x: 128, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'thumb-down': { - x: 160, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'thumb-up': { - x: 192, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'thumb_up-filled': { - x: 224, - y: 0, - width: 32, - height: 32, - mask: true - }, - 'triangle-down-filled': { - x: 224, - y: 32, - width: 32, - height: 32, - mask: true - }, - 'triangle-down': { - x: 224, - y: 64, - width: 32, - height: 32, - mask: true - }, - 'triangle-left-filled': { - x: 224, - y: 96, - width: 32, - height: 32, - mask: true - }, - 'triangle-left': { - x: 224, - y: 128, - width: 32, - height: 32, - mask: true - }, - 'triangle-right-filled': { - x: 224, - y: 160, - width: 32, - height: 32, - mask: true - }, - 'triangle-right': { - x: 224, - y: 192, - width: 32, - height: 32, - mask: true - }, - 'triangle-up-filled': { - x: 0, - y: 224, - width: 32, - height: 32, - mask: true - }, - 'triangle-up': { - x: 32, - y: 224, - width: 32, - height: 32, - mask: true - }, - 'x-small': { - x: 64, - y: 224, - width: 32, - height: 32, - mask: true - }, - x: { - x: 96, - y: 224, - width: 32, - height: 32, - mask: true + "bell-filled": { + "x": 0, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "bell": { + "x": 32, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "bookmark-filled": { + "x": 0, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "bookmark": { + "x": 32, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "cd-filled": { + "x": 64, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "cd": { + "x": 64, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "checkmark": { + "x": 0, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "circle-check-filled": { + "x": 32, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "circle-check": { + "x": 64, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "circle-filled": { + "x": 96, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "circle-i-filled": { + "x": 96, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "circle-i": { + "x": 96, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "circle-minus-filled": { + "x": 0, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "circle-minus": { + "x": 32, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "circle-plus-filled": { + "x": 64, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "circle-plus": { + "x": 96, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "circle-questionmark-filled": { + "x": 128, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "circle-questionmark": { + "x": 128, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "circle-slash-filled": { + "x": 128, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "circle-slash": { + "x": 128, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "circle-x-filled": { + "x": 0, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "circle-x": { + "x": 32, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "circle": { + "x": 64, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "diamond-filled": { + "x": 96, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "diamond": { + "x": 128, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "flag-filled": { + "x": 160, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "flag": { + "x": 160, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "gear": { + "x": 160, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "heart-filled": { + "x": 160, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "heart": { + "x": 160, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "location-marker-filled": { + "x": 0, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "location-marker": { + "x": 32, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "octagonal-star-filled": { + "x": 64, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "octagonal-star": { + "x": 96, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "person-filled": { + "x": 128, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "person": { + "x": 160, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "pin-filled": { + "x": 192, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "pin": { + "x": 192, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "plus-small": { + "x": 192, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "plus": { + "x": 192, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "rectangle-filled": { + "x": 192, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "rectangle": { + "x": 192, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "star-filled": { + "x": 0, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "star": { + "x": 32, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "tag-filled": { + "x": 64, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "tag": { + "x": 96, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "thumb-down-filled": { + "x": 128, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "thumb-down": { + "x": 160, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "thumb-up": { + "x": 192, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "thumb_up-filled": { + "x": 224, + "y": 0, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-down-filled": { + "x": 224, + "y": 32, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-down": { + "x": 224, + "y": 64, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-left-filled": { + "x": 224, + "y": 96, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-left": { + "x": 224, + "y": 128, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-right-filled": { + "x": 224, + "y": 160, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-right": { + "x": 224, + "y": 192, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-up-filled": { + "x": 0, + "y": 224, + "width": 32, + "height": 32, + "mask": true + }, + "triangle-up": { + "x": 32, + "y": 224, + "width": 32, + "height": 32, + "mask": true + }, + "x-small": { + "x": 64, + "y": 224, + "width": 32, + "height": 32, + "mask": true + }, + "x": { + "x": 96, + "y": 224, + "width": 32, + "height": 32, + "mask": true } }; /* eslint-enable */ diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/pack-images.ts b/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/pack-images.ts deleted file mode 100644 index d8e6dd55..00000000 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/pack-images.ts +++ /dev/null @@ -1,127 +0,0 @@ -// @noflow -/** - * Generate texture atlas from images - * ``` - * npm install bin-pack ndarry get-pixels save-pixels datauri - * node pack-images - * ``` - */ - -const INPUT_DIR = process.argv[2]; -const OUTPUT_IMAGE = `${process.argv[3]}marker-atlas.png`; -const OUTPUT_MAPPING = `${process.argv[3]}marker-mapping.js`; -const OUTPUT_DATA_URL = `${process.argv[3]}atlas-data-url.js`; -const OUTPUT_LIST = `${process.argv[3]}marker-list.js`; -const IMAGE_PATTERN = /\.(png|jpg|jpeg|gif|bmp|tiff)$/i; - -const fs = require('fs'); -const path = require('path'); -const ndarray = require('ndarray'); -const savePixels = require('save-pixels'); -const getPixels = require('get-pixels'); -const pack = require('bin-pack'); -const Datauri = require('datauri'); - -// Get all images in the input path -const fileNames = fs.readdirSync(INPUT_DIR).filter((name) => IMAGE_PATTERN.test(name)); - -Promise.all(fileNames.map((name) => readImage(path.resolve(INPUT_DIR, name)))).then((images) => { - // Images are loaded - const nodes = images.map((pixels, index) => ({ - name: fileNames[index], - pixels, - width: pixels.shape[0], - height: pixels.shape[1] - })); - - // Bin pack - const result = pack(nodes); - // console.log(result.items.length + ' items packed.'); - - // Convert to texture atlas - const outputJSON = {}; - const outputImage = createImage(result.width, result.height); - result.items.forEach((item) => { - outputJSON[item.item.name.replace(IMAGE_PATTERN, '')] = { - x: item.x, - y: item.y, - width: item.width, - height: item.height, - mask: true - }; - copyPixels(item.item.pixels, outputImage, item.x, item.y); - }); - - // Write to disk - writeMapping(OUTPUT_MAPPING, outputJSON); - writeImage(OUTPUT_IMAGE, outputImage, () => writeDataURL(OUTPUT_IMAGE, OUTPUT_DATA_URL)); - writeList(OUTPUT_LIST, outputJSON); -}); - -/* Utils */ - -function copyPixels(fromImage, toImage, x, y) { - const width = fromImage.shape[0]; - const height = fromImage.shape[1]; - const channels = fromImage.shape[2]; - - for (let i = 0; i < width; i++) { - for (let j = 0; j < height; j++) { - for (let k = 0; k < channels; k++) { - const value = fromImage.get(i, j, k); - toImage.set(i + x, j + y, k, value); - } - } - } -} - -function writeMapping(filePath, content) { - const contentStr = JSON.stringify(content, null, 2); - exportJSFile(filePath, contentStr); -} - -function createImage(width, height) { - return ndarray(new Uint8ClampedArray(width * height * 4), [width, height, 4]); -} - -function writeDataURL(imagePath, outputFilePath) { - const datauri = new Datauri(imagePath); - const content = {dataURL: datauri.content}; - const contentStr = JSON.stringify(content, null, 2); - exportJSFile(outputFilePath, contentStr); -} - -function writeList(filePath, content) { - const markers = Object.keys(content); - const markerMap = markers.reduce((res, marker) => { - res[marker] = marker; - return res; - }, {}); - const contentStr = JSON.stringify(markerMap, null, 2); - exportJSFile(filePath, contentStr); -} - -function exportJSFile(filePath, contentStr) { - fs.writeFileSync( - filePath, - `/* eslint-disable */\nexport ${contentStr};\n/* eslint-enable */\n` - ); -} - -function readImage(filePath) { - return new Promise(function (resolve, reject) { - getPixels(filePath, function (err, pixels) { - if (err) { - resolve(null); - } else { - resolve(pixels); - } - }); - }); -} - -function writeImage(filePath, pixelArr, createDataURL) { - const file = fs.createWriteStream(filePath); - savePixels(pixelArr, 'png').pipe(file); - file.on('finish', createDataURL); -} diff --git a/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/packing.sh b/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/packing.sh deleted file mode 100644 index 7e6b8898..00000000 --- a/modules/graph-layers/src/layers/common-layers/marker-layer/scripts/packing.sh +++ /dev/null @@ -1,2 +0,0 @@ -# npm install --save-dev bin-pack ndarray get-pixels save-pixels datauri -node pack-images ../markers ../ diff --git a/modules/react-graph-layers/test/utils/hocs/fetch-s3-graph-hoc.tsx b/modules/react-graph-layers/test/utils/hocs/fetch-s3-graph-hoc.tsx index dbed09dd..dfc521aa 100644 --- a/modules/react-graph-layers/test/utils/hocs/fetch-s3-graph-hoc.tsx +++ b/modules/react-graph-layers/test/utils/hocs/fetch-s3-graph-hoc.tsx @@ -1,4 +1,3 @@ -// @noflow import React, {Component} from 'react'; import {fetchJSONFromS3} from '@deck.gl-community/test-utils'; import {JSONLoader} from 'deck-graph-layers'; diff --git a/modules/react-graph-layers/test/utils/hocs/sample-dataset-selector-hoc.tsx b/modules/react-graph-layers/test/utils/hocs/sample-dataset-selector-hoc.tsx index e7e45a37..41f30070 100644 --- a/modules/react-graph-layers/test/utils/hocs/sample-dataset-selector-hoc.tsx +++ b/modules/react-graph-layers/test/utils/hocs/sample-dataset-selector-hoc.tsx @@ -1,4 +1,3 @@ -// @noflow import React from 'react'; import {select} from '@storybook/addon-knobs'; import SAMPLE_GRAPH_DATASETS from '../data/sample-datasets'; diff --git a/package.json b/package.json index 97e1feca..243bcdca 100644 --- a/package.json +++ b/package.json @@ -36,13 +36,18 @@ "@probe.gl/test-utils": "^4.0.4", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.3.0", + "@types/bin-pack": "^1.0.3", "@vitejs/plugin-react": "^4.2.1", + "bin-pack": "^1.0.2", + "datauri": "^4.1.0", "esbuild": "^0.20.0", "eslint-plugin-jest": "^27.2.1", "jest": "^29.2.2", "jest-environment-jsdom": "^29.3.0", "jsdom": "^24.0.0", "lerna": "^8.1.2", + "ndarray": "^1.0.19", + "ndarray-pixels": "^3.1.0", "ocular-dev-tools": "2.0.0-alpha.29", "pre-commit": "^1.2.2", "pre-push": "^0.1.4", diff --git a/yarn.lock b/yarn.lock index 905c0236..725ef907 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4708,6 +4708,11 @@ dependencies: "@babel/types" "^7.20.7" +"@types/bin-pack@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/bin-pack/-/bin-pack-1.0.3.tgz#311f0f44baeb2a9f5c9889ccceb33d6a442bcd24" + integrity sha512-FhdqIms08QvRuPvKiBW5Xpbq5dpMtmM4sOzvqMtaudftU4hCKpV3u6TRmGwMC1l6O324uXlwlrZWZnT7tBuh/w== + "@types/brotli@^1.3.0": version "1.3.4" resolved "https://registry.yarnpkg.com/@types/brotli/-/brotli-1.3.4.tgz#3eefc5493218a99141771f351142dd640efde5d8" @@ -4845,6 +4850,11 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== +"@types/ndarray@^1.0.11": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@types/ndarray/-/ndarray-1.0.14.tgz#96b28c09a3587a76de380243f87bb7a2d63b4b23" + integrity sha512-oANmFZMnFQvb219SSBIhI1Ih/r4CvHDOzkWyJS/XRqkMrGH5/kaPSA1hQhdIBzouaE+5KpE/f5ylI9cujmckQg== + "@types/node@*", "@types/node@>= 8": version "20.11.16" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.16.tgz#4411f79411514eb8e2926f036c86c9f0e4ec6708" @@ -5860,6 +5870,32 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +bare-events@^2.0.0, bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + +bare-fs@^2.1.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.2.3.tgz#34f8b81b8c79de7ef043383c05e57d4a10392a68" + integrity sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw== + dependencies: + bare-events "^2.0.0" + bare-path "^2.0.0" + streamx "^2.13.0" + +bare-os@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.2.1.tgz#c94a258c7a408ca6766399e44675136c0964913d" + integrity sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.1.tgz#111db5bf2db0aed40081aa4ba38b8dfc2bb782eb" + integrity sha512-OHM+iwRDRMDBsSW7kl3dO62JyHdBKO3B25FB9vNQBPcGHMo4+eA8Yj41Lfbk3pS/seDY+siNge0LdRTulAau/A== + dependencies: + bare-os "^2.1.0" + base64-js@^1.1.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -5895,6 +5931,11 @@ before-after-hook@^2.0.0, before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== +bin-pack@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bin-pack/-/bin-pack-1.0.2.tgz#c2a014edbf0bed70a3292062ed46577b96120679" + integrity sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -7071,6 +7112,13 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cwise-compiler@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" + integrity sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ== + dependencies: + uniq "^1.0.0" + cyclist@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3" @@ -7383,6 +7431,14 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" +datauri@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/datauri/-/datauri-4.1.0.tgz#19e6e4fadc38ff8cea724d8ff59dcaad832520e4" + integrity sha512-y17kh32+I82G+ED9MNWFkZiP/Cq/vO1hN9+tSZsT9C9qn3NrvcBnh7crSepg0AQPge1hXx2Ca44s1FRdv0gFWA== + dependencies: + image-size "1.0.0" + mimer "^2.0.2" + dateformat@^3.0.0, dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -7644,6 +7700,11 @@ detect-libc@^2.0.0: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== +detect-libc@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -9806,6 +9867,13 @@ ignore@^5.0.4, ignore@^5.2.0, ignore@^5.2.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== +image-size@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.0.tgz#58b31fe4743b1cec0a0ac26f5c914d3c5b2f0750" + integrity sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw== + dependencies: + queue "6.0.2" + image-size@^0.7.4: version "0.7.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.7.5.tgz#269f357cf5797cb44683dfa99790e54c705ead04" @@ -9981,6 +10049,11 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +iota-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" + integrity sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA== + ip@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -10072,7 +10145,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5, is-buffer@~1.1.6: +is-buffer@^1.0.2, is-buffer@^1.1.5, is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -11912,6 +11985,11 @@ mime-types@^2.1.12, mime-types@~2.1.19: dependencies: mime-db "1.52.0" +mimer@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mimer/-/mimer-2.0.2.tgz#941da26070e80bb485aed8a1ef4a5a325cbbfa96" + integrity sha512-izxvjsB7Ur5HrTbPu6VKTrzxSMBFBqyZQc6dWlZNQ4/wAvf886fD4lrjtFd8IQ8/WmZKdxKjUtqFFNaj3hQ52g== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -12320,6 +12398,31 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +ndarray-ops@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ndarray-ops/-/ndarray-ops-1.2.2.tgz#59e88d2c32a7eebcb1bc690fae141579557a614e" + integrity sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw== + dependencies: + cwise-compiler "^1.0.0" + +ndarray-pixels@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ndarray-pixels/-/ndarray-pixels-3.1.0.tgz#0e8ab0f0c04adab2f50f62f4a70442ba0c103d1b" + integrity sha512-icw7L/kbxlHVoBgFWc0fCl1sYcatYSoZrAudD6KiQ1WXy84hRXIfqel5CLkh/SeLhb02Q2NW1ud9lE5G84V0zQ== + dependencies: + "@types/ndarray" "^1.0.11" + ndarray "^1.0.19" + ndarray-ops "^1.2.2" + sharp "^0.32.6" + +ndarray@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" + integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== + dependencies: + iota-array "^1.0.0" + is-buffer "^1.0.2" + negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -12398,6 +12501,11 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-fetch-npm@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" @@ -13954,6 +14062,13 @@ queue-tick@^1.0.1: resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -14836,6 +14951,20 @@ shallowequal@1.1.0, shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +sharp@^0.32.6: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== + dependencies: + color "^4.2.3" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.4" + simple-get "^4.0.1" + tar-fs "^3.0.4" + tunnel-agent "^0.6.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -14912,7 +15041,7 @@ simple-concat@^1.0.0: resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^4.0.0: +simple-get@^4.0.0, simple-get@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== @@ -15251,6 +15380,16 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== +streamx@^2.13.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" + streamx@^2.15.0: version "2.15.6" resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.6.tgz#28bf36997ebc7bf6c08f9eba958735231b833887" @@ -15653,6 +15792,17 @@ tar-fs@^2.0.0: pump "^3.0.0" tar-stream "^2.1.4" +tar-fs@^3.0.4: + version "3.0.5" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.5.tgz#f954d77767e4e6edf973384e1eb95f8f81d64ed9" + integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== + dependencies: + pump "^3.0.0" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" + tar-stream@^2.1.4, tar-stream@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" @@ -16238,6 +16388,11 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +uniq@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"