├── sesi-7 ├── node_modules │ ├── nopt │ │ ├── .npmignore │ │ ├── package.json │ │ ├── examples │ │ │ └── my-program.js │ │ ├── LICENSE │ │ └── bin │ │ │ └── nopt.js │ ├── chai │ │ ├── index.js │ │ ├── .npmignore │ │ ├── lib │ │ │ └── chai │ │ │ │ ├── utils │ │ │ │ ├── getActual.js │ │ │ │ ├── getName.js │ │ │ │ ├── test.js │ │ │ │ ├── getEnumerableProperties.js │ │ │ │ ├── flag.js │ │ │ │ ├── getProperties.js │ │ │ │ ├── getPathValue.js │ │ │ │ ├── addMethod.js │ │ │ │ ├── expectTypes.js │ │ │ │ ├── objDisplay.js │ │ │ │ ├── addProperty.js │ │ │ │ ├── transferFlags.js │ │ │ │ └── getMessage.js │ │ │ │ └── interface │ │ │ │ └── expect.js │ │ ├── bower.json │ │ ├── karma.conf.js │ │ ├── karma.sauce.js │ │ └── package.json │ ├── debug │ │ ├── node.js │ │ ├── src │ │ │ └── index.js │ │ ├── LICENSE │ │ └── package.json │ ├── nodemon │ │ ├── .releaserc │ │ ├── lib │ │ │ ├── index.js │ │ │ ├── monitor │ │ │ │ ├── index.js │ │ │ │ └── signals.js │ │ │ ├── utils │ │ │ │ ├── colour.js │ │ │ │ ├── clone.js │ │ │ │ ├── bus.js │ │ │ │ └── merge.js │ │ │ ├── help │ │ │ │ └── index.js │ │ │ ├── config │ │ │ │ ├── defaults.js │ │ │ │ └── command.js │ │ │ ├── rules │ │ │ │ ├── parse.js │ │ │ │ └── index.js │ │ │ └── cli │ │ │ │ └── index.js │ │ ├── commitlint.config.js │ │ ├── doc │ │ │ └── cli │ │ │ │ ├── usage.txt │ │ │ │ ├── authors.txt │ │ │ │ ├── topics.txt │ │ │ │ ├── logo.txt │ │ │ │ ├── whoami.txt │ │ │ │ ├── config.txt │ │ │ │ └── help.txt │ │ ├── bin │ │ │ ├── windows-kill.exe │ │ │ ├── nodemon.js │ │ │ └── postinstall.js │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── .eslintrc.json │ │ └── LICENSE │ ├── deep-eql │ │ ├── index.js │ │ ├── node_modules │ │ │ └── type-detect │ │ │ │ ├── index.js │ │ │ │ ├── .npmignore │ │ │ │ ├── History.md │ │ │ │ └── package.json │ │ ├── .npmignore │ │ ├── karma.conf.js │ │ ├── History.md │ │ └── package.json │ ├── type-detect │ │ ├── index.js │ │ ├── .npmignore │ │ ├── package.json │ │ └── ReleaseNotes.md │ ├── concat-map │ │ ├── .travis.yml │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── test │ │ │ └── map.js │ │ └── README.markdown │ ├── binary-extensions │ │ ├── index.js │ │ ├── binary-extensions.json.d.ts │ │ ├── index.d.ts │ │ ├── package.json │ │ ├── readme.md │ │ └── license │ ├── picomatch │ │ ├── index.js │ │ └── LICENSE │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── LICENSE.md │ │ ├── package.json │ │ └── index.js │ ├── supports-color │ │ ├── browser.js │ │ ├── package.json │ │ └── license │ ├── pstree.remy │ │ ├── .travis.yml │ │ ├── tests │ │ │ ├── fixtures │ │ │ │ └── index.js │ │ │ └── index.test.js │ │ ├── README.md │ │ ├── package.json │ │ ├── lib │ │ │ ├── index.js │ │ │ ├── tree.js │ │ │ └── utils.js │ │ └── LICENSE │ ├── simple-update-notifier │ │ ├── node_modules │ │ │ ├── semver │ │ │ │ ├── functions │ │ │ │ │ ├── eq.js │ │ │ │ │ ├── gt.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── gte.js │ │ │ │ │ ├── lte.js │ │ │ │ │ ├── neq.js │ │ │ │ │ ├── major.js │ │ │ │ │ ├── minor.js │ │ │ │ │ ├── patch.js │ │ │ │ │ ├── rcompare.js │ │ │ │ │ ├── compare-loose.js │ │ │ │ │ ├── rsort.js │ │ │ │ │ ├── sort.js │ │ │ │ │ ├── compare.js │ │ │ │ │ ├── valid.js │ │ │ │ │ ├── clean.js │ │ │ │ │ ├── prerelease.js │ │ │ │ │ ├── satisfies.js │ │ │ │ │ ├── compare-build.js │ │ │ │ │ ├── inc.js │ │ │ │ │ ├── diff.js │ │ │ │ │ ├── parse.js │ │ │ │ │ └── cmp.js │ │ │ │ ├── classes │ │ │ │ │ └── index.js │ │ │ │ ├── ranges │ │ │ │ │ ├── ltr.js │ │ │ │ │ ├── gtr.js │ │ │ │ │ ├── intersects.js │ │ │ │ │ ├── to-comparators.js │ │ │ │ │ ├── valid.js │ │ │ │ │ ├── min-satisfying.js │ │ │ │ │ └── max-satisfying.js │ │ │ │ ├── internal │ │ │ │ │ ├── debug.js │ │ │ │ │ ├── identifiers.js │ │ │ │ │ └── constants.js │ │ │ │ ├── range.bnf │ │ │ │ ├── LICENSE │ │ │ │ └── package.json │ │ │ └── .bin │ │ │ │ ├── semver │ │ │ │ ├── semver.cmd │ │ │ │ └── semver.ps1 │ │ ├── src │ │ │ ├── types.ts │ │ │ ├── cache.spec.ts │ │ │ ├── borderedText.ts │ │ │ ├── isNpmOrYarn.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── hasNewVersion.ts │ │ │ ├── getDistVersion.ts │ │ │ ├── getDistVersion.spec.ts │ │ │ └── cache.ts │ │ ├── build │ │ │ └── index.d.ts │ │ └── LICENSE │ ├── rupiah-format │ │ ├── .idea │ │ │ ├── watcherTasks.xml │ │ │ ├── encodings.xml │ │ │ ├── misc.xml │ │ │ ├── vcs.xml │ │ │ ├── jsLibraryMappings.xml │ │ │ ├── modules.xml │ │ │ └── rupiah-format.iml │ │ ├── test │ │ │ └── index.js │ │ ├── index.js │ │ ├── README.md │ │ ├── .npmignore │ │ ├── package.json │ │ └── LICENSE │ ├── is-binary-path │ │ ├── index.js │ │ ├── index.d.ts │ │ ├── package.json │ │ ├── readme.md │ │ └── license │ ├── undefsafe │ │ ├── example.js │ │ ├── .jshintrc │ │ ├── .travis.yml │ │ ├── .jscsrc │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── release.yml │ │ ├── package.json │ │ └── LICENSE │ ├── assertion-error │ │ ├── index.d.ts │ │ ├── History.md │ │ └── package.json │ ├── .bin │ │ ├── nopt │ │ ├── semver │ │ ├── nodemon │ │ ├── nodetouch │ │ ├── nopt.cmd │ │ ├── semver.cmd │ │ ├── nodemon.cmd │ │ ├── nodetouch.cmd │ │ ├── nopt.ps1 │ │ ├── semver.ps1 │ │ ├── nodemon.ps1 │ │ └── nodetouch.ps1 │ ├── has-flag │ │ ├── index.js │ │ ├── package.json │ │ ├── license │ │ └── readme.md │ ├── is-number │ │ ├── index.js │ │ └── LICENSE │ ├── is-extglob │ │ ├── index.js │ │ ├── LICENSE │ │ └── package.json │ ├── abbrev │ │ ├── README.md │ │ └── package.json │ ├── ignore-by-default │ │ ├── index.js │ │ ├── README.md │ │ ├── LICENSE │ │ └── package.json │ ├── semver │ │ ├── range.bnf │ │ ├── package.json │ │ ├── LICENSE │ │ └── CHANGELOG.md │ ├── anymatch │ │ ├── index.d.ts │ │ ├── LICENSE │ │ └── package.json │ ├── touch │ │ ├── package.json │ │ ├── LICENSE │ │ └── README.md │ ├── glob-parent │ │ ├── LICENSE │ │ ├── index.js │ │ └── package.json │ ├── minimatch │ │ ├── LICENSE │ │ └── package.json │ ├── braces │ │ ├── lib │ │ │ ├── stringify.js │ │ │ └── compile.js │ │ └── LICENSE │ ├── ms │ │ ├── package.json │ │ └── license.md │ ├── is-glob │ │ └── LICENSE │ ├── fill-range │ │ └── LICENSE │ ├── normalize-path │ │ ├── LICENSE │ │ └── index.js │ ├── to-regex-range │ │ └── LICENSE │ ├── brace-expansion │ │ ├── LICENSE │ │ └── package.json │ ├── readdirp │ │ ├── LICENSE │ │ └── index.d.ts │ └── chokidar │ │ └── LICENSE ├── sisauang.txt ├── package.json └── index.js ├── sesi-1 ├── youtube.png ├── data.js ├── contact.html ├── about.html └── index.html ├── sesi-3 ├── gambar1.jpg └── style.css ├── sesi-4 ├── assets │ └── images │ │ ├── off.gif │ │ ├── on.gif │ │ └── society │ │ ├── kominfo2.jpg │ │ ├── society5_0e-1.jpg │ │ ├── blokir kominfo1.webp │ │ └── kominfo blokir google programmer.jpg ├── ALESIS NEEDED.txt ├── TUGAS-SESI-4-SEMESTER-1-CUYUNIVERSITY.txt └── saklar.js ├── cuygames └── cuygioh │ ├── assets │ └── images │ │ └── cards │ │ ├── yt.png │ │ ├── Abaki.jpg │ │ ├── Korobokuri.jpg │ │ └── Dark-Magician.jpg │ ├── cuygioh.js │ ├── index.html │ └── Classes │ └── Card.js ├── README.md ├── sesi-8x ├── index.js └── index.html └── sesi-6 └── style.css /sesi-7/node_modules/nopt/.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/chai'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/debug/node.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/node'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/.releaserc: -------------------------------------------------------------------------------- 1 | { 2 | "branches": ["main"] 3 | } 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./nodemon'); -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/eql'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/type-detect/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/type'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.4 4 | - 0.6 5 | -------------------------------------------------------------------------------- /sesi-1/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-1/youtube.png -------------------------------------------------------------------------------- /sesi-3/gambar1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-3/gambar1.jpg -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./binary-extensions.json'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/node_modules/type-detect/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./lib/type'); 2 | -------------------------------------------------------------------------------- /sesi-7/node_modules/picomatch/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = require('./lib/picomatch'); 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/balanced-match/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | tidelift: "npm/balanced-match" 2 | patreon: juliangruber 3 | -------------------------------------------------------------------------------- /sesi-4/assets/images/off.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/off.gif -------------------------------------------------------------------------------- /sesi-4/assets/images/on.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/on.gif -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'], 3 | }; 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/supports-color/browser.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | stdout: false, 4 | stderr: false 5 | }; 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/doc/cli/usage.txt: -------------------------------------------------------------------------------- 1 | Usage: nodemon [nodemon options] [script.js] [args] 2 | 3 | See "nodemon --help" for more. 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/monitor/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: require('./run'), 3 | watch: require('./watch').watch, 4 | }; 5 | -------------------------------------------------------------------------------- /sesi-4/assets/images/society/kominfo2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/society/kominfo2.jpg -------------------------------------------------------------------------------- /cuygames/cuygioh/assets/images/cards/yt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/cuygames/cuygioh/assets/images/cards/yt.png -------------------------------------------------------------------------------- /cuygames/cuygioh/assets/images/cards/Abaki.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/cuygames/cuygioh/assets/images/cards/Abaki.jpg -------------------------------------------------------------------------------- /sesi-4/assets/images/society/society5_0e-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/society/society5_0e-1.jpg -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/binary-extensions.json.d.ts: -------------------------------------------------------------------------------- 1 | declare const binaryExtensionsJson: readonly string[]; 2 | 3 | export = binaryExtensionsJson; 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/bin/windows-kill.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-7/node_modules/nodemon/bin/windows-kill.exe -------------------------------------------------------------------------------- /cuygames/cuygioh/assets/images/cards/Korobokuri.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/cuygames/cuygioh/assets/images/cards/Korobokuri.jpg -------------------------------------------------------------------------------- /sesi-4/assets/images/society/blokir kominfo1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/society/blokir kominfo1.webp -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '8' 9 | -------------------------------------------------------------------------------- /cuygames/cuygioh/assets/images/cards/Dark-Magician.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/cuygames/cuygioh/assets/images/cards/Dark-Magician.jpg -------------------------------------------------------------------------------- /sesi-4/assets/images/society/kominfo blokir google programmer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/deaafrizal/cuyuniversity-semester-1/HEAD/sesi-4/assets/images/society/kominfo blokir google programmer.jpg -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/.npmignore: -------------------------------------------------------------------------------- 1 | docs/ 2 | test/ 3 | build/ 4 | components/ 5 | support/ 6 | coverage.html 7 | component.json 8 | lib-cov 9 | .travis.yml 10 | Makefile 11 | *.swp 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/eq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const eq = (a, b, loose) => compare(a, b, loose) === 0 3 | module.exports = eq 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/gt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gt = (a, b, loose) => compare(a, b, loose) > 0 3 | module.exports = gt 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/lt.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lt = (a, b, loose) => compare(a, b, loose) < 0 3 | module.exports = lt 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/type-detect/.npmignore: -------------------------------------------------------------------------------- 1 | docs/ 2 | test/ 3 | build/ 4 | components/ 5 | support/ 6 | coverage.html 7 | component.json 8 | lib-cov 9 | .travis.yml 10 | Makefile 11 | *.swp 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/watcherTasks.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/gte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const gte = (a, b, loose) => compare(a, b, loose) >= 0 3 | module.exports = gte 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/lte.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const lte = (a, b, loose) => compare(a, b, loose) <= 0 3 | module.exports = lte 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/neq.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const neq = (a, b, loose) => compare(a, b, loose) !== 0 3 | module.exports = neq 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/major.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const major = (a, loose) => new SemVer(a, loose).major 3 | module.exports = major 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/minor.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const minor = (a, loose) => new SemVer(a, loose).minor 3 | module.exports = minor 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/patch.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const patch = (a, loose) => new SemVer(a, loose).patch 3 | module.exports = patch 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/rcompare.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const rcompare = (a, b, loose) => compare(b, a, loose) 3 | module.exports = rcompare 4 | -------------------------------------------------------------------------------- /sesi-7/sisauang.txt: -------------------------------------------------------------------------------- 1 | Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00Rp. 350.000,00 -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/compare-loose.js: -------------------------------------------------------------------------------- 1 | const compare = require('./compare') 2 | const compareLoose = (a, b) => compare(a, b, true) 3 | module.exports = compareLoose 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/node_modules/type-detect/.npmignore: -------------------------------------------------------------------------------- 1 | docs/ 2 | test/ 3 | build/ 4 | components/ 5 | support/ 6 | coverage.html 7 | component.json 8 | lib-cov 9 | .travis.yml 10 | Makefile 11 | *.swp 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/classes/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SemVer: require('./semver.js'), 3 | Range: require('./range.js'), 4 | Comparator: require('./comparator.js') 5 | } 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/.npmignore: -------------------------------------------------------------------------------- 1 | .git* 2 | docs/ 3 | test/ 4 | support/ 5 | component.json 6 | components/ 7 | build/ 8 | lib-cov/ 9 | coverage/ 10 | .travis.yml 11 | .mailmap 12 | Makefile 13 | *.swp 14 | .DS_Store 15 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/example/map.js: -------------------------------------------------------------------------------- 1 | var concatMap = require('../'); 2 | var xs = [ 1, 2, 3, 4, 5, 6 ]; 3 | var ys = concatMap(xs, function (x) { 4 | return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; 5 | }); 6 | console.dir(ys); 7 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/rsort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) 3 | module.exports = rsort 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/sort.js: -------------------------------------------------------------------------------- 1 | const compareBuild = require('./compare-build') 2 | const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) 3 | module.exports = sort 4 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesi-4/ALESIS NEEDED.txt: -------------------------------------------------------------------------------- 1 | out ke amply: 1/4 TRS JACK mono (R/L) 2pcs atau 1 pcs (L/mono) colok ke JACK 1/4 TRS STEREO CORT AMPLI 2 | headphone output: di sebelah kiri module (untuk monitor langsung suara drum 3 | 4 | AUDIO IN MUSIC: 1/8 atau 3.5mm JACK -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/compare.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compare = (a, b, loose) => 3 | new SemVer(a, loose).compare(new SemVer(b, loose)) 4 | 5 | module.exports = compare 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/valid.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const valid = (version, options) => { 3 | const v = parse(version, options) 4 | return v ? v.version : null 5 | } 6 | module.exports = valid 7 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface IUpdate { 2 | pkg: { name: string; version: string }; 3 | updateCheckInterval?: number; 4 | shouldNotifyInNpmScript?: boolean; 5 | distTag?: string; 6 | alwaysRun?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

SEMESTER 1 🐱‍💻, CUY UNIVERSITY TEKNIK INFORMATIKA

-------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/clean.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const clean = (version, options) => { 3 | const s = parse(version.trim().replace(/^[=v]+/, ''), options) 4 | return s ? s.version : null 5 | } 6 | module.exports = clean 7 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/ltr.js: -------------------------------------------------------------------------------- 1 | const outside = require('./outside') 2 | // Determine if version is less than all the versions possible in the range 3 | const ltr = (version, range, options) => outside(version, range, '<', options) 4 | module.exports = ltr 5 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-binary-path/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const binaryExtensions = require('binary-extensions'); 4 | 5 | const extensions = new Set(binaryExtensions); 6 | 7 | module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); 8 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/doc/cli/authors.txt: -------------------------------------------------------------------------------- 1 | 2 | Remy Sharp - author and maintainer 3 | https://github.com/remy 4 | https://twitter.com/rem 5 | 6 | Contributors: https://github.com/remy/nodemon/graphs/contributors ❤︎ 7 | 8 | Please help make nodemon better: https://github.com/remy/nodemon/ 9 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/gtr.js: -------------------------------------------------------------------------------- 1 | // Determine if version is greater than all the versions possible in the range. 2 | const outside = require('./outside') 3 | const gtr = (version, range, options) => outside(version, range, '>', options) 4 | module.exports = gtr 5 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/intersects.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const intersects = (r1, r2, options) => { 3 | r1 = new Range(r1, options) 4 | r2 = new Range(r2, options) 5 | return r1.intersects(r2) 6 | } 7 | module.exports = intersects 8 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/prerelease.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const prerelease = (version, options) => { 3 | const parsed = parse(version, options) 4 | return (parsed && parsed.prerelease.length) ? parsed.prerelease : null 5 | } 6 | module.exports = prerelease 7 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/internal/debug.js: -------------------------------------------------------------------------------- 1 | const debug = ( 2 | typeof process === 'object' && 3 | process.env && 4 | process.env.NODE_DEBUG && 5 | /\bsemver\b/i.test(process.env.NODE_DEBUG) 6 | ) ? (...args) => console.error('SEMVER', ...args) 7 | : () => {} 8 | 9 | module.exports = debug 10 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "camelcase": true, 4 | "curly": true, 5 | "devel": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "indent": 2, 9 | "noarg": true, 10 | "node": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "strict": false, 14 | "unused": true 15 | } 16 | 17 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/example.js: -------------------------------------------------------------------------------- 1 | var undefsafe = require('undefsafe'); 2 | 3 | var object = { 4 | a: { 5 | b: { 6 | c: 1, 7 | d: [1, 2, 3], 8 | e: 'remy' 9 | } 10 | } 11 | }; 12 | 13 | console.log(undefsafe(object, 'a.b.e')); // "remy" 14 | console.log(undefsafe(object, 'a.b.not.found')); // undefined 15 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": false, 3 | "camelcase": true, 4 | "curly": true, 5 | "devel": true, 6 | "eqeqeq": true, 7 | "forin": true, 8 | "indent": 2, 9 | "noarg": true, 10 | "node": true, 11 | "quotmark": "single", 12 | "undef": true, 13 | "strict": false, 14 | "unused": true 15 | } 16 | 17 | -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | List of binary file extensions. 3 | 4 | @example 5 | ``` 6 | import binaryExtensions = require('binary-extensions'); 7 | 8 | console.log(binaryExtensions); 9 | //=> ['3ds', '3g2', …] 10 | ``` 11 | */ 12 | declare const binaryExtensions: readonly string[]; 13 | 14 | export = binaryExtensions; 15 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/satisfies.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const satisfies = (version, range, options) => { 3 | try { 4 | range = new Range(range, options) 5 | } catch (er) { 6 | return false 7 | } 8 | return range.test(version) 9 | } 10 | module.exports = satisfies 11 | -------------------------------------------------------------------------------- /sesi-3/style.css: -------------------------------------------------------------------------------- 1 | .tanpa-bootstrap { 2 | border: none; 3 | padding: 20px; 4 | font-weight: 800; 5 | font-size: 3em; 6 | background-color: tomato; 7 | color: #333; 8 | cursor: pointer; 9 | } 10 | 11 | .tanpa-bootstrap:hover { 12 | background-color: aqua; 13 | color: black; 14 | transform: rotateY(2); 15 | transition: all .5s; 16 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/assertion-error/index.d.ts: -------------------------------------------------------------------------------- 1 | type AssertionError = Error & T & { 2 | showDiff: boolean; 3 | }; 4 | 5 | interface AssertionErrorConstructor { 6 | new(message: string, props?: T, ssf?: Function): AssertionError; 7 | } 8 | 9 | declare const AssertionError: AssertionErrorConstructor; 10 | 11 | export = AssertionError; 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/compare-build.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const compareBuild = (a, b, loose) => { 3 | const versionA = new SemVer(a, loose) 4 | const versionB = new SemVer(b, loose) 5 | return versionA.compare(versionB) || versionA.compareBuild(versionB) 6 | } 7 | module.exports = compareBuild 8 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/to-comparators.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | 3 | // Mostly just for testing and legacy API reasons 4 | const toComparators = (range, options) => 5 | new Range(range, options).set 6 | .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) 7 | 8 | module.exports = toComparators 9 | -------------------------------------------------------------------------------- /cuygames/cuygioh/cuygioh.js: -------------------------------------------------------------------------------- 1 | console.log('cuygioh running...') 2 | 3 | const dark_magician = new Card("Dark Magician"); 4 | dark_magician.attr = "test" 5 | const attr = dark_magician.attr; 6 | const name = dark_magician.name; 7 | 8 | console.log(name, attr); 9 | // card.name = "Dark Magician" 10 | // card.type = "Spellcaster" 11 | // card.atk = 2500 12 | // card.def = 2100 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nopt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nopt/bin/nopt.js" "$@" 10 | else 11 | exec node "$basedir/../nopt/bin/nopt.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/has-flag/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = (flag, argv) => { 3 | argv = argv || process.argv; 4 | const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); 5 | const pos = argv.indexOf(prefix + flag); 6 | const terminatorPos = argv.indexOf('--'); 7 | return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); 8 | }; 9 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/test/index.js: -------------------------------------------------------------------------------- 1 | const convertRupiah = require('../index') 2 | 3 | console.log(convertRupiah.convert(123)) 4 | console.log(convertRupiah.convert(12345)) 5 | console.log(convertRupiah.convert(123456)) 6 | console.log(convertRupiah.convert(1234567)) 7 | 8 | let number = 1000000 9 | let rupiah = convertRupiah.convert(number) 10 | 11 | console.log(rupiah) -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/doc/cli/topics.txt: -------------------------------------------------------------------------------- 1 | 2 | options .................. show all available nodemon options 3 | config ................... default config options using nodemon.json 4 | authors .................. contributors to this project 5 | logo ..................... <3 6 | whoami ................... I, AM, NODEMON \o/ 7 | 8 | Please support https://github.com/remy/nodemon/ 9 | -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/tests/fixtures/index.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | function run() { 3 | spawn( 4 | 'sh', 5 | ['-c', 'node -e "setInterval(() => console.log(`running`), 200)"'], 6 | { 7 | stdio: 'pipe', 8 | } 9 | ); 10 | } 11 | 12 | var runCallCount = process.argv[2] || 1; 13 | for (var i = 0; i < runCallCount; i++) run(); 14 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodemon: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../nodemon/bin/nodemon.js" "$@" 10 | else 11 | exec node "$basedir/../nodemon/bin/nodemon.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodetouch: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../touch/bin/nodetouch.js" "$@" 10 | else 11 | exec node "$basedir/../touch/bin/nodetouch.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | cache: 4 | directories: 5 | - node_modules 6 | notifications: 7 | email: false 8 | node_js: 9 | - '4' 10 | before_install: 11 | - npm i -g npm@^2.0.0 12 | before_script: 13 | - npm prune 14 | after_success: 15 | - npm run semantic-release 16 | branches: 17 | except: 18 | - "/^v\\d+\\.\\d+\\.\\d+$/" 19 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nopt.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nopt\bin\nopt.js" %* 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-binary-path/index.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | Check if a file path is a binary file. 3 | 4 | @example 5 | ``` 6 | import isBinaryPath = require('is-binary-path'); 7 | 8 | isBinaryPath('source/unicorn.png'); 9 | //=> true 10 | 11 | isBinaryPath('source/unicorn.txt'); 12 | //=> false 13 | ``` 14 | */ 15 | declare function isBinaryPath(filePath: string): boolean; 16 | 17 | export = isBinaryPath; 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %* 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodemon.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nodemon\bin\nodemon.js" %* 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/debug/src/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * Detect Electron renderer / nwjs process, which is node, but we should 5 | * treat as a browser. 6 | */ 7 | if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { 8 | module.exports = require('./browser.js'); 9 | } else { 10 | module.exports = require('./node.js'); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodetouch.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\touch\bin\nodetouch.js" %* 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 3 | 4 | case `uname` in 5 | *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; 6 | esac 7 | 8 | if [ -x "$basedir/node" ]; then 9 | exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@" 10 | else 11 | exec node "$basedir/../semver/bin/semver.js" "$@" 12 | fi 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/build/index.d.ts: -------------------------------------------------------------------------------- 1 | interface IUpdate { 2 | pkg: { 3 | name: string; 4 | version: string; 5 | }; 6 | updateCheckInterval?: number; 7 | shouldNotifyInNpmScript?: boolean; 8 | distTag?: string; 9 | alwaysRun?: boolean; 10 | } 11 | declare const simpleUpdateNotifier: (args: IUpdate) => Promise; 12 | export { simpleUpdateNotifier as default }; 13 | -------------------------------------------------------------------------------- /sesi-7/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sesi-7", 3 | "version": "1.0.0", 4 | "description": "sesi 7 cuyuniversity backend", 5 | "main": "index.js", 6 | "scripts": { 7 | "nyala": "nodemon index.js" 8 | }, 9 | "keywords": [ 10 | "ajksekawje" 11 | ], 12 | "author": "deaafrizal", 13 | "license": "ISC", 14 | "dependencies": { 15 | "nodemon": "^2.0.19", 16 | "rupiah-format": "^1.0.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/valid.js: -------------------------------------------------------------------------------- 1 | const Range = require('../classes/range') 2 | const validRange = (range, options) => { 3 | try { 4 | // Return '*' instead of '' so that truthiness works. 5 | // This will throw if it's invalid anyway 6 | return new Range(range, options).range || '*' 7 | } catch (er) { 8 | return null 9 | } 10 | } 11 | module.exports = validRange 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function (xs, fn) { 2 | var res = []; 3 | for (var i = 0; i < xs.length; i++) { 4 | var x = fn(xs[i], i); 5 | if (isArray(x)) res.push.apply(res, x); 6 | else res.push(x); 7 | } 8 | return res; 9 | }; 10 | 11 | var isArray = Array.isArray || function (xs) { 12 | return Object.prototype.toString.call(xs) === '[object Array]'; 13 | }; 14 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/.bin/semver.cmd: -------------------------------------------------------------------------------- 1 | @ECHO off 2 | GOTO start 3 | :find_dp0 4 | SET dp0=%~dp0 5 | EXIT /b 6 | :start 7 | SETLOCAL 8 | CALL :find_dp0 9 | 10 | IF EXIST "%dp0%\node.exe" ( 11 | SET "_prog=%dp0%\node.exe" 12 | ) ELSE ( 13 | SET "_prog=node" 14 | SET PATHEXT=%PATHEXT:;.JS;=;% 15 | ) 16 | 17 | endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %* 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/cache.spec.ts: -------------------------------------------------------------------------------- 1 | import { createConfigDir, getLastUpdate, saveLastUpdate } from './cache'; 2 | 3 | createConfigDir(); 4 | 5 | jest.useFakeTimers().setSystemTime(new Date('2022-01-01')); 6 | 7 | const fakeTime = new Date('2022-01-01').getTime(); 8 | 9 | test('can save update then get the update details', () => { 10 | saveLastUpdate('test'); 11 | expect(getLastUpdate('test')).toBe(fakeTime); 12 | }); 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "node-style-guide", 3 | "requireCapitalizedComments": null, 4 | "requireSpacesInAnonymousFunctionExpression": { 5 | "beforeOpeningCurlyBrace": true, 6 | "beforeOpeningRoundBrace": true 7 | }, 8 | "disallowSpacesInNamedFunctionExpression": { 9 | "beforeOpeningRoundBrace": true 10 | }, 11 | "excludeFiles": ["node_modules/**"], 12 | "disallowSpacesInFunction": null 13 | } 14 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | cache: 3 | directories: 4 | - ~/.npm 5 | notifications: 6 | email: false 7 | node_js: 8 | - '14' 9 | - '12' 10 | - '10' 11 | before_install: 12 | - if [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" >> .npmrc; fi 13 | after_success: 14 | - npm run semantic-release 15 | branches: 16 | except: 17 | - /^v\d+\.\d+\.\d+$/ 18 | -------------------------------------------------------------------------------- /cuygames/cuygioh/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CUY-GI-OH THE BATTLE 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/borderedText.ts: -------------------------------------------------------------------------------- 1 | const borderedText = (text: string) => { 2 | const lines = text.split('\n'); 3 | const width = Math.max(...lines.map((l) => l.length)); 4 | const res = [`┌${'─'.repeat(width + 2)}┐`]; 5 | for (const line of lines) { 6 | res.push(`│ ${line.padEnd(width)} │`); 7 | } 8 | res.push(`└${'─'.repeat(width + 2)}┘`); 9 | return res.join('\n'); 10 | }; 11 | 12 | export default borderedText; 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "commonjs": true, 5 | "es2021": true 6 | }, 7 | "parserOptions": { 8 | "ecmaVersion": 12 9 | }, 10 | "rules": { 11 | "space-before-function-paren": [ 12 | 2, 13 | { 14 | "anonymous": "ignore", 15 | "named": "never" 16 | } 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/inc.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | 3 | const inc = (version, release, options, identifier) => { 4 | if (typeof (options) === 'string') { 5 | identifier = options 6 | options = undefined 7 | } 8 | 9 | try { 10 | return new SemVer(version, options).inc(release, identifier).version 11 | } catch (er) { 12 | return null 13 | } 14 | } 15 | module.exports = inc 16 | -------------------------------------------------------------------------------- /cuygames/cuygioh/Classes/Card.js: -------------------------------------------------------------------------------- 1 | class Card { 2 | constructor(name) { 3 | this.name = name 4 | this.type 5 | } 6 | 7 | set attr(type) { 8 | return this.type = type; 9 | } 10 | get attr() { 11 | return this.type; 12 | } 13 | // getName() { 14 | // return this.name 15 | // } 16 | // getType() { 17 | // return this.type 18 | // } 19 | // getAtk() { 20 | // return this.atk 21 | // } 22 | // getDef() { 23 | // return this.def 24 | // } 25 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | convert: (number) => { 4 | let tempNum = String(number).split("").reverse() 5 | let rupiah = '' 6 | 7 | for (let i = 0; i < tempNum.length; i++) { 8 | if ((i + 1) % 3 == 0 && i != tempNum.length -1) { 9 | tempNum[i] = `.${tempNum[i]}` 10 | } 11 | } 12 | rupiah = `Rp. ${tempNum.reverse().join("")},00` 13 | return rupiah 14 | } 15 | 16 | } 17 | 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-number/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-number 3 | * 4 | * Copyright (c) 2014-present, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | 'use strict'; 9 | 10 | module.exports = function(num) { 11 | if (typeof num === 'number') { 12 | return num - num === 0; 13 | } 14 | if (typeof num === 'string' && num.trim() !== '') { 15 | return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); 16 | } 17 | return false; 18 | }; 19 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/bin/nodemon.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const cli = require('../lib/cli'); 4 | const nodemon = require('../lib/'); 5 | const options = cli.parse(process.argv); 6 | 7 | nodemon(options); 8 | 9 | const fs = require('fs'); 10 | 11 | // checks for available update and returns an instance 12 | const pkg = JSON.parse(fs.readFileSync(__dirname + '/../package.json')); 13 | 14 | if (pkg.version.indexOf('0.0.0') !== 0 && options.noUpdateNotifier !== true) { 15 | require('simple-update-notifier')({ pkg }); 16 | } 17 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/isNpmOrYarn.ts: -------------------------------------------------------------------------------- 1 | import process from 'process'; 2 | 3 | const packageJson = process.env.npm_package_json; 4 | const userAgent = process.env.npm_config_user_agent; 5 | const isNpm6 = Boolean(userAgent && userAgent.startsWith('npm')); 6 | const isNpm7 = Boolean(packageJson && packageJson.endsWith('package.json')); 7 | 8 | const isNpm = isNpm6 || isNpm7; 9 | const isYarn = Boolean(userAgent && userAgent.startsWith('yarn')); 10 | const isNpmOrYarn = isNpm || isYarn; 11 | 12 | export default isNpmOrYarn; 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.idea/rupiah-format.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/node_modules/type-detect/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.1 / 2013-10-10 3 | ================== 4 | 5 | * Merge pull request #2 from strongloop/fix-browserify 6 | * index,test: support browserify 7 | 8 | 0.1.0 / 2013-08-14 9 | ================== 10 | 11 | * readme: document all methods 12 | * readme: add badges 13 | * library: [test] ensure test runs 14 | * travis: change script to run coveralls reportwq 15 | * tests: add tests 16 | * lib: add type detect lib 17 | * pkg: prepare for coverage based tests 18 | * "Initial commit" 19 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | basePath: '' 4 | , frameworks: [ 'mocha' ] 5 | , files: [ 6 | 'build/build.js' 7 | , 'test/bootstrap/karma.js' 8 | , 'test/*.js' 9 | ] 10 | , exclude: [] 11 | , reporters: [ 'progress' ] 12 | , port: 9876 13 | , colors: true 14 | , logLevel: config.LOG_INFO 15 | , autoWatch: true 16 | , browsers: [ 'PhantomJS' ] 17 | , captureTimeout: 60000 18 | , singleRun: false 19 | }); 20 | }; 21 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-extglob/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * is-extglob 3 | * 4 | * Copyright (c) 2014-2016, Jon Schlinkert. 5 | * Licensed under the MIT License. 6 | */ 7 | 8 | module.exports = function isExtglob(str) { 9 | if (typeof str !== 'string' || str === '') { 10 | return false; 11 | } 12 | 13 | var match; 14 | while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { 15 | if (match[2]) return true; 16 | str = str.slice(match.index + match[0].length); 17 | } 18 | 19 | return false; 20 | }; 21 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nopt/package.json: -------------------------------------------------------------------------------- 1 | { "name" : "nopt" 2 | , "version" : "1.0.10" 3 | , "description" : "Option parsing for Node, supporting types, shorthands, etc. Used by npm." 4 | , "author" : "Isaac Z. Schlueter (http://blog.izs.me/)" 5 | , "main" : "lib/nopt.js" 6 | , "scripts" : { "test" : "node lib/nopt.js" } 7 | , "repository" : "http://github.com/isaacs/nopt" 8 | , "bin" : "./bin/nopt.js" 9 | , "license" : 10 | { "type" : "MIT" 11 | , "url" : "https://github.com/isaacs/nopt/raw/master/LICENSE" } 12 | , "dependencies" : { "abbrev" : "1" }} 13 | -------------------------------------------------------------------------------- /sesi-4/TUGAS-SESI-4-SEMESTER-1-CUYUNIVERSITY.txt: -------------------------------------------------------------------------------- 1 | TUGAS CUYUNIVERSITY - SEMESTER 1 SESI 4 WEB 2 | 3 | JUDUL SESI: CETRAK CETREK LAMPU JAVASCRIPT 4 | 5 | 1. BIKIN 10 LAMPU DENGAN FUNGSI SAMA SEPERTI MATERI PEMBELAJARAN 6 | 2. BIKIN 4 GRUP LAMPU (RUANGAN) DENGAN DETAIL SEBAGAI BERIKUT: 7 | -RUANGAN KELUARGA (3 LAMPU) 8 | -RUANGAN MAKAN (1 LAMPU) 9 | -RUANGAN TIDUR (2 LAMPU) 10 | -RUANGAN TAMU (4 LAMPU ) 11 | 12 | NOTES: ADA TOMBOL SAKLAR PER LAMPU DAN JUGA SAKLAR PER GRUP LAMPU. 13 | 14 | 3. BONUS TAMPILAN DI BIKIN MENARIK SEMENARIK MENARIKNYA. 15 | 4. BEBAS BERKREASI. -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/README.md: -------------------------------------------------------------------------------- 1 | # rupiah-format 2 | 3 | ## Synopsis 4 | 5 | This library will convert standart numbers format into indonesian rupiah format 6 | 7 | ## Installation 8 | 9 | npm install 10 | 11 | ## Code Example 12 | 13 | ``` 14 | //require library 15 | const convertRupiah = require('rupiah-format') 16 | 17 | //convert number 18 | let number = 1000000 19 | let rupiah = convertRupiah.convert(number) 20 | 21 | console.log(rupiah) 22 | 23 | ``` 24 | 25 | ## Tests 26 | 27 | ``` 28 | node test 29 | ``` 30 | 31 | ## License 32 | 33 | MIT -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/README.md: -------------------------------------------------------------------------------- 1 | # pstree.remy 2 | 3 | > Cross platform ps-tree (including unix flavours without ps) 4 | 5 | ## Installation 6 | 7 | ```shel 8 | npm install pstree.remy 9 | ``` 10 | 11 | ## Usage 12 | 13 | ```js 14 | const psTree = psTree require('pstree.remy'); 15 | 16 | psTree(PID, (err, pids) => { 17 | if (err) { 18 | console.error(err); 19 | } 20 | console.log(pids) 21 | }); 22 | 23 | console.log(psTree.hasPS 24 | ? "This platform has the ps shell command" 25 | : "This platform does not have the ps shell command"); 26 | ``` 27 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getActual.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - getActual utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * # getActual(object, [actual]) 9 | * 10 | * Returns the `actual` value for an Assertion 11 | * 12 | * @param {Object} object (constructed Assertion) 13 | * @param {Arguments} chai.Assertion.prototype.assert arguments 14 | * @namespace Utils 15 | * @name getActual 16 | */ 17 | 18 | module.exports = function (obj, args) { 19 | return args.length > 4 ? args[4] : obj._obj; 20 | }; 21 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/internal/identifiers.js: -------------------------------------------------------------------------------- 1 | const numeric = /^[0-9]+$/ 2 | const compareIdentifiers = (a, b) => { 3 | const anum = numeric.test(a) 4 | const bnum = numeric.test(b) 5 | 6 | if (anum && bnum) { 7 | a = +a 8 | b = +b 9 | } 10 | 11 | return a === b ? 0 12 | : (anum && !bnum) ? -1 13 | : (bnum && !anum) ? 1 14 | : a < b ? -1 15 | : 1 16 | } 17 | 18 | const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) 19 | 20 | module.exports = { 21 | compareIdentifiers, 22 | rcompareIdentifiers 23 | } 24 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chai", 3 | "description": "BDD/TDD assertion library for node.js and the browser. Test framework agnostic.", 4 | "license": "MIT", 5 | "keywords": [ 6 | "test", 7 | "assertion", 8 | "assert", 9 | "testing", 10 | "chai" 11 | ], 12 | "main": "chai.js", 13 | "ignore": [ 14 | "build", 15 | "components", 16 | "lib", 17 | "node_modules", 18 | "support", 19 | "test", 20 | "index.js", 21 | "Makefile", 22 | ".*" 23 | ], 24 | "dependencies": {}, 25 | "devDependencies": {} 26 | } 27 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getName.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - getName utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * # getName(func) 9 | * 10 | * Gets the name of a function, in a cross-browser way. 11 | * 12 | * @param {Function} a function (usually a constructor) 13 | * @namespace Utils 14 | * @name getName 15 | */ 16 | 17 | module.exports = function (func) { 18 | if (func.name) return func.name; 19 | 20 | var match = /^\s?function ([^(]*)\(/.exec(func); 21 | return match && match[1] ? match[1] : ""; 22 | }; 23 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/internal/constants.js: -------------------------------------------------------------------------------- 1 | // Note: this is the semver.org version of the spec that it implements 2 | // Not necessarily the package version of this code. 3 | const SEMVER_SPEC_VERSION = '2.0.0' 4 | 5 | const MAX_LENGTH = 256 6 | const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 7 | /* istanbul ignore next */ 9007199254740991 8 | 9 | // Max safe segment length for coercion. 10 | const MAX_SAFE_COMPONENT_LENGTH = 16 11 | 12 | module.exports = { 13 | SEMVER_SPEC_VERSION, 14 | MAX_LENGTH, 15 | MAX_SAFE_INTEGER, 16 | MAX_SAFE_COMPONENT_LENGTH 17 | } 18 | -------------------------------------------------------------------------------- /sesi-7/node_modules/abbrev/README.md: -------------------------------------------------------------------------------- 1 | # abbrev-js 2 | 3 | Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev). 4 | 5 | Usage: 6 | 7 | var abbrev = require("abbrev"); 8 | abbrev("foo", "fool", "folding", "flop"); 9 | 10 | // returns: 11 | { fl: 'flop' 12 | , flo: 'flop' 13 | , flop: 'flop' 14 | , fol: 'folding' 15 | , fold: 'folding' 16 | , foldi: 'folding' 17 | , foldin: 'folding' 18 | , folding: 'folding' 19 | , foo: 'foo' 20 | , fool: 'fool' 21 | } 22 | 23 | This is handy for command-line scripts, or other cases where you want to be able to accept shorthands. 24 | -------------------------------------------------------------------------------- /sesi-7/node_modules/abbrev/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abbrev", 3 | "version": "1.1.1", 4 | "description": "Like ruby's abbrev module, but in js", 5 | "author": "Isaac Z. Schlueter ", 6 | "main": "abbrev.js", 7 | "scripts": { 8 | "test": "tap test.js --100", 9 | "preversion": "npm test", 10 | "postversion": "npm publish", 11 | "postpublish": "git push origin --all; git push origin --tags" 12 | }, 13 | "repository": "http://github.com/isaacs/abbrev-js", 14 | "license": "ISC", 15 | "devDependencies": { 16 | "tap": "^10.1" 17 | }, 18 | "files": [ 19 | "abbrev.js" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/assertion-error/History.md: -------------------------------------------------------------------------------- 1 | 1.1.0 / 2018-01-02 2 | ================== 3 | 4 | * Add type definitions ([#11](https://github.com/chaijs/assertion-error/pull/11)) 5 | 6 | 1.0.1 / 2015-03-04 7 | ================== 8 | 9 | * Merge pull request #2 from simonzack/master 10 | * fixes `.stack` on firefox 11 | 12 | 1.0.0 / 2013-06-08 13 | ================== 14 | 15 | * readme: change travis and component urls 16 | * refactor: [*] prepare for move to chaijs gh org 17 | 18 | 0.1.0 / 2013-04-07 19 | ================== 20 | 21 | * test: use vanilla test runner/assert 22 | * pgk: remove unused deps 23 | * lib: implement 24 | * "Initial commit" 25 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/monitor/signals.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SIGHUP: 1, 3 | SIGINT: 2, 4 | SIGQUIT: 3, 5 | SIGILL: 4, 6 | SIGTRAP: 5, 7 | SIGABRT: 6, 8 | SIGBUS: 7, 9 | SIGFPE: 8, 10 | SIGKILL: 9, 11 | SIGUSR1: 10, 12 | SIGSEGV: 11, 13 | SIGUSR2: 12, 14 | SIGPIPE: 13, 15 | SIGALRM: 14, 16 | SIGTERM: 15, 17 | SIGSTKFLT: 16, 18 | SIGCHLD: 17, 19 | SIGCONT: 18, 20 | SIGSTOP: 19, 21 | SIGTSTP: 20, 22 | SIGTTIN: 21, 23 | SIGTTOU: 22, 24 | SIGURG: 23, 25 | SIGXCPU: 24, 26 | SIGXFSZ: 25, 27 | SIGVTALRM: 26, 28 | SIGPROF: 27, 29 | SIGWINCH: 28, 30 | SIGIO: 29, 31 | SIGPWR: 30, 32 | SIGSYS: 31, 33 | SIGRTMIN: 35, 34 | } 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/test.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - test utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /*! 8 | * Module dependancies 9 | */ 10 | 11 | var flag = require('./flag'); 12 | 13 | /** 14 | * # test(object, expression) 15 | * 16 | * Test and object for expression. 17 | * 18 | * @param {Object} object (constructed Assertion) 19 | * @param {Arguments} chai.Assertion.prototype.assert arguments 20 | * @namespace Utils 21 | * @name test 22 | */ 23 | 24 | module.exports = function (obj, args) { 25 | var negate = flag(obj, 'negate') 26 | , expr = args[0]; 27 | return negate ? !expr : expr; 28 | }; 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/ignore-by-default/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | exports.directories = function () { 4 | return [ 5 | '.git', // Git repository files, see 6 | '.nyc_output', // Temporary directory where nyc stores coverage data, see 7 | '.sass-cache', // Cache folder for node-sass, see 8 | 'bower_components', // Where Bower packages are installed, see 9 | 'coverage', // Standard output directory for code coverage reports, see 10 | 'node_modules' // Where Node modules are installed, see 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /sesi-7/node_modules/semver/range.bnf: -------------------------------------------------------------------------------- 1 | range-set ::= range ( logical-or range ) * 2 | logical-or ::= ( ' ' ) * '||' ( ' ' ) * 3 | range ::= hyphen | simple ( ' ' simple ) * | '' 4 | hyphen ::= partial ' - ' partial 5 | simple ::= primitive | partial | tilde | caret 6 | primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial 7 | partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? 8 | xr ::= 'x' | 'X' | '*' | nr 9 | nr ::= '0' | [1-9] ( [0-9] ) * 10 | tilde ::= '~' partial 11 | caret ::= '^' partial 12 | qualifier ::= ( '-' pre )? ( '+' build )? 13 | pre ::= parts 14 | build ::= parts 15 | parts ::= part ( '.' part ) * 16 | part ::= nr | [-0-9A-Za-z]+ 17 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | release: 8 | name: Release 9 | runs-on: ubuntu-18.04 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v1 13 | - name: Setup Node.js 14 | uses: actions/setup-node@v1 15 | with: 16 | node-version: 16 17 | - name: Install dependencies 18 | run: npm ci 19 | - name: Test 20 | run: npm run test 21 | - name: Release 22 | env: 23 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 24 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 25 | run: npx semantic-release 26 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getEnumerableProperties.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - getEnumerableProperties utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * ### .getEnumerableProperties(object) 9 | * 10 | * This allows the retrieval of enumerable property names of an object, 11 | * inherited or not. 12 | * 13 | * @param {Object} object 14 | * @returns {Array} 15 | * @namespace Utils 16 | * @name getEnumerableProperties 17 | * @api public 18 | */ 19 | 20 | module.exports = function getEnumerableProperties(object) { 21 | var result = []; 22 | for (var name in object) { 23 | result.push(name); 24 | } 25 | return result; 26 | }; 27 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/History.md: -------------------------------------------------------------------------------- 1 | 2 | 0.1.3 / 2013-10-10 3 | ================== 4 | 5 | * pkg: update type-detect version 6 | * index,test: conditional require in test bootstrap 7 | 8 | 0.1.2 / 2013-09-18 9 | ================== 10 | 11 | * bug: [fix] misnamed variable from code migration (reference error) 12 | 13 | 0.1.1 / 2013-09-18 14 | ================== 15 | 16 | * bug: [fix] last key of deep object ignored 17 | 18 | 0.1.0 / 2013-09-18 19 | ================== 20 | 21 | * tests: add iterable 22 | * docs: readme 23 | * makefile: [ci] update cov handling 24 | * testing: [env] use karma for phantom 25 | * add tests (uncompleted) 26 | * add library 27 | * add dependencies 28 | * "Initial commit" 29 | -------------------------------------------------------------------------------- /sesi-1/data.js: -------------------------------------------------------------------------------- 1 | const nama = "dea afrizal"; 2 | let usia = 15; 3 | 4 | let biodata = document.getElementById('biodata'); 5 | 6 | function generateBiodata() { 7 | let generasi; 8 | 9 | if (usia > 10 && usia < 18) { 10 | generasi = "generasi remaja"; 11 | } 12 | else if (usia > 18 && usia < 30) { 13 | generasi = "generasi dewasa"; 14 | } 15 | else if (usia >= 30) { 16 | generasi = "generasi tua"; 17 | } 18 | else if (usia > 2 && usia < 10) { 19 | generasi = "generasi anak anak"; 20 | } 21 | else { 22 | generasi = "generasi bayi"; 23 | } 24 | return biodata.innerHTML = generasi; 25 | } 26 | 27 | console.log(nama); 28 | console.log(usia); 29 | 30 | generateBiodata(); 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/semver/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semver", 3 | "version": "5.7.1", 4 | "description": "The semantic version parser used by npm.", 5 | "main": "semver.js", 6 | "scripts": { 7 | "test": "tap", 8 | "preversion": "npm test", 9 | "postversion": "npm publish", 10 | "postpublish": "git push origin --all; git push origin --tags" 11 | }, 12 | "devDependencies": { 13 | "tap": "^13.0.0-rc.18" 14 | }, 15 | "license": "ISC", 16 | "repository": "https://github.com/npm/node-semver", 17 | "bin": { 18 | "semver": "./bin/semver" 19 | }, 20 | "files": [ 21 | "bin", 22 | "range.bnf", 23 | "semver.js" 24 | ], 25 | "tap": { 26 | "check-coverage": true 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/range.bnf: -------------------------------------------------------------------------------- 1 | range-set ::= range ( logical-or range ) * 2 | logical-or ::= ( ' ' ) * '||' ( ' ' ) * 3 | range ::= hyphen | simple ( ' ' simple ) * | '' 4 | hyphen ::= partial ' - ' partial 5 | simple ::= primitive | partial | tilde | caret 6 | primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial 7 | partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? 8 | xr ::= 'x' | 'X' | '*' | nr 9 | nr ::= '0' | [1-9] ( [0-9] ) * 10 | tilde ::= '~' partial 11 | caret ::= '^' partial 12 | qualifier ::= ( '-' pre )? ( '+' build )? 13 | pre ::= parts 14 | build ::= parts 15 | parts ::= part ( '.' part ) * 16 | part ::= nr | [-0-9A-Za-z]+ 17 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/min-satisfying.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const Range = require('../classes/range') 3 | const minSatisfying = (versions, range, options) => { 4 | let min = null 5 | let minSV = null 6 | let rangeObj = null 7 | try { 8 | rangeObj = new Range(range, options) 9 | } catch (er) { 10 | return null 11 | } 12 | versions.forEach((v) => { 13 | if (rangeObj.test(v)) { 14 | // satisfies(v, range, options) 15 | if (!min || minSV.compare(v) === 1) { 16 | // compare(min, v, true) 17 | min = v 18 | minSV = new SemVer(min, options) 19 | } 20 | } 21 | }) 22 | return min 23 | } 24 | module.exports = minSatisfying 25 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/ranges/max-satisfying.js: -------------------------------------------------------------------------------- 1 | const SemVer = require('../classes/semver') 2 | const Range = require('../classes/range') 3 | 4 | const maxSatisfying = (versions, range, options) => { 5 | let max = null 6 | let maxSV = null 7 | let rangeObj = null 8 | try { 9 | rangeObj = new Range(range, options) 10 | } catch (er) { 11 | return null 12 | } 13 | versions.forEach((v) => { 14 | if (rangeObj.test(v)) { 15 | // satisfies(v, range, options) 16 | if (!max || maxSV.compare(v) === -1) { 17 | // compare(max, v, true) 18 | max = v 19 | maxSV = new SemVer(max, options) 20 | } 21 | } 22 | }) 23 | return max 24 | } 25 | module.exports = maxSatisfying 26 | -------------------------------------------------------------------------------- /sesi-7/node_modules/anymatch/index.d.ts: -------------------------------------------------------------------------------- 1 | type AnymatchFn = (testString: string) => boolean; 2 | type AnymatchPattern = string|RegExp|AnymatchFn; 3 | type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] 4 | type AnymatchTester = { 5 | (testString: string|any[], returnIndex: true): number; 6 | (testString: string|any[]): boolean; 7 | } 8 | 9 | type PicomatchOptions = {dot: boolean}; 10 | 11 | declare const anymatch: { 12 | (matchers: AnymatchMatcher): AnymatchTester; 13 | (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; 14 | (matchers: AnymatchMatcher, testString: string|any[]): boolean; 15 | } 16 | 17 | export {AnymatchMatcher as Matcher} 18 | export {AnymatchTester as Tester} 19 | export default anymatch 20 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | frameworks: [ 'mocha' ] 4 | , files: [ 5 | 'chai.js' 6 | , 'test/bootstrap/karma.js' 7 | , 'test/*.js' 8 | ] 9 | , reporters: [ 'progress' ] 10 | , colors: true 11 | , logLevel: config.LOG_INFO 12 | , autoWatch: false 13 | , browsers: [ 'PhantomJS' ] 14 | , browserDisconnectTimeout: 10000 15 | , browserDisconnectTolerance: 2 16 | , browserNoActivityTimeout: 20000 17 | , singleRun: true 18 | }); 19 | 20 | switch (process.env.CHAI_TEST_ENV) { 21 | case 'sauce': 22 | require('./karma.sauce')(config); 23 | break; 24 | default: 25 | // ... 26 | break; 27 | }; 28 | }; 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/diff.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse') 2 | const eq = require('./eq') 3 | 4 | const diff = (version1, version2) => { 5 | if (eq(version1, version2)) { 6 | return null 7 | } else { 8 | const v1 = parse(version1) 9 | const v2 = parse(version2) 10 | let prefix = '' 11 | if (v1.prerelease.length || v2.prerelease.length) { 12 | prefix = 'pre' 13 | var defaultResult = 'prerelease' 14 | } 15 | for (const key in v1) { 16 | if (key === 'major' || key === 'minor' || key === 'patch') { 17 | if (v1[key] !== v2[key]) { 18 | return prefix + key 19 | } 20 | } 21 | } 22 | return defaultResult // may be undefined 23 | } 24 | } 25 | module.exports = diff 26 | -------------------------------------------------------------------------------- /sesi-7/node_modules/touch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Isaac Z. Schlueter (http://blog.izs.me/)", 3 | "name": "touch", 4 | "description": "like touch(1) in node", 5 | "version": "3.1.0", 6 | "repository": "git://github.com/isaacs/node-touch.git", 7 | "bin": { 8 | "nodetouch": "./bin/nodetouch.js" 9 | }, 10 | "dependencies": { 11 | "nopt": "~1.0.10" 12 | }, 13 | "license": "ISC", 14 | "scripts": { 15 | "test": "tap test/*.js --100 -J", 16 | "preversion": "npm test", 17 | "postversion": "npm publish", 18 | "postpublish": "git push origin --all; git push origin --tags" 19 | }, 20 | "devDependencies": { 21 | "mutate-fs": "^1.1.0", 22 | "tap": "^10.7.0" 23 | }, 24 | "files": [ 25 | "index.js", 26 | "bin/nodetouch.js" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pstree.remy", 3 | "version": "1.1.8", 4 | "main": "lib/index.js", 5 | "prettier": { 6 | "trailingComma": "es5", 7 | "semi": true, 8 | "singleQuote": true 9 | }, 10 | "scripts": { 11 | "test": "tap tests/*.test.js", 12 | "_prepublish": "npm test" 13 | }, 14 | "keywords": [ 15 | "ps", 16 | "pstree", 17 | "ps tree" 18 | ], 19 | "author": "Remy Sharp", 20 | "license": "MIT", 21 | "repository": { 22 | "type": "git", 23 | "url": "https://github.com/remy/pstree.git" 24 | }, 25 | "devDependencies": { 26 | "tap": "^11.0.0" 27 | }, 28 | "directories": { 29 | "test": "tests" 30 | }, 31 | "dependencies": {}, 32 | "description": "Collects the full tree of processes from /proc" 33 | } 34 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Compiled binary addons (http://nodejs.org/api/addons.html) 27 | build/Release 28 | 29 | # Dependency directories 30 | node_modules 31 | jspm_packages 32 | 33 | # Optional npm cache directory 34 | .npm 35 | 36 | # Optional REPL history 37 | .node_repl_history 38 | 39 | .DS_Store 40 | .env 41 | lib -------------------------------------------------------------------------------- /sesi-7/node_modules/ignore-by-default/README.md: -------------------------------------------------------------------------------- 1 | # ignore-by-default 2 | 3 | This is a package aimed at Node.js development tools. It provides a list of 4 | directories that should probably be ignored by such tools, e.g. when watching 5 | for file changes. 6 | 7 | It's used by [AVA](https://www.npmjs.com/package/ava) and 8 | [nodemon](https://www.npmjs.com/package/nodemon). 9 | 10 | [Please contribute!](./CONTRIBUTING.md) 11 | 12 | ## Installation 13 | 14 | ``` 15 | npm install --save ignore-by-default 16 | ``` 17 | 18 | ## Usage 19 | 20 | The `ignore-by-default` module exports a `directories()` function, which will 21 | return an array of directory names. These are the ones you should ignore. 22 | 23 | ```js 24 | // ['.git', '.sass_cache', …] 25 | var ignoredDirectories = require('ignore-by-default').directories() 26 | ``` 27 | -------------------------------------------------------------------------------- /sesi-7/node_modules/touch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-4/saklar.js: -------------------------------------------------------------------------------- 1 | function saklar() { 2 | let toggle1 = document.getElementById("default-toggle1"); 3 | let toggle2 = document.getElementById("default-toggle2"); 4 | let toggle3 = document.getElementById("default-toggle3"); 5 | 6 | let lampu1 = document.getElementById("lampu1"); 7 | let lampu2 = document.getElementById("lampu2"); 8 | let lampu3 = document.getElementById("lampu3"); 9 | 10 | if (toggle1.checked) { 11 | lampu1.src = "assets/images/on.gif" 12 | } else { 13 | lampu1.src = "assets/images/off.gif"; 14 | } 15 | 16 | if (toggle2.checked) { 17 | lampu2.src = "assets/images/on.gif" 18 | } else { 19 | lampu2.src = "assets/images/off.gif"; 20 | } 21 | 22 | if (toggle3.checked) { 23 | lampu3.src = "assets/images/on.gif" 24 | } else { 25 | lampu3.src = "assets/images/off.gif"; 26 | } 27 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/glob-parent/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2015, 2019 Elan Shanker 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-7/node_modules/ignore-by-default/LICENSE: -------------------------------------------------------------------------------- 1 | ISC License (ISC) 2 | Copyright (c) 2016, Mark Wubben 3 | 4 | Permission to use, copy, modify, and/or distribute this software for any purpose 5 | with or without fee is hereby granted, provided that the above copyright notice 6 | and this permission notice appear in all copies. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 9 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 10 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 11 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS 12 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 13 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 14 | THIS SOFTWARE. 15 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/utils/colour.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Encodes a string in a colour: red, yellow or green 3 | * @param {String} c colour to highlight in 4 | * @param {String} str the string to encode 5 | * @return {String} coloured string for terminal printing 6 | */ 7 | function colour(c, str) { 8 | return (colour[c] || colour.black) + str + colour.black; 9 | } 10 | 11 | function strip(str) { 12 | re.lastIndex = 0; // reset position 13 | return str.replace(re, ''); 14 | } 15 | 16 | colour.red = '\x1B[31m'; 17 | colour.yellow = '\x1B[33m'; 18 | colour.green = '\x1B[32m'; 19 | colour.black = '\x1B[39m'; 20 | 21 | var reStr = Object.keys(colour).map(key => colour[key]).join('|'); 22 | var re = new RegExp(('(' + reStr + ')').replace(/\[/g, '\\['), 'g'); 23 | 24 | colour.strip = strip; 25 | 26 | module.exports = colour; 27 | -------------------------------------------------------------------------------- /sesi-7/node_modules/minimatch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-7/node_modules/semver/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "binary-extensions", 3 | "version": "2.2.0", 4 | "description": "List of binary file extensions", 5 | "license": "MIT", 6 | "repository": "sindresorhus/binary-extensions", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts", 21 | "binary-extensions.json", 22 | "binary-extensions.json.d.ts" 23 | ], 24 | "keywords": [ 25 | "binary", 26 | "extensions", 27 | "extension", 28 | "file", 29 | "json", 30 | "list", 31 | "array" 32 | ], 33 | "devDependencies": { 34 | "ava": "^1.4.1", 35 | "tsd": "^0.7.2", 36 | "xo": "^0.24.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /sesi-7/node_modules/anymatch/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-7/node_modules/braces/lib/stringify.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const utils = require('./utils'); 4 | 5 | module.exports = (ast, options = {}) => { 6 | let stringify = (node, parent = {}) => { 7 | let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); 8 | let invalidNode = node.invalid === true && options.escapeInvalid === true; 9 | let output = ''; 10 | 11 | if (node.value) { 12 | if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { 13 | return '\\' + node.value; 14 | } 15 | return node.value; 16 | } 17 | 18 | if (node.value) { 19 | return node.value; 20 | } 21 | 22 | if (node.nodes) { 23 | for (let child of node.nodes) { 24 | output += stringify(child); 25 | } 26 | } 27 | return output; 28 | }; 29 | 30 | return stringify(ast); 31 | }; 32 | 33 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-binary-path/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "is-binary-path", 3 | "version": "2.1.0", 4 | "description": "Check if a file path is a binary file", 5 | "license": "MIT", 6 | "repository": "sindresorhus/is-binary-path", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=8" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava && tsd" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "index.d.ts" 21 | ], 22 | "keywords": [ 23 | "binary", 24 | "extensions", 25 | "extension", 26 | "file", 27 | "path", 28 | "check", 29 | "detect", 30 | "is" 31 | ], 32 | "dependencies": { 33 | "binary-extensions": "^2.0.0" 34 | }, 35 | "devDependencies": { 36 | "ava": "^1.4.1", 37 | "tsd": "^0.7.2", 38 | "xo": "^0.24.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /sesi-7/node_modules/minimatch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Isaac Z. Schlueter (http://blog.izs.me)", 3 | "name": "minimatch", 4 | "description": "a glob matcher in javascript", 5 | "version": "3.1.2", 6 | "publishConfig": { 7 | "tag": "v3-legacy" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git://github.com/isaacs/minimatch.git" 12 | }, 13 | "main": "minimatch.js", 14 | "scripts": { 15 | "test": "tap", 16 | "preversion": "npm test", 17 | "postversion": "npm publish", 18 | "postpublish": "git push origin --all; git push origin --tags" 19 | }, 20 | "engines": { 21 | "node": "*" 22 | }, 23 | "dependencies": { 24 | "brace-expansion": "^1.1.7" 25 | }, 26 | "devDependencies": { 27 | "tap": "^15.1.6" 28 | }, 29 | "license": "ISC", 30 | "files": [ 31 | "minimatch.js" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /sesi-7/node_modules/semver/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # changes log 2 | 3 | ## 5.7 4 | 5 | * Add `minVersion` method 6 | 7 | ## 5.6 8 | 9 | * Move boolean `loose` param to an options object, with 10 | backwards-compatibility protection. 11 | * Add ability to opt out of special prerelease version handling with 12 | the `includePrerelease` option flag. 13 | 14 | ## 5.5 15 | 16 | * Add version coercion capabilities 17 | 18 | ## 5.4 19 | 20 | * Add intersection checking 21 | 22 | ## 5.3 23 | 24 | * Add `minSatisfying` method 25 | 26 | ## 5.2 27 | 28 | * Add `prerelease(v)` that returns prerelease components 29 | 30 | ## 5.1 31 | 32 | * Add Backus-Naur for ranges 33 | * Remove excessively cute inspection methods 34 | 35 | ## 5.0 36 | 37 | * Remove AMD/Browserified build artifacts 38 | * Fix ltr and gtr when using the `*` range 39 | * Fix for range `*` with a prerelease identifier 40 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/LICENSE: -------------------------------------------------------------------------------- 1 | The ISC License 2 | 3 | Copyright (c) Isaac Z. Schlueter and Contributors 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 15 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/help/index.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | const supportsColor = require('supports-color'); 4 | 5 | module.exports = help; 6 | 7 | const highlight = supportsColor.stdout ? '\x1B\[$1m' : ''; 8 | 9 | function help(item) { 10 | if (!item) { 11 | item = 'help'; 12 | } else if (item === true) { // if used with -h or --help and no args 13 | item = 'help'; 14 | } 15 | 16 | // cleanse the filename to only contain letters 17 | // aka: /\W/g but figured this was eaiser to read 18 | item = item.replace(/[^a-z]/gi, ''); 19 | 20 | try { 21 | var dir = path.join(__dirname, '..', '..', 'doc', 'cli', item + '.txt'); 22 | var body = fs.readFileSync(dir, 'utf8'); 23 | return body.replace(/\\x1B\[(.)m/g, highlight); 24 | } catch (e) { 25 | return '"' + item + '" help can\'t be found'; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "semver", 3 | "version": "7.0.0", 4 | "description": "The semantic version parser used by npm.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "tap", 8 | "snap": "tap", 9 | "preversion": "npm test", 10 | "postversion": "npm publish", 11 | "postpublish": "git push origin --follow-tags" 12 | }, 13 | "devDependencies": { 14 | "tap": "^14.10.1" 15 | }, 16 | "license": "ISC", 17 | "repository": "https://github.com/npm/node-semver", 18 | "bin": { 19 | "semver": "./bin/semver.js" 20 | }, 21 | "files": [ 22 | "bin", 23 | "range.bnf", 24 | "classes", 25 | "functions", 26 | "internal", 27 | "ranges", 28 | "index.js" 29 | ], 30 | "tap": { 31 | "check-coverage": true, 32 | "coverage-map": "map.js" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/assertion-error/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "assertion-error", 3 | "version": "1.1.0", 4 | "description": "Error constructor for test and validation frameworks that implements standardized AssertionError specification.", 5 | "author": "Jake Luer (http://qualiancy.com)", 6 | "license": "MIT", 7 | "types": "./index.d.ts", 8 | "keywords": [ 9 | "test", 10 | "assertion", 11 | "assertion-error" 12 | ], 13 | "repository": { 14 | "type": "git", 15 | "url": "git@github.com:chaijs/assertion-error.git" 16 | }, 17 | "engines": { 18 | "node": "*" 19 | }, 20 | "main": "./index", 21 | "scripts": { 22 | "test": "make test" 23 | }, 24 | "dependencies": {}, 25 | "devDependencies": { 26 | "component": "*", 27 | "typescript": "^2.6.1" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/index.spec.ts: -------------------------------------------------------------------------------- 1 | import simpleUpdateNotifier from '.'; 2 | import hasNewVersion from './hasNewVersion'; 3 | 4 | const consoleSpy = jest.spyOn(console, 'log'); 5 | 6 | jest.mock('./hasNewVersion', () => jest.fn().mockResolvedValue('2.0.0')); 7 | 8 | beforeEach(jest.clearAllMocks); 9 | 10 | test('it logs message if update is available', async () => { 11 | await simpleUpdateNotifier({ 12 | pkg: { name: 'test', version: '1.0.0' }, 13 | alwaysRun: true, 14 | }); 15 | 16 | expect(consoleSpy).toHaveBeenCalledTimes(1); 17 | }); 18 | 19 | test('it does not log message if update is not available', async () => { 20 | (hasNewVersion as jest.Mock).mockResolvedValue(false); 21 | await simpleUpdateNotifier({ 22 | pkg: { name: 'test', version: '2.0.0' }, 23 | alwaysRun: true, 24 | }); 25 | 26 | expect(consoleSpy).toHaveBeenCalledTimes(0); 27 | }); 28 | -------------------------------------------------------------------------------- /sesi-7/node_modules/type-detect/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "type-detect" 3 | , "version": "1.0.0" 4 | , "description": "Improved typeof detection for node.js and the browser." 5 | , "author": "Jake Luer (http://alogicalparadox.com)" 6 | , "license": "MIT" 7 | , "keywords": [ 8 | ] 9 | , "repository": { 10 | "type": "git" 11 | , "url": "git@github.com:chaijs/type-detect.git" 12 | } 13 | , "engines": { 14 | "node": "*" 15 | } 16 | , "main": "./index" 17 | , "scripts": { 18 | "test": "make test" 19 | } 20 | , "dependencies": { 21 | } 22 | , "devDependencies": { 23 | "component": "*" 24 | , "coveralls": "2.0.16" 25 | , "jscoverage": "0.3.7" 26 | , "mocha": "*" 27 | , "mocha-lcov-reporter": "0.0.1" 28 | , "mocha-phantomjs": "*" 29 | , "simple-assert": "*" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/doc/cli/logo.txt: -------------------------------------------------------------------------------- 1 | ; ; 2 | kO. x0 3 | KMX, .:x0kc. 'KMN 4 | 0MMM0: 'oKMMMMMMMXd, ;OMMMX 5 | oMMMMMWKOONMMMMMMMMMMMMMWOOKWMMMMMx 6 | OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK. 7 | .oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd. 8 | KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN 9 | KMMMMMMMMMMMMMMW0k0WMMMMMMMMMMMMMMW 10 | KMMMMMMMMMMMNk:. :xNMMMMMMMMMMMW 11 | KMMMMMMMMMMK OMMMMMMMMMMW 12 | KMMMMMMMMMMO xMMMMMMMMMMN 13 | KMMMMMMMMMMO xMMMMMMMMMMN 14 | KMMMMMMMMMMO xMMMMMMMMMMN 15 | KMMMMMMMMMMO xMMMMMMMMMMN 16 | KMMMMMMMMMMO xMMMMMMMMMMN 17 | KMMMMMMMMMNc ;NMMMMMMMMMN 18 | KMMMMMW0o' .lOWMMMMMN 19 | KMMKd; ,oKMMN 20 | kX: ,K0 -------------------------------------------------------------------------------- /sesi-7/node_modules/is-binary-path/readme.md: -------------------------------------------------------------------------------- 1 | # is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) 2 | 3 | > Check if a file path is a binary file 4 | 5 | 6 | ## Install 7 | 8 | ``` 9 | $ npm install is-binary-path 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | ```js 16 | const isBinaryPath = require('is-binary-path'); 17 | 18 | isBinaryPath('source/unicorn.png'); 19 | //=> true 20 | 21 | isBinaryPath('source/unicorn.txt'); 22 | //=> false 23 | ``` 24 | 25 | 26 | ## Related 27 | 28 | - [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions 29 | - [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file 30 | 31 | 32 | ## License 33 | 34 | MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/index.ts: -------------------------------------------------------------------------------- 1 | import isNpmOrYarn from './isNpmOrYarn'; 2 | import hasNewVersion from './hasNewVersion'; 3 | import { IUpdate } from './types'; 4 | import borderedText from './borderedText'; 5 | 6 | const simpleUpdateNotifier = async (args: IUpdate) => { 7 | if ( 8 | !args.alwaysRun && 9 | (!process.stdout.isTTY || (isNpmOrYarn && !args.shouldNotifyInNpmScript)) 10 | ) { 11 | return; 12 | } 13 | 14 | try { 15 | const latestVersion = await hasNewVersion(args); 16 | if (latestVersion) { 17 | console.log( 18 | borderedText(`New version of ${args.pkg.name} available! 19 | Current Version: ${args.pkg.version} 20 | Latest Version: ${latestVersion}`) 21 | ); 22 | } 23 | } catch { 24 | // Catch any network errors or cache writing errors so module doesn't cause a crash 25 | } 26 | }; 27 | 28 | export default simpleUpdateNotifier; 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/node_modules/type-detect/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "type-detect" 3 | , "version": "0.1.1" 4 | , "description": "Improved typeof detection for node.js and the browser." 5 | , "author": "Jake Luer (http://alogicalparadox.com)" 6 | , "license": "MIT" 7 | , "keywords": [ 8 | ] 9 | , "repository": { 10 | "type": "git" 11 | , "url": "git@github.com:chaijs/type-detect.git" 12 | } 13 | , "engines": { 14 | "node": "*" 15 | } 16 | , "main": "./index" 17 | , "scripts": { 18 | "test": "make test" 19 | } 20 | , "dependencies": { 21 | } 22 | , "devDependencies": { 23 | "component": "*" 24 | , "coveralls": "2.0.16" 25 | , "jscoverage": "0.3.7" 26 | , "mocha": "*" 27 | , "mocha-lcov-reporter": "0.0.1" 28 | , "mocha-phantomjs": "*" 29 | , "simple-assert": "*" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /sesi-7/node_modules/ms/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ms", 3 | "version": "2.1.3", 4 | "description": "Tiny millisecond conversion utility", 5 | "repository": "vercel/ms", 6 | "main": "./index", 7 | "files": [ 8 | "index.js" 9 | ], 10 | "scripts": { 11 | "precommit": "lint-staged", 12 | "lint": "eslint lib/* bin/*", 13 | "test": "mocha tests.js" 14 | }, 15 | "eslintConfig": { 16 | "extends": "eslint:recommended", 17 | "env": { 18 | "node": true, 19 | "es6": true 20 | } 21 | }, 22 | "lint-staged": { 23 | "*.js": [ 24 | "npm run lint", 25 | "prettier --single-quote --write", 26 | "git add" 27 | ] 28 | }, 29 | "license": "MIT", 30 | "devDependencies": { 31 | "eslint": "4.18.2", 32 | "expect.js": "0.3.1", 33 | "husky": "0.14.3", 34 | "lint-staged": "5.0.0", 35 | "mocha": "4.0.1", 36 | "prettier": "2.0.5" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nopt.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | # Support pipeline input 13 | if ($MyInvocation.ExpectingInput) { 14 | $input | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args 15 | } else { 16 | & "$basedir/node$exe" "$basedir/../nopt/bin/nopt.js" $args 17 | } 18 | $ret=$LASTEXITCODE 19 | } else { 20 | # Support pipeline input 21 | if ($MyInvocation.ExpectingInput) { 22 | $input | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args 23 | } else { 24 | & "node$exe" "$basedir/../nopt/bin/nopt.js" $args 25 | } 26 | $ret=$LASTEXITCODE 27 | } 28 | exit $ret 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/parse.js: -------------------------------------------------------------------------------- 1 | const {MAX_LENGTH} = require('../internal/constants') 2 | const { re, t } = require('../internal/re') 3 | const SemVer = require('../classes/semver') 4 | 5 | const parse = (version, options) => { 6 | if (!options || typeof options !== 'object') { 7 | options = { 8 | loose: !!options, 9 | includePrerelease: false 10 | } 11 | } 12 | 13 | if (version instanceof SemVer) { 14 | return version 15 | } 16 | 17 | if (typeof version !== 'string') { 18 | return null 19 | } 20 | 21 | if (version.length > MAX_LENGTH) { 22 | return null 23 | } 24 | 25 | const r = options.loose ? re[t.LOOSE] : re[t.FULL] 26 | if (!r.test(version)) { 27 | return null 28 | } 29 | 30 | try { 31 | return new SemVer(version, options) 32 | } catch (er) { 33 | return null 34 | } 35 | } 36 | 37 | module.exports = parse 38 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/semver.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | # Support pipeline input 13 | if ($MyInvocation.ExpectingInput) { 14 | $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args 15 | } else { 16 | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args 17 | } 18 | $ret=$LASTEXITCODE 19 | } else { 20 | # Support pipeline input 21 | if ($MyInvocation.ExpectingInput) { 22 | $input | & "node$exe" "$basedir/../semver/bin/semver" $args 23 | } else { 24 | & "node$exe" "$basedir/../semver/bin/semver" $args 25 | } 26 | $ret=$LASTEXITCODE 27 | } 28 | exit $ret 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/has-flag/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "has-flag", 3 | "version": "3.0.0", 4 | "description": "Check if argv has a specific flag", 5 | "license": "MIT", 6 | "repository": "sindresorhus/has-flag", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=4" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava" 17 | }, 18 | "files": [ 19 | "index.js" 20 | ], 21 | "keywords": [ 22 | "has", 23 | "check", 24 | "detect", 25 | "contains", 26 | "find", 27 | "flag", 28 | "cli", 29 | "command-line", 30 | "argv", 31 | "process", 32 | "arg", 33 | "args", 34 | "argument", 35 | "arguments", 36 | "getopt", 37 | "minimist", 38 | "optimist" 39 | ], 40 | "devDependencies": { 41 | "ava": "*", 42 | "xo": "*" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodemon.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | # Support pipeline input 13 | if ($MyInvocation.ExpectingInput) { 14 | $input | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 15 | } else { 16 | & "$basedir/node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 17 | } 18 | $ret=$LASTEXITCODE 19 | } else { 20 | # Support pipeline input 21 | if ($MyInvocation.ExpectingInput) { 22 | $input | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 23 | } else { 24 | & "node$exe" "$basedir/../nodemon/bin/nodemon.js" $args 25 | } 26 | $ret=$LASTEXITCODE 27 | } 28 | exit $ret 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/.bin/nodetouch.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | # Support pipeline input 13 | if ($MyInvocation.ExpectingInput) { 14 | $input | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args 15 | } else { 16 | & "$basedir/node$exe" "$basedir/../touch/bin/nodetouch.js" $args 17 | } 18 | $ret=$LASTEXITCODE 19 | } else { 20 | # Support pipeline input 21 | if ($MyInvocation.ExpectingInput) { 22 | $input | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args 23 | } else { 24 | & "node$exe" "$basedir/../touch/bin/nodetouch.js" $args 25 | } 26 | $ret=$LASTEXITCODE 27 | } 28 | exit $ret 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/hasNewVersion.ts: -------------------------------------------------------------------------------- 1 | import semver from 'semver'; 2 | import { createConfigDir, getLastUpdate, saveLastUpdate } from './cache'; 3 | import getDistVersion from './getDistVersion'; 4 | import { IUpdate } from './types'; 5 | 6 | const hasNewVersion = async ({ 7 | pkg, 8 | updateCheckInterval = 1000 * 60 * 60 * 24, 9 | distTag = 'latest', 10 | alwaysRun, 11 | }: IUpdate) => { 12 | createConfigDir(); 13 | const lastUpdateCheck = getLastUpdate(pkg.name); 14 | if ( 15 | alwaysRun || 16 | !lastUpdateCheck || 17 | lastUpdateCheck < new Date().getTime() - updateCheckInterval 18 | ) { 19 | const latestVersion = await getDistVersion(pkg.name, distTag); 20 | saveLastUpdate(pkg.name); 21 | if (semver.gt(latestVersion, pkg.version)) { 22 | return latestVersion; 23 | } 24 | return false; 25 | } else { 26 | return false; 27 | } 28 | }; 29 | 30 | export default hasNewVersion; 31 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/interface/expect.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * chai 3 | * Copyright(c) 2011-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | module.exports = function (chai, util) { 8 | chai.expect = function (val, message) { 9 | return new chai.Assertion(val, message); 10 | }; 11 | 12 | /** 13 | * ### .fail(actual, expected, [message], [operator]) 14 | * 15 | * Throw a failure. 16 | * 17 | * @name fail 18 | * @param {Mixed} actual 19 | * @param {Mixed} expected 20 | * @param {String} message 21 | * @param {String} operator 22 | * @namespace Expect 23 | * @api public 24 | */ 25 | 26 | chai.expect.fail = function (actual, expected, message, operator) { 27 | message = message || 'expect.fail()'; 28 | throw new chai.AssertionError(message, { 29 | actual: actual 30 | , expected: expected 31 | , operator: operator 32 | }, chai.expect.fail); 33 | }; 34 | }; 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/ignore-by-default/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ignore-by-default", 3 | "version": "1.0.1", 4 | "description": "A list of directories you should ignore by default", 5 | "main": "index.js", 6 | "files": [ 7 | "index.js" 8 | ], 9 | "scripts": { 10 | "test": "standard && node test.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "git+https://github.com/novemberborn/ignore-by-default.git" 15 | }, 16 | "keywords": [ 17 | "ignore", 18 | "chokidar", 19 | "watcher", 20 | "exclude", 21 | "glob", 22 | "pattern" 23 | ], 24 | "author": "Mark Wubben (https://novemberborn.net/)", 25 | "license": "ISC", 26 | "bugs": { 27 | "url": "https://github.com/novemberborn/ignore-by-default/issues" 28 | }, 29 | "homepage": "https://github.com/novemberborn/ignore-by-default#readme", 30 | "devDependencies": { 31 | "figures": "^1.4.0", 32 | "standard": "^6.0.4" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "undefsafe", 3 | "description": "Undefined safe way of extracting object properties", 4 | "main": "lib/undefsafe.js", 5 | "tonicExampleFilename": "example.js", 6 | "directories": { 7 | "test": "test" 8 | }, 9 | "scripts": { 10 | "test": "tap test/**/*.test.js -R spec", 11 | "cover": "tap test/*.test.js --cov --coverage-report=lcov", 12 | "semantic-release": "semantic-release" 13 | }, 14 | "prettier": { 15 | "trailingComma": "none", 16 | "singleQuote": true 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "https://github.com/remy/undefsafe.git" 21 | }, 22 | "keywords": [ 23 | "undefined" 24 | ], 25 | "author": "Remy Sharp", 26 | "license": "MIT", 27 | "devDependencies": { 28 | "semantic-release": "^18.0.0", 29 | "tap": "^5.7.1", 30 | "tap-only": "0.0.5" 31 | }, 32 | "dependencies": {}, 33 | "version": "2.0.5" 34 | } 35 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/config/defaults.js: -------------------------------------------------------------------------------- 1 | var ignoreRoot = require('ignore-by-default').directories(); 2 | 3 | // default options for config.options 4 | module.exports = { 5 | restartable: 'rs', 6 | colours: true, 7 | execMap: { 8 | py: 'python', 9 | rb: 'ruby', 10 | ts: 'ts-node', 11 | // more can be added here such as ls: lsc - but please ensure it's cross 12 | // compatible with linux, mac and windows, or make the default.js 13 | // dynamically append the `.cmd` for node based utilities 14 | }, 15 | ignoreRoot: ignoreRoot.map(_ => `**/${_}/**`), 16 | watch: ['*.*'], 17 | stdin: true, 18 | runOnChangeOnly: false, 19 | verbose: false, 20 | signal: 'SIGUSR2', 21 | // 'stdout' refers to the default behaviour of a required nodemon's child, 22 | // but also includes stderr. If this is false, data is still dispatched via 23 | // nodemon.on('stdout/stderr') 24 | stdout: true, 25 | watchOptions: { 26 | 27 | }, 28 | }; 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/.bin/semver.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent 3 | 4 | $exe="" 5 | if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { 6 | # Fix case when both the Windows and Linux builds of Node 7 | # are installed in the same directory 8 | $exe=".exe" 9 | } 10 | $ret=0 11 | if (Test-Path "$basedir/node$exe") { 12 | # Support pipeline input 13 | if ($MyInvocation.ExpectingInput) { 14 | $input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args 15 | } else { 16 | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args 17 | } 18 | $ret=$LASTEXITCODE 19 | } else { 20 | # Support pipeline input 21 | if ($MyInvocation.ExpectingInput) { 22 | $input | & "node$exe" "$basedir/../semver/bin/semver.js" $args 23 | } else { 24 | & "node$exe" "$basedir/../semver/bin/semver.js" $args 25 | } 26 | $ret=$LASTEXITCODE 27 | } 28 | exit $ret 29 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/flag.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - flag utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * ### flag(object, key, [value]) 9 | * 10 | * Get or set a flag value on an object. If a 11 | * value is provided it will be set, else it will 12 | * return the currently set value or `undefined` if 13 | * the value is not set. 14 | * 15 | * utils.flag(this, 'foo', 'bar'); // setter 16 | * utils.flag(this, 'foo'); // getter, returns `bar` 17 | * 18 | * @param {Object} object constructed Assertion 19 | * @param {String} key 20 | * @param {Mixed} value (optional) 21 | * @namespace Utils 22 | * @name flag 23 | * @api private 24 | */ 25 | 26 | module.exports = function (obj, key, value) { 27 | var flags = obj.__flags || (obj.__flags = Object.create(null)); 28 | if (arguments.length === 3) { 29 | flags[key] = value; 30 | } else { 31 | return flags[key]; 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/getDistVersion.ts: -------------------------------------------------------------------------------- 1 | import https from 'https'; 2 | 3 | const getDistVersion = async (packageName: string, distTag: string) => { 4 | const url = `https://registry.npmjs.org/-/package/${packageName}/dist-tags`; 5 | 6 | return new Promise((resolve, reject) => { 7 | https 8 | .get(url, (res) => { 9 | let body = ''; 10 | 11 | res.on('data', (chunk) => (body += chunk)); 12 | res.on('end', () => { 13 | try { 14 | const json = JSON.parse(body); 15 | const version = json[distTag]; 16 | if (!version) { 17 | reject(new Error('Error getting version')); 18 | } 19 | resolve(version); 20 | } catch { 21 | reject(new Error('Could not parse version response')); 22 | } 23 | }); 24 | }) 25 | .on('error', (err) => reject(err)); 26 | }); 27 | }; 28 | 29 | export default getDistVersion; 30 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getProperties.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - getProperties utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /** 8 | * ### .getProperties(object) 9 | * 10 | * This allows the retrieval of property names of an object, enumerable or not, 11 | * inherited or not. 12 | * 13 | * @param {Object} object 14 | * @returns {Array} 15 | * @namespace Utils 16 | * @name getProperties 17 | * @api public 18 | */ 19 | 20 | module.exports = function getProperties(object) { 21 | var result = Object.getOwnPropertyNames(object); 22 | 23 | function addProperty(property) { 24 | if (result.indexOf(property) === -1) { 25 | result.push(property); 26 | } 27 | } 28 | 29 | var proto = Object.getPrototypeOf(object); 30 | while (proto !== null) { 31 | Object.getOwnPropertyNames(proto).forEach(addProperty); 32 | proto = Object.getPrototypeOf(proto); 33 | } 34 | 35 | return result; 36 | }; 37 | -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/lib/index.js: -------------------------------------------------------------------------------- 1 | const exec = require('child_process').exec; 2 | const tree = require('./tree'); 3 | const utils = require('./utils'); 4 | var hasPS = true; 5 | 6 | // discover if the OS has `ps`, and therefore can use psTree 7 | exec('ps', (error) => { 8 | module.exports.hasPS = hasPS = !error; 9 | }); 10 | 11 | module.exports = function main(pid, callback) { 12 | if (typeof pid === 'number') { 13 | pid = pid.toString(); 14 | } 15 | 16 | if (hasPS && !process.env.NO_PS) { 17 | return tree(pid, callback); 18 | } 19 | 20 | utils 21 | .getStat() 22 | .then(utils.tree) 23 | .then((tree) => utils.pidsForTree(tree, pid)) 24 | .then((res) => 25 | callback( 26 | null, 27 | res.map((p) => p.PID) 28 | ) 29 | ) 30 | .catch((error) => callback(error)); 31 | }; 32 | 33 | if (!module.parent) { 34 | module.exports(process.argv[2], (e, pids) => console.log(pids)); 35 | } 36 | 37 | module.exports.hasPS = hasPS; 38 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rupiah-format", 3 | "version": "1.0.0", 4 | "description": "Change normal number to rupiah format", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "mocha --reporter spec" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/dharmadi93/rupiah-format.git" 12 | }, 13 | "keywords": [ 14 | "rupiah", 15 | "format", 16 | "indonesia", 17 | "uang", 18 | "money", 19 | "rupiah", 20 | "format", 21 | "rupiah-format" 22 | ], 23 | "author": "Dharmadi Tanamas ", 24 | "license": "ISC", 25 | "bugs": { 26 | "url": "https://github.com/dharmadi93/rupiah-format/issues" 27 | }, 28 | "homepage": "https://github.com/dharmadi93/rupiah-format#readme", 29 | "engines": { 30 | "node": ">=6.0.0" 31 | }, 32 | "devDependencies": { 33 | "mocha": "^3.1.2" 34 | }, 35 | "dependencies": { 36 | "chai": "^3.5.0" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/getDistVersion.spec.ts: -------------------------------------------------------------------------------- 1 | import Stream from 'stream'; 2 | import https from 'https'; 3 | import getDistVersion from './getDistVersion'; 4 | 5 | jest.mock('https', () => ({ 6 | get: jest.fn(), 7 | })); 8 | 9 | test('Valid response returns version', async () => { 10 | const st = new Stream(); 11 | (https.get as jest.Mock).mockImplementation((url, cb) => { 12 | cb(st); 13 | 14 | st.emit('data', '{"latest":"1.0.0"}'); 15 | st.emit('end'); 16 | }); 17 | 18 | const version = await getDistVersion('test', 'latest'); 19 | 20 | expect(version).toEqual('1.0.0'); 21 | }); 22 | 23 | test('Invalid response throws error', async () => { 24 | const st = new Stream(); 25 | (https.get as jest.Mock).mockImplementation((url, cb) => { 26 | cb(st); 27 | 28 | st.emit('data', 'some invalid json'); 29 | st.emit('end'); 30 | }); 31 | 32 | expect(getDistVersion('test', 'latest')).rejects.toThrow( 33 | 'Could not parse version response' 34 | ); 35 | }); 36 | -------------------------------------------------------------------------------- /sesi-7/node_modules/deep-eql/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "deep-eql" 3 | , "version": "0.1.3" 4 | , "description": "Improved deep equality testing for Node.js and the browser." 5 | , "author": "Jake Luer " 6 | , "license": "MIT" 7 | , "keywords": [ 8 | "deep equal" 9 | , "object equal" 10 | , "testing" 11 | , "chai util" 12 | ] 13 | , "repository": { 14 | "type": "git" 15 | , "url": "git@github.com:chaijs/deep-eql.git" 16 | } 17 | , "engines": { 18 | "node": "*" 19 | } 20 | , "main": "./index" 21 | , "scripts": { 22 | "test": "make test" 23 | } 24 | , "dependencies": { 25 | "type-detect": "0.1.1" 26 | } 27 | , "devDependencies": { 28 | "component": "*" 29 | , "coveralls": "2.0.16" 30 | , "jscoverage": "0.3.7" 31 | , "karma": "0.10.x" 32 | , "karma-mocha": "*" 33 | , "mocha": "*" 34 | , "mocha-lcov-reporter": "0.0.1" 35 | , "simple-assert": "*" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/rules/parse.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var fs = require('fs'); 3 | 4 | /** 5 | * Parse the nodemon config file, supporting both old style 6 | * plain text config file, and JSON version of the config 7 | * 8 | * @param {String} filename 9 | * @param {Function} callback 10 | */ 11 | function parse(filename, callback) { 12 | var rules = { 13 | ignore: [], 14 | watch: [], 15 | }; 16 | 17 | fs.readFile(filename, 'utf8', function (err, content) { 18 | 19 | if (err) { 20 | return callback(err); 21 | } 22 | 23 | var json = null; 24 | try { 25 | json = JSON.parse(content); 26 | } catch (e) {} 27 | 28 | if (json !== null) { 29 | rules = { 30 | ignore: json.ignore || [], 31 | watch: json.watch || [], 32 | }; 33 | 34 | return callback(null, rules); 35 | } 36 | 37 | // otherwise return the raw file 38 | return callback(null, { raw: content.split(/\n/) }); 39 | }); 40 | } 41 | 42 | module.exports = parse; 43 | 44 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/utils/clone.js: -------------------------------------------------------------------------------- 1 | module.exports = clone; 2 | 3 | // via http://stackoverflow.com/a/728694/22617 4 | function clone(obj) { 5 | // Handle the 3 simple types, and null or undefined 6 | if (null === obj || 'object' !== typeof obj) { 7 | return obj; 8 | } 9 | 10 | var copy; 11 | 12 | // Handle Date 13 | if (obj instanceof Date) { 14 | copy = new Date(); 15 | copy.setTime(obj.getTime()); 16 | return copy; 17 | } 18 | 19 | // Handle Array 20 | if (obj instanceof Array) { 21 | copy = []; 22 | for (var i = 0, len = obj.length; i < len; i++) { 23 | copy[i] = clone(obj[i]); 24 | } 25 | return copy; 26 | } 27 | 28 | // Handle Object 29 | if (obj instanceof Object) { 30 | copy = {}; 31 | for (var attr in obj) { 32 | if (obj.hasOwnProperty && obj.hasOwnProperty(attr)) { 33 | copy[attr] = clone(obj[attr]); 34 | } 35 | } 36 | return copy; 37 | } 38 | 39 | throw new Error('Unable to copy obj! Its type isn\'t supported.'); 40 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/lib/tree.js: -------------------------------------------------------------------------------- 1 | const spawn = require('child_process').spawn; 2 | 3 | module.exports = function (rootPid, callback) { 4 | const pidsOfInterest = new Set([parseInt(rootPid, 10)]); 5 | var output = ''; 6 | 7 | // *nix 8 | const ps = spawn('ps', ['-A', '-o', 'ppid,pid']); 9 | ps.stdout.on('data', (data) => { 10 | output += data.toString('ascii'); 11 | }); 12 | 13 | ps.on('close', () => { 14 | try { 15 | const res = output 16 | .split('\n') 17 | .slice(1) 18 | .map((_) => _.trim()) 19 | .reduce((acc, line) => { 20 | const pids = line.split(/\s+/); 21 | const ppid = parseInt(pids[0], 10); 22 | 23 | if (pidsOfInterest.has(ppid)) { 24 | const pid = parseInt(pids[1], 10); 25 | acc.push(pid); 26 | pidsOfInterest.add(pid); 27 | } 28 | 29 | return acc; 30 | }, []); 31 | 32 | callback(null, res); 33 | } catch (e) { 34 | callback(e, null); 35 | } 36 | }); 37 | }; 38 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/bin/postinstall.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | function main() { 4 | if (process.env.SUPPRESS_SUPPORT || process.env.OPENCOLLECTIVE_HIDE || process.env.CI) { 5 | return; 6 | } 7 | 8 | const message = '\u001b[32mLove nodemon? You can now support the project via the open collective:\u001b[22m\u001b[39m\n > \u001b[96m\u001b[1mhttps://opencollective.com/nodemon/donate\u001b[0m\n'; 9 | 10 | try { 11 | const Configstore = require('configstore'); 12 | const pkg = require(__dirname + '/../package.json'); 13 | const now = Date.now(); 14 | 15 | var week = 1000 * 60 * 60 * 24 * 7; 16 | 17 | // create a Configstore instance with an unique ID e.g. 18 | // Package name and optionally some default values 19 | const conf = new Configstore(pkg.name); 20 | const last = conf.get('lastCheck'); 21 | 22 | if (!last || now - week > last) { 23 | console.log(message); 24 | conf.set('lastCheck', now); 25 | } 26 | } catch (e) { 27 | console.log(message); 28 | } 29 | } 30 | 31 | main(); 32 | -------------------------------------------------------------------------------- /sesi-7/node_modules/supports-color/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "supports-color", 3 | "version": "5.5.0", 4 | "description": "Detect whether a terminal supports color", 5 | "license": "MIT", 6 | "repository": "chalk/supports-color", 7 | "author": { 8 | "name": "Sindre Sorhus", 9 | "email": "sindresorhus@gmail.com", 10 | "url": "sindresorhus.com" 11 | }, 12 | "engines": { 13 | "node": ">=4" 14 | }, 15 | "scripts": { 16 | "test": "xo && ava" 17 | }, 18 | "files": [ 19 | "index.js", 20 | "browser.js" 21 | ], 22 | "keywords": [ 23 | "color", 24 | "colour", 25 | "colors", 26 | "terminal", 27 | "console", 28 | "cli", 29 | "ansi", 30 | "styles", 31 | "tty", 32 | "rgb", 33 | "256", 34 | "shell", 35 | "xterm", 36 | "command-line", 37 | "support", 38 | "supports", 39 | "capability", 40 | "detect", 41 | "truecolor", 42 | "16m" 43 | ], 44 | "dependencies": { 45 | "has-flag": "^3.0.0" 46 | }, 47 | "devDependencies": { 48 | "ava": "^0.25.0", 49 | "import-fresh": "^2.0.0", 50 | "xo": "^0.20.0" 51 | }, 52 | "browser": "browser.js" 53 | } 54 | -------------------------------------------------------------------------------- /sesi-8x/index.js: -------------------------------------------------------------------------------- 1 | let passwordLength = document.getElementById("passwordLength") 2 | let password = document.getElementById("password") 3 | let saveButton = document.getElementById("saveButton") 4 | 5 | const generatePassword = (len) => { 6 | const lowerAlphabet = "abcdefghijklmnopqrstuvwxyz" 7 | const upperAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 8 | const numeric = "0123456789" 9 | const symbol = "!@#$%^&*()_+=-{}[]';:/?.,<>~`" 10 | 11 | const data = lowerAlphabet + upperAlphabet + numeric + symbol 12 | let generator = ''; 13 | for (let index = 0; index < len; index++) { 14 | generator += data[~~(Math.random() * data.length)]; 15 | } 16 | return generator 17 | } 18 | 19 | const getPassword = () => { 20 | const newPassword = generatePassword(passwordLength.value) 21 | password.value = newPassword 22 | } 23 | 24 | const savePassword = () => { 25 | document.title = password.value 26 | saveButton.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(`password saya: ${document.title}`)) 27 | saveButton.setAttribute('download', 'MyPasswordGeneratorLOG.txt') 28 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/anymatch/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "anymatch", 3 | "version": "3.1.2", 4 | "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", 5 | "files": [ 6 | "index.js", 7 | "index.d.ts" 8 | ], 9 | "dependencies": { 10 | "normalize-path": "^3.0.0", 11 | "picomatch": "^2.0.4" 12 | }, 13 | "author": { 14 | "name": "Elan Shanker", 15 | "url": "https://github.com/es128" 16 | }, 17 | "license": "ISC", 18 | "homepage": "https://github.com/micromatch/anymatch", 19 | "repository": { 20 | "type": "git", 21 | "url": "https://github.com/micromatch/anymatch" 22 | }, 23 | "keywords": [ 24 | "match", 25 | "any", 26 | "string", 27 | "file", 28 | "fs", 29 | "list", 30 | "glob", 31 | "regex", 32 | "regexp", 33 | "regular", 34 | "expression", 35 | "function" 36 | ], 37 | "scripts": { 38 | "test": "nyc mocha", 39 | "mocha": "mocha" 40 | }, 41 | "devDependencies": { 42 | "mocha": "^6.1.3", 43 | "nyc": "^14.0.0" 44 | }, 45 | "engines": { 46 | "node": ">= 8" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2019 Remy Sharp, https://remysharp.com 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /sesi-7/node_modules/has-flag/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /sesi-7/node_modules/supports-color/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/LICENSE: -------------------------------------------------------------------------------- 1 | This software is released under the MIT license: 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/utils/bus.js: -------------------------------------------------------------------------------- 1 | var events = require('events'); 2 | var debug = require('debug')('nodemon'); 3 | var util = require('util'); 4 | 5 | var Bus = function () { 6 | events.EventEmitter.call(this); 7 | }; 8 | 9 | util.inherits(Bus, events.EventEmitter); 10 | 11 | var bus = new Bus(); 12 | 13 | // /* 14 | var collected = {}; 15 | bus.on('newListener', function (event) { 16 | debug('bus new listener: %s (%s)', event, bus.listeners(event).length); 17 | if (!collected[event]) { 18 | collected[event] = true; 19 | bus.on(event, function () { 20 | debug('bus emit: %s', event); 21 | }); 22 | } 23 | }); 24 | 25 | // */ 26 | 27 | // proxy process messages (if forked) to the bus 28 | process.on('message', function (event) { 29 | debug('process.message(%s)', event); 30 | bus.emit(event); 31 | }); 32 | 33 | var emit = bus.emit; 34 | 35 | // if nodemon was spawned via a fork, allow upstream communication 36 | // via process.send 37 | if (process.send) { 38 | bus.emit = function (event, data) { 39 | process.send({ type: event, data: data }); 40 | emit.apply(bus, arguments); 41 | }; 42 | } 43 | 44 | module.exports = bus; 45 | -------------------------------------------------------------------------------- /sesi-7/node_modules/ms/license.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Vercel, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/rupiah-format/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Dharmadi Tanamas 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/braces/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2018, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Alex Brazier 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/node_modules/semver/functions/cmp.js: -------------------------------------------------------------------------------- 1 | const eq = require('./eq') 2 | const neq = require('./neq') 3 | const gt = require('./gt') 4 | const gte = require('./gte') 5 | const lt = require('./lt') 6 | const lte = require('./lte') 7 | 8 | const cmp = (a, op, b, loose) => { 9 | switch (op) { 10 | case '===': 11 | if (typeof a === 'object') 12 | a = a.version 13 | if (typeof b === 'object') 14 | b = b.version 15 | return a === b 16 | 17 | case '!==': 18 | if (typeof a === 'object') 19 | a = a.version 20 | if (typeof b === 'object') 21 | b = b.version 22 | return a !== b 23 | 24 | case '': 25 | case '=': 26 | case '==': 27 | return eq(a, b, loose) 28 | 29 | case '!=': 30 | return neq(a, b, loose) 31 | 32 | case '>': 33 | return gt(a, b, loose) 34 | 35 | case '>=': 36 | return gte(a, b, loose) 37 | 38 | case '<': 39 | return lt(a, b, loose) 40 | 41 | case '<=': 42 | return lte(a, b, loose) 43 | 44 | default: 45 | throw new TypeError(`Invalid operator: ${op}`) 46 | } 47 | } 48 | module.exports = cmp 49 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-extglob/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2016, Jon Schlinkert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-glob/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2017, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nopt/examples/my-program.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | //process.env.DEBUG_NOPT = 1 4 | 5 | // my-program.js 6 | var nopt = require("../lib/nopt") 7 | , Stream = require("stream").Stream 8 | , path = require("path") 9 | , knownOpts = { "foo" : [String, null] 10 | , "bar" : [Stream, Number] 11 | , "baz" : path 12 | , "bloo" : [ "big", "medium", "small" ] 13 | , "flag" : Boolean 14 | , "pick" : Boolean 15 | } 16 | , shortHands = { "foofoo" : ["--foo", "Mr. Foo"] 17 | , "b7" : ["--bar", "7"] 18 | , "m" : ["--bloo", "medium"] 19 | , "p" : ["--pick"] 20 | , "f" : ["--flag", "true"] 21 | , "g" : ["--flag"] 22 | , "s" : "--flag" 23 | } 24 | // everything is optional. 25 | // knownOpts and shorthands default to {} 26 | // arg list defaults to process.argv 27 | // slice defaults to 2 28 | , parsed = nopt(knownOpts, shortHands, process.argv, 2) 29 | 30 | console.log("parsed =\n"+ require("util").inspect(parsed)) 31 | -------------------------------------------------------------------------------- /sesi-7/node_modules/debug/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014 TJ Holowaychuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 6 | and associated documentation files (the 'Software'), to deal in the Software without restriction, 7 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 9 | subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial 12 | portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 15 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 17 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 18 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | 20 | -------------------------------------------------------------------------------- /sesi-7/node_modules/fill-range/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-number/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/normalize-path/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2018, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/picomatch/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nopt/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2009, 2010, 2011 Isaac Z. Schlueter. 2 | All rights reserved. 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /sesi-7/node_modules/normalize-path/index.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * normalize-path 3 | * 4 | * Copyright (c) 2014-2018, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | module.exports = function(path, stripTrailing) { 9 | if (typeof path !== 'string') { 10 | throw new TypeError('expected path to be a string'); 11 | } 12 | 13 | if (path === '\\' || path === '/') return '/'; 14 | 15 | var len = path.length; 16 | if (len <= 1) return path; 17 | 18 | // ensure that win32 namespaces has two leading slashes, so that the path is 19 | // handled properly by the win32 version of path.parse() after being normalized 20 | // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces 21 | var prefix = ''; 22 | if (len > 4 && path[3] === '\\') { 23 | var ch = path[2]; 24 | if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { 25 | path = path.slice(2); 26 | prefix = '//'; 27 | } 28 | } 29 | 30 | var segs = path.split(/[/\\]+/); 31 | if (stripTrailing !== false && segs[segs.length - 1] === '') { 32 | segs.pop(); 33 | } 34 | return prefix + segs.join('/'); 35 | }; 36 | -------------------------------------------------------------------------------- /sesi-7/node_modules/to-regex-range/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-present, Jon Schlinkert. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/balanced-match/LICENSE.md: -------------------------------------------------------------------------------- 1 | (MIT) 2 | 3 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 9 | of the Software, and to permit persons to whom the Software is furnished to do 10 | so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/readme.md: -------------------------------------------------------------------------------- 1 | # binary-extensions 2 | 3 | > List of binary file extensions 4 | 5 | The list is just a [JSON file](binary-extensions.json) and can be used anywhere. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install binary-extensions 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | const binaryExtensions = require('binary-extensions'); 19 | 20 | console.log(binaryExtensions); 21 | //=> ['3ds', '3g2', …] 22 | ``` 23 | 24 | 25 | ## Related 26 | 27 | - [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file 28 | - [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions 29 | 30 | 31 | --- 32 | 33 |
34 | 35 | Get professional support for this package with a Tidelift subscription 36 | 37 |
38 | 39 | Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. 40 |
41 |
42 | -------------------------------------------------------------------------------- /sesi-7/node_modules/brace-expansion/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013 Julian Gruber 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "concat-map", 3 | "description" : "concatenative mapdashery", 4 | "version" : "0.0.1", 5 | "repository" : { 6 | "type" : "git", 7 | "url" : "git://github.com/substack/node-concat-map.git" 8 | }, 9 | "main" : "index.js", 10 | "keywords" : [ 11 | "concat", 12 | "concatMap", 13 | "map", 14 | "functional", 15 | "higher-order" 16 | ], 17 | "directories" : { 18 | "example" : "example", 19 | "test" : "test" 20 | }, 21 | "scripts" : { 22 | "test" : "tape test/*.js" 23 | }, 24 | "devDependencies" : { 25 | "tape" : "~2.4.0" 26 | }, 27 | "license" : "MIT", 28 | "author" : { 29 | "name" : "James Halliday", 30 | "email" : "mail@substack.net", 31 | "url" : "http://substack.net" 32 | }, 33 | "testling" : { 34 | "files" : "test/*.js", 35 | "browsers" : { 36 | "ie" : [ 6, 7, 8, 9 ], 37 | "ff" : [ 3.5, 10, 15.0 ], 38 | "chrome" : [ 10, 22 ], 39 | "safari" : [ 5.1 ], 40 | "opera" : [ 12 ] 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /sesi-7/node_modules/is-binary-path/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /sesi-7/node_modules/binary-extensions/license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /sesi-7/node_modules/readdirp/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chokidar/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the “Software”), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2010 - present, Remy Sharp, https://remysharp.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /sesi-7/node_modules/simple-update-notifier/src/cache.ts: -------------------------------------------------------------------------------- 1 | import os from 'os'; 2 | import path from 'path'; 3 | import fs from 'fs'; 4 | 5 | const homeDirectory = os.homedir(); 6 | const configDir = 7 | process.env.XDG_CONFIG_HOME || 8 | path.join(homeDirectory, '.config', 'simple-update-notifier'); 9 | 10 | const getConfigFile = (packageName: string) => { 11 | return path.join(configDir, `${packageName}.json`); 12 | }; 13 | 14 | export const createConfigDir = () => { 15 | if (!fs.existsSync(configDir)) { 16 | fs.mkdirSync(configDir, { recursive: true }); 17 | } 18 | }; 19 | 20 | export const getLastUpdate = (packageName: string) => { 21 | const configFile = getConfigFile(packageName); 22 | 23 | try { 24 | if (!fs.existsSync(configFile)) { 25 | return undefined; 26 | } 27 | const file = JSON.parse(fs.readFileSync(configFile, 'utf8')); 28 | return file.lastUpdateCheck as number; 29 | } catch { 30 | return undefined; 31 | } 32 | }; 33 | 34 | export const saveLastUpdate = (packageName: string) => { 35 | const configFile = getConfigFile(packageName); 36 | 37 | fs.writeFileSync( 38 | configFile, 39 | JSON.stringify({ lastUpdateCheck: new Date().getTime() }) 40 | ); 41 | }; 42 | -------------------------------------------------------------------------------- /sesi-7/node_modules/undefsafe/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2016 Remy Sharp, http://remysharp.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /sesi-7/node_modules/readdirp/index.d.ts: -------------------------------------------------------------------------------- 1 | // TypeScript Version: 3.2 2 | 3 | /// 4 | 5 | import * as fs from 'fs'; 6 | import { Readable } from 'stream'; 7 | 8 | declare namespace readdir { 9 | interface EntryInfo { 10 | path: string; 11 | fullPath: string; 12 | basename: string; 13 | stats?: fs.Stats; 14 | dirent?: fs.Dirent; 15 | } 16 | 17 | interface ReaddirpOptions { 18 | root?: string; 19 | fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); 20 | directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); 21 | type?: 'files' | 'directories' | 'files_directories' | 'all'; 22 | lstat?: boolean; 23 | depth?: number; 24 | alwaysStat?: boolean; 25 | } 26 | 27 | interface ReaddirpStream extends Readable, AsyncIterable { 28 | read(): EntryInfo; 29 | [Symbol.asyncIterator](): AsyncIterableIterator; 30 | } 31 | 32 | function promise( 33 | root: string, 34 | options?: ReaddirpOptions 35 | ): Promise; 36 | } 37 | 38 | declare function readdir( 39 | root: string, 40 | options?: readdir.ReaddirpOptions 41 | ): readdir.ReaddirpStream; 42 | 43 | export = readdir; 44 | -------------------------------------------------------------------------------- /sesi-1/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CONTACT ME 4 | 5 | 6 | 7 |
8 | 9 |
10 | 21 |
22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 37 | 38 |
39 | 40 | -------------------------------------------------------------------------------- /sesi-1/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | ABOUT ME 4 | 5 | 6 | 7 |
8 | 9 |
10 | 21 |
22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 37 | 38 |
39 | 40 | -------------------------------------------------------------------------------- /sesi-6/style.css: -------------------------------------------------------------------------------- 1 | *, 2 | html, 3 | body { 4 | margin: 0; 5 | padding: 0; 6 | } 7 | 8 | body { 9 | font-family: Arial, Helvetica, sans-serif; 10 | background-color: white; 11 | color: black; 12 | } 13 | 14 | .dark { 15 | background-color: black; 16 | color: white; 17 | } 18 | 19 | .container { 20 | display: flex; 21 | justify-content: center; 22 | align-items: center; 23 | width: 100%; 24 | height: 100vh; 25 | } 26 | 27 | nav { 28 | position: fixed; 29 | bottom: 0; 30 | background-color: black; 31 | width: 100%; 32 | padding: 15px; 33 | } 34 | 35 | nav a { 36 | color: white; 37 | padding: 15px; 38 | text-decoration: none; 39 | font-weight: 700; 40 | } 41 | 42 | nav a:hover { 43 | background-color: tomato; 44 | cursor: pointer; 45 | transition: background-color .5s ease-in-out; 46 | } 47 | 48 | .info { 49 | display: flex; 50 | justify-content: center; 51 | align-items: center; 52 | position: absolute; 53 | top: 10%; 54 | font-size: 16px; 55 | font-weight: 700; 56 | animation: jedagJedug .5s infinite; 57 | } 58 | 59 | @keyframes jedagJedug { 60 | 0% { 61 | font-size: 16px; 62 | } 63 | 64 | 50% { 65 | font-size: 18px; 66 | } 67 | 68 | 100% { 69 | font-size: 16px; 70 | } 71 | } -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getPathValue.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - getPathValue utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * @see https://github.com/logicalparadox/filtr 5 | * MIT Licensed 6 | */ 7 | 8 | var getPathInfo = require('./getPathInfo'); 9 | 10 | /** 11 | * ### .getPathValue(path, object) 12 | * 13 | * This allows the retrieval of values in an 14 | * object given a string path. 15 | * 16 | * var obj = { 17 | * prop1: { 18 | * arr: ['a', 'b', 'c'] 19 | * , str: 'Hello' 20 | * } 21 | * , prop2: { 22 | * arr: [ { nested: 'Universe' } ] 23 | * , str: 'Hello again!' 24 | * } 25 | * } 26 | * 27 | * The following would be the results. 28 | * 29 | * getPathValue('prop1.str', obj); // Hello 30 | * getPathValue('prop1.att[2]', obj); // b 31 | * getPathValue('prop2.arr[0].nested', obj); // Universe 32 | * 33 | * @param {String} path 34 | * @param {Object} object 35 | * @returns {Object} value or `undefined` 36 | * @namespace Utils 37 | * @name getPathValue 38 | * @api public 39 | */ 40 | module.exports = function(path, obj) { 41 | var info = getPathInfo(path, obj); 42 | return info.value; 43 | }; 44 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/doc/cli/whoami.txt: -------------------------------------------------------------------------------- 1 | __/\\\\\_____/\\\_______/\\\\\_______/\\\\\\\\\\\\_____/\\\\\\\\\\\\\\\__/\\\\____________/\\\\_______/\\\\\_______/\\\\\_____/\\\_ 2 | _\/\\\\\\___\/\\\_____/\\\///\\\____\/\\\////////\\\__\/\\\///////////__\/\\\\\\________/\\\\\\_____/\\\///\\\____\/\\\\\\___\/\\\_ 3 | _\/\\\/\\\__\/\\\___/\\\/__\///\\\__\/\\\______\//\\\_\/\\\_____________\/\\\//\\\____/\\\//\\\___/\\\/__\///\\\__\/\\\/\\\__\/\\\_ 4 | _\/\\\//\\\_\/\\\__/\\\______\//\\\_\/\\\_______\/\\\_\/\\\\\\\\\\\_____\/\\\\///\\\/\\\/_\/\\\__/\\\______\//\\\_\/\\\//\\\_\/\\\_ 5 | _\/\\\\//\\\\/\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\///////______\/\\\__\///\\\/___\/\\\_\/\\\_______\/\\\_\/\\\\//\\\\/\\\_ 6 | _\/\\\_\//\\\/\\\_\//\\\______/\\\__\/\\\_______\/\\\_\/\\\_____________\/\\\____\///_____\/\\\_\//\\\______/\\\__\/\\\_\//\\\/\\\_ 7 | _\/\\\__\//\\\\\\__\///\\\__/\\\____\/\\\_______/\\\__\/\\\_____________\/\\\_____________\/\\\__\///\\\__/\\\____\/\\\__\//\\\\\\_ 8 | _\/\\\___\//\\\\\____\///\\\\\/_____\/\\\\\\\\\\\\/___\/\\\\\\\\\\\\\\\_\/\\\_____________\/\\\____\///\\\\\/_____\/\\\___\//\\\\\_ 9 | _\///_____\/////_______\/////_______\////////////_____\///////////////__\///______________\///_______\/////_______\///_____\/////__ -------------------------------------------------------------------------------- /sesi-7/node_modules/concat-map/test/map.js: -------------------------------------------------------------------------------- 1 | var concatMap = require('../'); 2 | var test = require('tape'); 3 | 4 | test('empty or not', function (t) { 5 | var xs = [ 1, 2, 3, 4, 5, 6 ]; 6 | var ixes = []; 7 | var ys = concatMap(xs, function (x, ix) { 8 | ixes.push(ix); 9 | return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; 10 | }); 11 | t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); 12 | t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); 13 | t.end(); 14 | }); 15 | 16 | test('always something', function (t) { 17 | var xs = [ 'a', 'b', 'c', 'd' ]; 18 | var ys = concatMap(xs, function (x) { 19 | return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; 20 | }); 21 | t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); 22 | t.end(); 23 | }); 24 | 25 | test('scalars', function (t) { 26 | var xs = [ 'a', 'b', 'c', 'd' ]; 27 | var ys = concatMap(xs, function (x) { 28 | return x === 'b' ? [ 'B', 'B', 'B' ] : x; 29 | }); 30 | t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); 31 | t.end(); 32 | }); 33 | 34 | test('undefs', function (t) { 35 | var xs = [ 'a', 'b', 'c', 'd' ]; 36 | var ys = concatMap(xs, function () {}); 37 | t.same(ys, [ undefined, undefined, undefined, undefined ]); 38 | t.end(); 39 | }); 40 | -------------------------------------------------------------------------------- /sesi-7/node_modules/balanced-match/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "balanced-match", 3 | "description": "Match balanced character pairs, like \"{\" and \"}\"", 4 | "version": "1.0.2", 5 | "repository": { 6 | "type": "git", 7 | "url": "git://github.com/juliangruber/balanced-match.git" 8 | }, 9 | "homepage": "https://github.com/juliangruber/balanced-match", 10 | "main": "index.js", 11 | "scripts": { 12 | "test": "tape test/test.js", 13 | "bench": "matcha test/bench.js" 14 | }, 15 | "devDependencies": { 16 | "matcha": "^0.7.0", 17 | "tape": "^4.6.0" 18 | }, 19 | "keywords": [ 20 | "match", 21 | "regexp", 22 | "test", 23 | "balanced", 24 | "parse" 25 | ], 26 | "author": { 27 | "name": "Julian Gruber", 28 | "email": "mail@juliangruber.com", 29 | "url": "http://juliangruber.com" 30 | }, 31 | "license": "MIT", 32 | "testling": { 33 | "files": "test/*.js", 34 | "browsers": [ 35 | "ie/8..latest", 36 | "firefox/20..latest", 37 | "firefox/nightly", 38 | "chrome/25..latest", 39 | "chrome/canary", 40 | "opera/12..latest", 41 | "opera/next", 42 | "safari/5.1..latest", 43 | "ipad/6.0..latest", 44 | "iphone/6.0..latest", 45 | "android-browser/4.2..latest" 46 | ] 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /sesi-7/node_modules/glob-parent/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var isGlob = require('is-glob'); 4 | var pathPosixDirname = require('path').posix.dirname; 5 | var isWin32 = require('os').platform() === 'win32'; 6 | 7 | var slash = '/'; 8 | var backslash = /\\/g; 9 | var enclosure = /[\{\[].*[\}\]]$/; 10 | var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; 11 | var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; 12 | 13 | /** 14 | * @param {string} str 15 | * @param {Object} opts 16 | * @param {boolean} [opts.flipBackslashes=true] 17 | * @returns {string} 18 | */ 19 | module.exports = function globParent(str, opts) { 20 | var options = Object.assign({ flipBackslashes: true }, opts); 21 | 22 | // flip windows path separators 23 | if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { 24 | str = str.replace(backslash, slash); 25 | } 26 | 27 | // special case for strings ending in enclosure containing path separator 28 | if (enclosure.test(str)) { 29 | str += slash; 30 | } 31 | 32 | // preserves full path in case of trailing path separator 33 | str += 'a'; 34 | 35 | // remove path parts that are globby 36 | do { 37 | str = pathPosixDirname(str); 38 | } while (isGlob(str) || globby.test(str)); 39 | 40 | // remove escape chars and return result 41 | return str.replace(escaped, '$1'); 42 | }; 43 | -------------------------------------------------------------------------------- /sesi-7/node_modules/has-flag/readme.md: -------------------------------------------------------------------------------- 1 | # has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) 2 | 3 | > Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag 4 | 5 | Correctly stops looking after an `--` argument terminator. 6 | 7 | 8 | ## Install 9 | 10 | ``` 11 | $ npm install has-flag 12 | ``` 13 | 14 | 15 | ## Usage 16 | 17 | ```js 18 | // foo.js 19 | const hasFlag = require('has-flag'); 20 | 21 | hasFlag('unicorn'); 22 | //=> true 23 | 24 | hasFlag('--unicorn'); 25 | //=> true 26 | 27 | hasFlag('f'); 28 | //=> true 29 | 30 | hasFlag('-f'); 31 | //=> true 32 | 33 | hasFlag('foo=bar'); 34 | //=> true 35 | 36 | hasFlag('foo'); 37 | //=> false 38 | 39 | hasFlag('rainbow'); 40 | //=> false 41 | ``` 42 | 43 | ``` 44 | $ node foo.js -f --unicorn --foo=bar -- --rainbow 45 | ``` 46 | 47 | 48 | ## API 49 | 50 | ### hasFlag(flag, [argv]) 51 | 52 | Returns a boolean for whether the flag exists. 53 | 54 | #### flag 55 | 56 | Type: `string` 57 | 58 | CLI flag to look for. The `--` prefix is optional. 59 | 60 | #### argv 61 | 62 | Type: `string[]`
63 | Default: `process.argv` 64 | 65 | CLI arguments. 66 | 67 | 68 | ## License 69 | 70 | MIT © [Sindre Sorhus](https://sindresorhus.com) 71 | -------------------------------------------------------------------------------- /sesi-7/node_modules/nodemon/lib/cli/index.js: -------------------------------------------------------------------------------- 1 | var parse = require('./parse'); 2 | 3 | /** 4 | * Converts a string to command line args, in particular 5 | * groups together quoted values. 6 | * This is a utility function to allow calling nodemon as a required 7 | * library, but with the CLI args passed in (instead of an object). 8 | * 9 | * @param {String} string 10 | * @return {Array} 11 | */ 12 | function stringToArgs(string) { 13 | var args = []; 14 | 15 | var parts = string.split(' '); 16 | var length = parts.length; 17 | var i = 0; 18 | var open = false; 19 | var grouped = ''; 20 | var lead = ''; 21 | 22 | for (; i < length; i++) { 23 | lead = parts[i].substring(0, 1); 24 | if (lead === '"' || lead === '\'') { 25 | open = lead; 26 | grouped = parts[i].substring(1); 27 | } else if (open && parts[i].slice(-1) === open) { 28 | open = false; 29 | grouped += ' ' + parts[i].slice(0, -1); 30 | args.push(grouped); 31 | } else if (open) { 32 | grouped += ' ' + parts[i]; 33 | } else { 34 | args.push(parts[i]); 35 | } 36 | } 37 | 38 | return args; 39 | } 40 | 41 | module.exports = { 42 | parse: function (argv) { 43 | if (typeof argv === 'string') { 44 | argv = stringToArgs(argv); 45 | } 46 | 47 | return parse(argv); 48 | }, 49 | }; -------------------------------------------------------------------------------- /sesi-7/node_modules/glob-parent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glob-parent", 3 | "version": "5.1.2", 4 | "description": "Extract the non-magic parent path from a glob string.", 5 | "author": "Gulp Team (https://gulpjs.com/)", 6 | "contributors": [ 7 | "Elan Shanker (https://github.com/es128)", 8 | "Blaine Bublitz " 9 | ], 10 | "repository": "gulpjs/glob-parent", 11 | "license": "ISC", 12 | "engines": { 13 | "node": ">= 6" 14 | }, 15 | "main": "index.js", 16 | "files": [ 17 | "LICENSE", 18 | "index.js" 19 | ], 20 | "scripts": { 21 | "lint": "eslint .", 22 | "pretest": "npm run lint", 23 | "test": "nyc mocha --async-only", 24 | "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", 25 | "coveralls": "nyc report --reporter=text-lcov | coveralls" 26 | }, 27 | "dependencies": { 28 | "is-glob": "^4.0.1" 29 | }, 30 | "devDependencies": { 31 | "coveralls": "^3.0.11", 32 | "eslint": "^2.13.1", 33 | "eslint-config-gulp": "^3.0.1", 34 | "expect": "^1.20.2", 35 | "mocha": "^6.0.2", 36 | "nyc": "^13.3.0" 37 | }, 38 | "keywords": [ 39 | "glob", 40 | "parent", 41 | "strip", 42 | "path", 43 | "dirname", 44 | "directory", 45 | "base", 46 | "wildcard" 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /sesi-7/node_modules/brace-expansion/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "brace-expansion", 3 | "description": "Brace expansion as known from sh/bash", 4 | "version": "1.1.11", 5 | "repository": { 6 | "type": "git", 7 | "url": "git://github.com/juliangruber/brace-expansion.git" 8 | }, 9 | "homepage": "https://github.com/juliangruber/brace-expansion", 10 | "main": "index.js", 11 | "scripts": { 12 | "test": "tape test/*.js", 13 | "gentest": "bash test/generate.sh", 14 | "bench": "matcha test/perf/bench.js" 15 | }, 16 | "dependencies": { 17 | "balanced-match": "^1.0.0", 18 | "concat-map": "0.0.1" 19 | }, 20 | "devDependencies": { 21 | "matcha": "^0.7.0", 22 | "tape": "^4.6.0" 23 | }, 24 | "keywords": [], 25 | "author": { 26 | "name": "Julian Gruber", 27 | "email": "mail@juliangruber.com", 28 | "url": "http://juliangruber.com" 29 | }, 30 | "license": "MIT", 31 | "testling": { 32 | "files": "test/*.js", 33 | "browsers": [ 34 | "ie/8..latest", 35 | "firefox/20..latest", 36 | "firefox/nightly", 37 | "chrome/25..latest", 38 | "chrome/canary", 39 | "opera/12..latest", 40 | "opera/next", 41 | "safari/5.1..latest", 42 | "ipad/6.0..latest", 43 | "iphone/6.0..latest", 44 | "android-browser/4.2..latest" 45 | ] 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /sesi-1/index.html: -------------------------------------------------------------------------------- 1 | 2 | WEB SAYA 3 | 4 | 5 | 6 |
7 | 8 |
9 | 20 |
21 | 22 | 23 | 24 | 36 | 37 | 38 | 39 | 42 | 43 |
44 | 34 | 36 | 37 | -------------------------------------------------------------------------------- /sesi-7/node_modules/pstree.remy/tests/index.test.js: -------------------------------------------------------------------------------- 1 | const tap = require('tap'); 2 | const test = tap.test; 3 | const readFile = require('fs').readFileSync; 4 | const spawn = require('child_process').spawn; 5 | const pstree = require('../'); 6 | const { tree, pidsForTree, getStat } = require('../lib/utils'); 7 | 8 | if (process.platform !== 'darwin') { 9 | test('reads from /proc', async (t) => { 10 | const ps = await getStat(); 11 | t.ok(ps.split('\n').length > 1); 12 | }); 13 | } 14 | 15 | test('tree for live env', async (t) => { 16 | const pid = 4079; 17 | const fixture = readFile(__dirname + '/fixtures/out2', 'utf8'); 18 | const ps = await tree(fixture); 19 | t.deepEqual( 20 | pidsForTree(ps, pid).map((_) => _.PID), 21 | ['4080'] 22 | ); 23 | }); 24 | 25 | function testTree(t, runCallCount) { 26 | const sub = spawn('node', [`${__dirname}/fixtures/index.js`, runCallCount], { 27 | stdio: 'pipe', 28 | }); 29 | setTimeout(() => { 30 | const pid = sub.pid; 31 | 32 | pstree(pid, (error, pids) => { 33 | pids.concat([pid]).forEach((p) => { 34 | spawn('kill', ['-s', 'SIGTERM', p]); 35 | }); 36 | 37 | // the fixture launches `sh` which launches node which is why we 38 | // are looking for two processes. 39 | // Important: IDKW but MacOS seems to skip the `sh` process. no idea. 40 | t.equal(pids.length, runCallCount * 2); 41 | t.end(); 42 | }); 43 | }, 1000); 44 | } 45 | 46 | test('can read full process tree', (t) => { 47 | testTree(t, 1); 48 | }); 49 | test('can read full process tree with multiple processes', (t) => { 50 | testTree(t, 2); 51 | }); 52 | -------------------------------------------------------------------------------- /sesi-7/node_modules/chai/lib/chai/utils/getMessage.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Chai - message composition utility 3 | * Copyright(c) 2012-2014 Jake Luer 4 | * MIT Licensed 5 | */ 6 | 7 | /*! 8 | * Module dependancies 9 | */ 10 | 11 | var flag = require('./flag') 12 | , getActual = require('./getActual') 13 | , inspect = require('./inspect') 14 | , objDisplay = require('./objDisplay'); 15 | 16 | /** 17 | * ### .getMessage(object, message, negateMessage) 18 | * 19 | * Construct the error message based on flags 20 | * and template tags. Template tags will return 21 | * a stringified inspection of the object referenced. 22 | * 23 | * Message template tags: 24 | * - `#{this}` current asserted object 25 | * - `#{act}` actual value 26 | * - `#{exp}` expected value 27 | * 28 | * @param {Object} object (constructed Assertion) 29 | * @param {Arguments} chai.Assertion.prototype.assert arguments 30 | * @namespace Utils 31 | * @name getMessage 32 | * @api public 33 | */ 34 | 35 | module.exports = function (obj, args) { 36 | var negate = flag(obj, 'negate') 37 | , val = flag(obj, 'object') 38 | , expected = args[3] 39 | , actual = getActual(obj, args) 40 | , msg = negate ? args[2] : args[1] 41 | , flagMsg = flag(obj, 'message'); 42 | 43 | if(typeof msg === "function") msg = msg(); 44 | msg = msg || ''; 45 | msg = msg 46 | .replace(/#\{this\}/g, function () { return objDisplay(val); }) 47 | .replace(/#\{act\}/g, function () { return objDisplay(actual); }) 48 | .replace(/#\{exp\}/g, function () { return objDisplay(expected); }); 49 | 50 | return flagMsg ? flagMsg + ': ' + msg : msg; 51 | }; 52 | -------------------------------------------------------------------------------- /sesi-7/node_modules/braces/lib/compile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const fill = require('fill-range'); 4 | const utils = require('./utils'); 5 | 6 | const compile = (ast, options = {}) => { 7 | let walk = (node, parent = {}) => { 8 | let invalidBlock = utils.isInvalidBrace(parent); 9 | let invalidNode = node.invalid === true && options.escapeInvalid === true; 10 | let invalid = invalidBlock === true || invalidNode === true; 11 | let prefix = options.escapeInvalid === true ? '\\' : ''; 12 | let output = ''; 13 | 14 | if (node.isOpen === true) { 15 | return prefix + node.value; 16 | } 17 | if (node.isClose === true) { 18 | return prefix + node.value; 19 | } 20 | 21 | if (node.type === 'open') { 22 | return invalid ? (prefix + node.value) : '('; 23 | } 24 | 25 | if (node.type === 'close') { 26 | return invalid ? (prefix + node.value) : ')'; 27 | } 28 | 29 | if (node.type === 'comma') { 30 | return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); 31 | } 32 | 33 | if (node.value) { 34 | return node.value; 35 | } 36 | 37 | if (node.nodes && node.ranges > 0) { 38 | let args = utils.reduce(node.nodes); 39 | let range = fill(...args, { ...options, wrap: false, toRegex: true }); 40 | 41 | if (range.length !== 0) { 42 | return args.length > 1 && range.length > 1 ? `(${range})` : range; 43 | } 44 | } 45 | 46 | if (node.nodes) { 47 | for (let child of node.nodes) { 48 | output += walk(child, node); 49 | } 50 | } 51 | return output; 52 | }; 53 | 54 | return walk(ast); 55 | }; 56 | 57 | module.exports = compile; 58 | --------------------------------------------------------------------------------