Compare commits

..

1 Commits

Author SHA1 Message Date
jywarren
fd82180f63 grunt built dist files 2022-01-15 18:58:05 +00:00
14 changed files with 192412 additions and 7339 deletions

View File

@@ -13,27 +13,26 @@ Discuss with @publiclab/is-maintainers if anything is ambiguous!
<!-- NOTE: Change v0.0.0 to the appropriate release version -->
* [x] open an issue using the "release" template with this checklist with title `Checklist and coordination for v0.0.0 major/minor/patch release` (see [semantic versioning](https://docs.npmjs.com/about-semantic-versioning/))
* [ ] create a release draft in https://github.com/publiclab/image-sequencer/releases
* [ ] auto-compile release notes and copy below from corresponding release draft
* [ ] create a release [project](https://github.com/publiclab/image-sequencer/projects) from [this template](https://github.com/publiclab/image-sequencer/projects/5). You can copy a project from its menu.
* [ ] compile release notes below from corresponding [release project](https://github.com/publiclab/image-sequencer/projects).
* [ ] open a pull request with updated version numbers
* [ ] update version number in `package.json` (ex #1695)
* [ ] update version number in `examples/sw.js` (ex #1734)
* [ ] update version number in `examples/sw.js` (ex #1734) and `package.json` (ex #1695)
* [ ] update version number in `package.json`
* [ ] run `npm install` to update `package-lock.json` (from recent node version - 16 at time of writing, in GitPod should work)
* [ ] check in `package-lock.json`
* [ ] finalize and merge to `main` branch (freeze merges to `main` branch until next step)
Now, move to `stable` branch:
* [ ] force push from `main` to `stable`
* [ ] then in `stable` branch, compile `dist/` files with `grunt build`
* [ ] add `dist/` files with `git add -f dist/*` and commit them to `stable` branch
* [ ] publish `stable` branch to `npm` with `npm publish` (logging in first as necessary)
* [ ] push local `stable` branch up to origin github.com/publiclab/image-sequencer.git with `git push`
* [ ] then in `stable` branch, compile `/dist/` files with `grunt build`
* [ ] add `/dist/` files with `git add -f /dist/*` and commit them to `stable` branch
* [ ] run `npm publish`
Draft a release:
* [ ] [create a release on GitHub](https://github.com/publiclab/image-sequencer/releases) and reconcile with features description + release notes from below
* [ ] [create a release on GitHub](https://github.com/publiclab/image-sequencer/releases) and use features description + release notes from below
* [ ] tag version number branch (i.e. `v0.0.0`) based on `stable` or choose `stable`
* [ ] publish tagged branch to `npm` with `npm publish` (logging in first as necessary)
* [ ] publish to live Github pages [demo](https://sequencer.publiclab.org) (with [bash script](https://github.com/publiclab/image-sequencer/pull/1703) from `/scripts/update-demo`) (from within GitPod works well)
* [ ] move anything necessary to next release project, i.e. <!-- Update this link -->https://github.com/publiclab/image-sequencer/projects/[insert project number]
* [ ] close this issue!

View File

@@ -1,8 +1,6 @@
<!--- (Replace `0000` with the Issue Number below) --->
Fixes #0000
Fixes #0000 (<=== Replace `0000` with the Issue Number)
<!---Make sure these boxes are checked before your pull request (PR) is ready to be reviewed and merged. Thanks!--->
Make sure these boxes are checked before your pull request (PR) is ready to be reviewed and merged. Thanks!
* [ ] tests pass -- look for a green checkbox ✔️ a few minutes after opening your PR -- or run tests locally with `npm run test-all`
* [ ] code is in uniquely-named feature branch and has no merge conflicts
@@ -10,10 +8,10 @@ Fixes #0000
* [ ] ask `@publiclab/is-reviewers` for help, in a comment below
* [ ] at least 2 reviews required for getting pull request merged
* [ ] Insert-step functionality is working correct as expected.
<!--- We're happy to help you get this ready -- don't be afraid to ask for help, and **don't be discouraged** if your tests fail at first!--->
> We're happy to help you get this ready -- don't be afraid to ask for help, and **don't be discouraged** if your tests fail at first!
<!---If tests do fail, click on the red `X` to learn why by reading the logs.--->
If tests do fail, click on the red `X` to learn why by reading the logs.
<!---Please be sure you've reviewed our contribution guidelines at https://publiclab.org/contributing-to-public-lab-software--->
<!---Please make sure to get at least two reviews before asking for merging the PR as that would make the PR more reliable on our part
Thanks!--->
Please be sure you've reviewed our contribution guidelines at https://publiclab.org/contributing-to-public-lab-software
Please make sure to get at least two reviews before asking for merging the PR as that would make the PR more reliable on our part
Thanks!

View File

@@ -8,7 +8,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -33,7 +33,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -58,7 +58,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -83,7 +83,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -109,7 +109,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -134,7 +134,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -159,7 +159,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
@@ -184,7 +184,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '14'
node-version: '12'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2

View File

@@ -118,9 +118,9 @@ function ModuleName(options,UI) {
];
```
### Running a browser-only module in node
If your module has browser specific code or you are consuming a dependency which does the `gl-context` API. We designed this api especially for web-based modules but since it runs the module in a headless browser, it supports all browser specific APIs.
If your module has browser specific code or you are consuming a dependency which does the `gl-context` api. We designed this api especially for webl based modules but since it runs the module in a headless browser, ti supports all browser specific APIs.
The API must be used in the following format
The api must be used in the following format
```js
var step = this;
@@ -197,7 +197,7 @@ There are four events in all:
* `UI.onComplete(options.step)` must be emitted whenever the output of a draw call
is ready. An argument, that is the DataURL of the output image must be passed in.
* `UI.onRemove(options.step)` is emitted automatically and the module should not emit it.
* `UI.notify(msg,id)` must be emitted when a notification has to be produced.
* `UI.notify(msg,id)` must be emmited when a notification has to be produced.
### Name and description
@@ -244,7 +244,7 @@ Also, A module may have output values. These must be defined as shown above.
### Progress reporting
The default "loading spinner" can be optionally overridden with a custom progress object to draw progress on the CLI, following is a basic module format for the same:
The default "loading spinner" can be optionally overriden with a custom progress object to draw progress on the CLI, following is a basic module format for the same:
```js
module.exports = function ModuleName(options,UI) {
@@ -279,7 +279,7 @@ module.exports = function ModuleName(options,UI) {
}
```
The `progressObj` parameter of `draw()` is not consumed unless a custom progress bar needs to be drawn, for which this default spinner should be stopped with `progressObj.stop()` and image-sequencer is informed about the custom progress bar with `progressObj.overrideFlag = true;` following which this object can be overridden with custom progress object.
The `progressObj` parameter of `draw()` is not consumed unless a custom progress bar needs to be drawn, for which this default spinner should be stopped with `progressObj.stop()` and image-sequencer is informed about the custom progress bar with `progressObj.overrideFlag = true;` following which this object can be overriden with custom progress object.
### Module example
@@ -292,7 +292,7 @@ For help integrating, please open an issue.
## Meta Module
IMAGE SEQUENCER supports "meta modules" -- modules made of other modules. The syntax and structure of these meta modules is very similar to standard modules. Sequencer can also generate meta modules dynamically with the function `createMetaModule` which can be called in the following ways
IMAGE SEQUENCER supports "meta modules" -- modules made of other modules. The syntax and structure of these meta modules is very similar to standard modules. Sequencer can also genarate meta modules dynamically with the function `createMetaModule` which can be called in the following ways
```js
@@ -387,7 +387,7 @@ npx eslint <file path> --fix
```
Be sure to not include the angular brackets(<>).
Husky ensures automation of the above steps with git-hooks(eg. git add, git commit..). However we don't want to check and fix changes of the entire codebase with each commit and that the fixes made by eslint appear unstaged and require us to commit them again and that is where lint-staged helps.
Husky ensures automation of the above steps with git-hooks(eg. git add,git commit..). However we don't want to check and fix changes of the entire codebase with each commit and that the fixes made by eslint appear unstaged and require us to commit them again and that is where lint-staged helps.
If we want `husky` to not verify the commit and push it anyway, use `git commit -m "message" --no-verify.`
@@ -479,13 +479,3 @@ The following shell scripts are present in the `scripts/` directory.
This script is safe to use directly because it separately clones the repo in a temporary directory.
Arguments: None since it is a an *interactive* script, ie it asks the user for input.
****
# Comments
1. Methods must be described using [JSDoc comments](https://devdocs.io/jsdoc/)
2. Misc code comments should be inline unless it is a long sentence.
3. No use of continuous tenses, no pronouns.
4. No redundant comments.
5. Each comment should start with an uppercase letter and end with a full stop.

50049
dist/image-sequencer-ui.js vendored Normal file

File diff suppressed because it is too large Load Diff

1
dist/image-sequencer-ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

133981
dist/image-sequencer.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/image-sequencer.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -407,7 +407,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
*/
function updateDimensions(step){
_sequencer.getImageDimensions(step.imgElement.src, function (dim) {
step.ui.querySelector('.' + step.name).attributes['data-original-title'].value = `<div style="text-align: center"><p>Image Width: ${dim.width} px<br>Image Height: ${dim.height} px</br>${isGIF(step.output) ? `Frames: ${dim.frames}` : ''}</div>`;
step.ui.querySelector('.' + step.name).attributes['data-original-title'].value = `<div style="text-align: center"><p>Image Width: ${dim.width}<br>Image Height: ${dim.height}</br>${isGIF(step.output) ? `Frames: ${dim.frames}` : ''}</div>`;
});
}

View File

@@ -1,4 +1,4 @@
const staticCacheName = 'image-sequencer-static-v3.7.2';
const staticCacheName = 'image-sequencer-static-v3.7.1';
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open(staticCacheName).then(function(cache) {

15575
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "image-sequencer",
"version": "3.7.2",
"version": "3.7.1",
"description": "A modular JavaScript image manipulation library modeled on a storyboard.",
"main": "src/ImageSequencer.js",
"scripts": {
@@ -41,29 +41,30 @@
"bootstrap": "^3.4.1",
"bootstrap-colorpicker": "^2.5.3",
"buffer": "~6.0.2",
"commander": "^9.0.0",
"commander": "^8.0.0",
"compressorjs": "^1.0.5",
"data-uri-to-buffer": "^4.0.1",
"data-uri-to-buffer": "^3.0.0",
"downloadjs": "^1.4.7",
"eslint": "^8.0.0",
"expr-eval": "^2.0.2",
"fisheyegl": "^0.1.2",
"font-awesome": "~4.7.0",
"geotiff": "^1.0.0-beta.6",
"get-pixels": "~3.3.0",
"gifshot": "^0.4.5",
"glfx": "0.0.4",
"gpu.js": "^2.3.1",
"imgareaselect": "git+https://git@github.com/jywarren/imgareaselect.git#v1.0.0-rc.2",
"image-sequencer-invert": "^1.0.0",
"imagejs": "git+https://git@github.com/glennjones/imagejs.git#1119a31e6eabc87563bc573cd62c11bd487ce8a9",
"imagejs": "0.0.9",
"imagemin": "^7.0.1",
"imagemin-jpegtran": "^7.0.0",
"imagemin-pngquant": "^9.0.1",
"istanbul": "^0.4.5",
"jasmine": "^4.0.2",
"jpegtran-bin": "^7.0.0",
"jasmine": "^3.4.0",
"jpegtran-bin": "^6.0.1",
"jquery": "^3.3.1",
"jsdom": "^20.0.0",
"jsdom": "^19.0.0",
"jspdf": "^2.1.1",
"jsqr": "^1.1.1",
"lodash": "^4.17.11",
@@ -96,21 +97,21 @@
"grunt-contrib-uglify-es": "^3.3.0",
"grunt-contrib-watch": "^1.1.0",
"grunt-text-replace": "^0.4.0",
"husky": "^8.0.1",
"husky": "^7.0.0",
"image-filter-core": "~2.0.2",
"image-filter-threshold": "~2.0.1",
"jasmine-core": "^4.0.0",
"jasmine-core": "^3.3.0",
"jasmine-jquery": "^2.1.1",
"jasmine-spec-reporter": "^7.0.0",
"jest": "^29.0.0",
"jest": "^27.0.1",
"jest-puppeteer": "^6.0.0",
"lint-staged": "^13.0.0",
"lint-staged": "^12.1.3",
"looks-same": "^7.0.0",
"matchdep": "^2.0.0",
"resemblejs": "^4.0.1",
"resemblejs": "^3.2.5",
"tap-spec": "^5.0.0",
"tape": "^5.2.0",
"tape-run": "^10.0.0",
"tape-run": "^9.0.0",
"uglify-es": "^3.3.7"
},
"husky": {

View File

@@ -10,15 +10,9 @@ module.exports = function BlobAnalysis(options, UI){
var step = this;
function extraManipulation(pixels, setRenderState, generateOutput){
setRenderState(false);
if (!options.inBrowser) {
require('../_nomodule/gl-context')(input, callback, step, options);
} else{
pixels = require('./BlobAnalysis')(pixels);
setRenderState(true);
generateOutput();
}
function extraManipulation(pixels){
pixels = require('./BlobAnalysis')(pixels);
return pixels;
}

View File

@@ -15,22 +15,20 @@ module.exports = function runInBrowserContext(input, callback, step, options) {
is not available otherwise */
page.goto('https://google.com').then(() => {
page.addScriptTag({ path: require('path').join(__dirname, '../../../dist/image-sequencer.js') }).then(() => {
page.addScriptTag({path: require('path').join(__dirname, '../../../node_modules/opencv.js/opencv.js')}).then(() => {
page.evaluate((options) => {
return new Promise((resolve, reject) => {
var sequencer = ImageSequencer();
sequencer.loadImage(options.input.src);
sequencer.addSteps(options.modOptions.step, options.modOptions);
sequencer.run(function cb(out) {
resolve(sequencer.steps[1].output.src);
});
});
}, obj).then(el => {
browser.close().then(() => {
step.output = { src: el, format: input.format };
callback();
page.evaluate((options) => {
return new Promise((resolve, reject) => {
var sequencer = ImageSequencer();
sequencer.loadImage(options.input.src);
sequencer.addSteps(options.modOptions.step, options.modOptions);
sequencer.run(function cb(out) {
resolve(sequencer.steps[1].output.src);
});
});
}, obj).then(el => {
browser.close().then(() => {
step.output = { src: el, format: input.format };
callback();
});
});
});
});