commit 146afeaa646e06f16665cc728ef1088a91b19a06 Author: Sven Slootweg Date: Wed Jun 19 00:18:06 2024 +0200 Initial version diff --git a/README.md b/README.md new file mode 100644 index 0000000..fadbc44 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# promisify-event + +Gives you a Promise for a specified event on an EventEmitter that is only expected to happen once. Also automatically wires up the `error` event. + +Works with anything that implements the Node.js EventEmitter API (which is pretty much everything other than the DOM). + +Note that this is __not__ suitable for events that are expected to be emitted multiple times, because Promises can only represent one-off successes and failures; if you need a series of values over time, you may want to look at [Promistreams](https://promistream.cryto.net/) and particularly [`@promistream/from-event-emitter`](https://www.npmjs.com/package/@promistream/from-event-emitter) instead. + +## Example + +Also included in the package in runnable form, as `example.js`. + +```js +"use strict"; + +const createEventEmitter = require("create-event-emitter"); +const promisifyEvent = require("./"); + +// Demonstrated with a dummy event emitter, but it works with any EventEmitter +let emitter = createEventEmitter(); + +(async function () { + console.log("waiting..."); + await promisifyEvent(emitter, "test"); + console.log("emitted!"); +})(); + +console.log("emitting..."); +emitter.emit("test"); + +/* Output: + +waiting... +emitting... +emitted! +*/ +``` + +## API + +### promisifyEvent(emitter, eventName) + +- __emitter:__ Any `EventEmitter`. This is the emitter that you want to listen for the event on. +- __eventName:__ The event name to watch for. + +__Returns:__ A Promise that resolves when the event occurs, or rejects (with the error in question) if an `error` event occurs first. + +Note that when the Promise resolves successfully, it resolves with an *array of* arguments passed to the event callback, as event handlers may receive any number of arguments. It's recommended to use array destructuring syntax to unpack it into variables. diff --git a/example.js b/example.js new file mode 100644 index 0000000..3ddd7c5 --- /dev/null +++ b/example.js @@ -0,0 +1,23 @@ +"use strict"; + +const createEventEmitter = require("create-event-emitter"); +const promisifyEvent = require("./"); + +// Demonstrated with a dummy event emitter, but it works with any EventEmitter +let emitter = createEventEmitter(); + +(async function () { + console.log("waiting..."); + await promisifyEvent(emitter, "test"); + console.log("emitted!"); +})(); + +console.log("emitting..."); +emitter.emit("test"); + +/* Output: + +waiting... +emitting... +emitted! +*/ diff --git a/index.js b/index.js new file mode 100644 index 0000000..47c79b7 --- /dev/null +++ b/index.js @@ -0,0 +1,39 @@ +"use strict"; + +const { validateArguments } = require("@validatem/core"); +const required = require("@validatem/required"); +const isNonEmptyString = require("@validatem/is-non-empty-string"); +const ValiationError = require("@validatem/error"); + +function isEventEmitter(value) { + if (typeof value !== "object" || value.on == null || value.removeListener == null) { + throw new ValiationError(`Must be an EventEmitter`); + } +} + +module.exports = function promisifyEvent(_emitter, _event) { + let [ emitter, event ] = validateArguments(arguments, { + emitter: [ required, isEventEmitter ], + event: [ required, isNonEmptyString ] + }); + + return new Promise((resolve, reject) => { + function cleanup() { + emitter.removeListener(event, eventCallback); + emitter.removeListener("error", eventCallback); + } + + function eventCallback(... args) { + resolve(... args); + cleanup(); + } + + function errorCallback(error) { + reject(error); + cleanup(); + } + + emitter.on(event, eventCallback); + emitter.on("error", errorCallback); + }); +}; diff --git a/node_modules/.modules.yaml b/node_modules/.modules.yaml new file mode 100644 index 0000000..d7ec1a5 --- /dev/null +++ b/node_modules/.modules.yaml @@ -0,0 +1,107 @@ +hoistPattern: + - '*' +hoistedDependencies: + /@validatem/annotate-errors/0.1.2: + '@validatem/annotate-errors': private + /@validatem/any-property/0.1.3: + '@validatem/any-property': private + /@validatem/combinator/0.1.2: + '@validatem/combinator': private + /@validatem/has-shape/0.1.8: + '@validatem/has-shape': private + /@validatem/is-plain-object/0.1.1: + '@validatem/is-plain-object': private + /@validatem/is-string/0.1.1: + '@validatem/is-string': private + /@validatem/match-special/0.1.0: + '@validatem/match-special': private + /@validatem/match-validation-error/0.1.0: + '@validatem/match-validation-error': private + /@validatem/match-versioned-special/0.1.1: + '@validatem/match-versioned-special': private + /@validatem/match-virtual-property/0.1.0: + '@validatem/match-virtual-property': private + /@validatem/normalize-rules/0.1.3: + '@validatem/normalize-rules': private + /@validatem/validation-result/0.1.2: + '@validatem/validation-result': private + /@validatem/virtual-property/0.1.0: + '@validatem/virtual-property': private + /array-union/2.1.0: + array-union: private + /as-expression/1.0.0: + as-expression: private + /assure-array/1.0.0: + assure-array: private + /call-bind/1.0.7: + call-bind: private + /clone-regexp/2.2.0: + clone-regexp: private + /create-error/0.3.1: + create-error: private + /default-value/1.0.0: + default-value: private + /define-data-property/1.1.4: + define-data-property: private + /es-define-property/1.0.0: + es-define-property: private + /es-errors/1.3.0: + es-errors: private + /es6-promise-try/0.0.1: + es6-promise-try: private + /execall/2.0.0: + execall: private + /flatten/1.0.3: + flatten: private + /function-bind/1.1.2: + function-bind: private + /get-intrinsic/1.2.4: + get-intrinsic: private + /gopd/1.0.1: + gopd: private + /has-flag/4.0.0: + has-flag: private + /has-property-descriptors/1.0.2: + has-property-descriptors: private + /has-proto/1.0.3: + has-proto: private + /has-symbols/1.0.3: + has-symbols: private + /has-tostringtag/1.0.2: + has-tostringtag: private + /hasown/2.0.2: + hasown: private + /indent-string/4.0.0: + indent-string: private + /is-arguments/1.1.1: + is-arguments: private + /is-plain-obj/2.1.0: + is-plain-obj: private + /is-regexp/2.1.0: + is-regexp: private + /is-string/1.0.7: + is-string: private + /set-function-length/1.2.2: + set-function-length: private + /supports-color/7.2.0: + supports-color: private + /syncpipe/1.0.0: + syncpipe: private +included: + dependencies: true + devDependencies: true + optionalDependencies: true +injectedDeps: {} +layoutVersion: 5 +nodeLinker: isolated +packageManager: pnpm@8.14.1 +pendingBuilds: [] +prunedAt: Tue, 18 Jun 2024 22:21:43 GMT +publicHoistPattern: + - '*eslint*' + - '*prettier*' +registries: + default: https://registry.npmjs.org/ +skipped: [] +storeDir: /home/sven/.local/share/pnpm/store/v3 +virtualStoreDir: .pnpm diff --git a/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/README.md b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/README.md new file mode 100644 index 0000000..bba0337 --- /dev/null +++ b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/README.md @@ -0,0 +1,5 @@ +# @validatem/annotate-errors + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/example.js b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/example.js new file mode 100644 index 0000000..2e6798a --- /dev/null +++ b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/example.js @@ -0,0 +1,30 @@ +"use strict"; + +const annotateErrors = require("./"); +const ValidationError = require("@validatem/error"); + +let errors = [ + new ValidationError("Error A"), + new ValidationError("Error B", { path: [ "somewhere" ] }), +]; + +annotateErrors({ + errors: errors, + pathSegments: ["some", "path"] +}); + +console.log(errors); +/* +[ { ValidationError: Error A + + path: [ 'some', 'path' ], + ___validatem_isValidationError: true, + ___validatem_errorVersion: 1, + message: 'Error A' }, + { ValidationError: Error B + + path: [ 'some', 'path', 'somewhere' ], + ___validatem_isValidationError: true, + ___validatem_errorVersion: 1, + message: 'Error B' } ] +*/ diff --git a/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/index.js b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/index.js new file mode 100644 index 0000000..a2c3624 --- /dev/null +++ b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/index.js @@ -0,0 +1,25 @@ +"use strict"; + +const matchValidationError = require("@validatem/match-validation-error"); + +module.exports = function annotateErrors(options) { + if (options.pathSegments == null) { + throw new Error(`'pathSegments' is a required option`); + } else if (!Array.isArray(options.pathSegments)) { + throw new Error(`'pathSegments' must be an array`); + } else if (options.errors == null) { + throw new Error(`'errors' is a required option`); + } else if (!Array.isArray(options.errors)) { + throw new Error(`'errors' must be an array`); + } else { + // NOTE: We mutate the error here, because Error objects are not safely cloneable + for (let error of options.errors) { + // Leave non-ValidationError errors alone, even though they should not be present + if (matchValidationError(error)) { + error.path = options.pathSegments.concat(error.path); + } + } + + return options.errors; + } +}; diff --git a/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/package.json b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/package.json new file mode 100644 index 0000000..ba60aeb --- /dev/null +++ b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors/package.json @@ -0,0 +1,15 @@ +{ + "name": "@validatem/annotate-errors", + "description": "Utility for annotating one or more ValidationErrors with the path at which they occurred", + "version": "0.1.2", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/annotate-errors.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/match-validation-error": "^0.1.0" + }, + "devDependencies": { + "@validatem/error": "^1.0.0" + } +} diff --git a/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/match-validation-error b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/match-validation-error new file mode 120000 index 0000000..f986476 --- /dev/null +++ b/node_modules/.pnpm/@validatem+annotate-errors@0.1.2/node_modules/@validatem/match-validation-error @@ -0,0 +1 @@ +../../../@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/annotate-errors b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/annotate-errors new file mode 120000 index 0000000..5d38616 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/annotate-errors @@ -0,0 +1 @@ +../../../@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/README.md b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/README.md new file mode 100644 index 0000000..c801d45 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/README.md @@ -0,0 +1,5 @@ +# @validatem/array-of + +Documentation for this module has not been fully written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/example.js b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/example.js new file mode 100644 index 0000000..8a234d6 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/example.js @@ -0,0 +1,38 @@ +"use strict"; + +const anyProperty = require("./"); +const { validateValue } = require("@validatem/core"); +const isString = require("@validatem/is-string"); + +let validator = anyProperty({ + key: [ isString ], + value: [ isString ] +}); + +let objectA = { + foo: "bar", + baz: "qux" +}; + +console.log(validateValue(objectA, validator)); // { foo: 'bar', baz: 'qux' } + +let objectB = { + foo: "bar", + baz: 42 +}; + +console.log(validateValue(objectB, validator)); /* + AggregrateValidationError: One or more validation errors occurred: + - At baz -> (value): Must be a string +*/ + +let SomeSymbol = Symbol("SomeSymbol"); +let objectC = { + foo: "bar", + [SomeSymbol]: "qux" +}; + +console.log(validateValue(objectC, validator)); /* + AggregrateValidationError: One or more validation errors occurred: + - At Symbol(SomeSymbol) -> (key): Must be a string +*/ diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/index.js b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/index.js new file mode 100644 index 0000000..30326b7 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/index.js @@ -0,0 +1,58 @@ +"use strict"; + +const defaultValue = require("default-value"); + +const ValidationError = require("@validatem/error"); +const combinator = require("@validatem/combinator"); +const annotateErrors = require("@validatem/annotate-errors"); +const virtualProperty = require("@validatem/virtual-property"); +const validationResult = require("@validatem/validation-result"); + +module.exports = function (rules) { + if (rules.key == null && rules.value == null) { + throw new Error(`Must specify either a 'key' or 'value' property in the ruleset`); + } else { + let keyRules = defaultValue(rules.key, []); + let valueRules = defaultValue(rules.value, []); + + let validator = combinator((object, applyValidators) => { + let newObject = {}; + let allErrors = []; + + if (typeof object !== "object" || Array.isArray(object)) { + throw new ValidationError("Must be an object"); + } else { + // NOTE: Reflect.ownEntries is used here to ensure we capture the Symbol-typed keys as well + for (let key of Reflect.ownKeys(object)) { + let value = object[key]; + let keyAsString = key.toString(); // Again, to deal with Symbol-typed keys. + + let { errors: keyErrors, newValue: newKey } = applyValidators(key, keyRules); + let { errors: valueErrors, newValue } = applyValidators(value, valueRules); + + let annotatedKeyErrors = annotateErrors({ + pathSegments: [ keyAsString, virtualProperty("key") ], + errors: keyErrors + }); + + let annotatedValueErrors = annotateErrors({ + pathSegments: [ keyAsString, virtualProperty("value") ], + errors: valueErrors + }); + + newObject[newKey] = newValue; + allErrors.push(...annotatedKeyErrors, ...annotatedValueErrors); + } + + return validationResult({ + errors: allErrors, + newValue: newObject + }); + } + }); + + validator.callIfNull = false; + + return validator; + } +}; diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/package.json b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/package.json new file mode 100644 index 0000000..e571a85 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/any-property/package.json @@ -0,0 +1,26 @@ +{ + "name": "@validatem/any-property", + "description": "Validatem combinator for validating both the keys and values of a mapping object", + "keywords": [ + "validatem", + "validator", + "combinator" + ], + "version": "0.1.3", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/any-property.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/annotate-errors": "^0.1.2", + "@validatem/combinator": "^0.1.0", + "@validatem/error": "^1.0.0", + "@validatem/validation-result": "^0.1.1", + "@validatem/virtual-property": "^0.1.0", + "default-value": "^1.0.0" + }, + "devDependencies": { + "@validatem/core": "^0.3.1", + "@validatem/is-string": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/combinator b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/combinator new file mode 120000 index 0000000..5d943c8 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/combinator @@ -0,0 +1 @@ +../../../@validatem+combinator@0.1.2/node_modules/@validatem/combinator \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/validation-result b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/validation-result new file mode 120000 index 0000000..fad803c --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/validation-result @@ -0,0 +1 @@ +../../../@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/virtual-property b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/virtual-property new file mode 120000 index 0000000..7ce4cdd --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/@validatem/virtual-property @@ -0,0 +1 @@ +../../../@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/default-value b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/default-value new file mode 120000 index 0000000..a246f18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+any-property@0.1.3/node_modules/default-value @@ -0,0 +1 @@ +../../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/README.md b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/README.md new file mode 100644 index 0000000..5d87980 --- /dev/null +++ b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/README.md @@ -0,0 +1,21 @@ +# @validatem/combinator + +Documentation for this module has not been fully written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. + +A partial draft for the future documentation is below: + +---- + +Used for specifying Validatem 'combinators', ie. validators that need to manually control what rules to apply to what (sub-)values. Typically used for validating data structures which have multiple internal values to validate, like in the [`arrayOf(...)`](https://www.npmjs.com/package/@validatem/array-of) combinator, or when validation should be conditional, like in the [`when(...)`](https://www.npmjs.com/package/@validatem/when) and [`either(...)`](https://www.npmjs.com/package/@validatem/either) combinators. + +Note that this package doesn't actually really *do* anything. It just produces a special versioned object type, that's recognized (and handled accordingly) by the Validatem core; which will 'inject' the `applyValidators` function into your combinator, which you can use to apply a set of validation rules to a value. + +This slightly odd dependency-injection design exists because `applyValidators` is tightly interwoven with the rest of the Validatem core, and it's not really possible to extract it out into a separate package without basically moving all of the core into it, defeating the point of packaging this separately. + +## Why is this a separate package? + +One of the design goals of Validatem is to minimize how much complexity and code you're adding to your project. Because of that, all of the plumbing used by validators and combinators is packaged as granularly as possible. This prevents the situation where you have 20 copies of the entire Validatem core floating around in your project, just because different validators happen to depend on slightly different versions. + +By having several small 'plumbing' packages, validators *never* need to depend on `@validatem/core`, but only on the specific bits of plumbing that they need. diff --git a/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/example.js b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/example.js new file mode 100644 index 0000000..1aa382a --- /dev/null +++ b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/example.js @@ -0,0 +1,17 @@ +"use strict"; + +const combinator = require("./"); +const { validateValue } = require("@validatem/core"); +const isString = require("@validatem/is-string"); + +function createPassthroughCombinator(rules) { + // This is a dummy combinator that just applies the rules to the value (with the given context) as-normal. You could add any custom logic in here on when/how to apply validators, how to interpret the input rules/arguments of the factory function (if any), how to post-process the errors, and so on. You may want to look at some real combinators (`has-shape`, `array-of`, `dynamic`, `when`, etc.) to see some more realistic examples of how to effectively use this API. + + return combinator((value, applyValidators, context) => { + return applyValidators(value, rules, context); + }); +}; + +let result = validateValue("fourty-two", createPassthroughCombinator([ isString ])); + +console.log(result); // fourty-two diff --git a/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/index.js b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/index.js new file mode 100644 index 0000000..11764a2 --- /dev/null +++ b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/index.js @@ -0,0 +1,13 @@ +"use strict"; + +module.exports = function defineCombinator(callback) { + return { + callback: callback, + callIfNull: true, + ___validatem_isSpecial: true, + ___validatem_isCombinator: true, + ___validatem_combinatorVersion: 1 + }; +}; + +module.exports.__modulePath = __dirname; diff --git a/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/package.json b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/package.json new file mode 100644 index 0000000..0311d2d --- /dev/null +++ b/node_modules/.pnpm/@validatem+combinator@0.1.2/node_modules/@validatem/combinator/package.json @@ -0,0 +1,13 @@ +{ + "name": "@validatem/combinator", + "description": "API for defining Validatem combinators", + "version": "0.1.2", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/combinator.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/core": "^0.3.1", + "@validatem/is-string": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/annotate-errors b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/annotate-errors new file mode 120000 index 0000000..5d38616 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/annotate-errors @@ -0,0 +1 @@ +../../../@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/any-property b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/any-property new file mode 120000 index 0000000..e7249fc --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/any-property @@ -0,0 +1 @@ +../../../@validatem+any-property@0.1.3/node_modules/@validatem/any-property \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/.eslintrc b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/.eslintrc new file mode 100644 index 0000000..b0108ff --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "@joepie91/eslint-config" +} diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/README.md b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/README.md new file mode 100644 index 0000000..193ad71 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/README.md @@ -0,0 +1,92 @@ +# @validatem/core + +![Validatem logo](https://validatem.cryto.net/validatem-logo.svg) + +The last validation library you'll ever need. + +* Does __every kind of validation__, and does it well: it doesn't matter whether you're validating function arguments, form data, JSON request bodies, configuration files, or whatever else. As long as it's structured data of some sort, Validatem can deal with it. +* Supports the notion of __virtual properties__ in validation errors, which means that even if your data *isn't* already structured data (eg. an encoded string of some sort), you can bring your own parser, and have it integrate cleanly. +* __Easy to read__; both the code that *uses* Validatem, and the validation error messages that it produces! Your validation code doubles as in-code format documentation, and users get clear feedback about what's wrong. +* Fully __composable__: it's trivial to use third-party validators, or to write your own (reusable!) validators, whether fully custom or made up of a few other validators chained together. +* Supports __value transformation__, which means that you can even encode things like "this value defaults to X" or "when this value is a number, it will be wrapped like so" in your validation code; this can save you a bunch of boilerplate, and makes your validation code *even more complete* as format documentation. +* Validatem has a __small and modular core__, and combined with its composability, this means you won't pull any more code into your project than is strictly necessary to make your validators work! This is also an important part of making Validatem suitable for use in libraries, eg. for argument validation. +* Many __off-the-shelf validators__ are already available! You can find the full list [here](https://validatem.cryto.net/modules). +* Extensively __documented__, with clear documentation on what is considered valid, and what is not. Likewise, the plumbing libraries that you can use to write your own validators and combinators, are also well-documented. + +While Validatem is suitable for any sort of validation, this unique combination of features and design choices makes it *especially* useful for validating arguments in the public API of libraries, unlike other validation libraries! + +For example, you might write something like the following (from the [`icssify` library](https://git.cryto.net/joepie91/icssify/src/master/index.js)): + +```js +module.exports = function (browserify, options) { + validateArguments(arguments, [ + [ "browserify", required ], + [ "options", allowExtraProperties({ + mode: oneOf([ "local", "global" ]), + before: arrayOf([ required, isPostcssPlugin ]), + after: arrayOf([ required, isPostcssPlugin ]), + extensions: arrayOf([ required, isString ]) + })] + ]); + + // Implementation code goes here ... +}; +``` + +And calling it like so: + +```js +icssify(undefined, { + mode: "nonExistentMode", + before: [ NaN ], + unspecifiedButAllowedOption: true +}) +``` + +... would then produce an error like this: + +``` +ValidationError: One or more validation errors occurred: + - At browserify: Required value is missing + - At options -> mode: Must be one of: 'local', 'global' + - At options -> before -> 0: Must be a PostCSS plugin +``` + +## Still under construction! + +I'm currently preparing Validatem for its 1.0.0 release. Until then, documentation will be missing in many places (though an example.js is usually included in each module!), the website probably won't work yet, and some bits of the API might still change. + +In principle, Validatem is reliable enough already to use in real-world code - I use it in various of my own libraries and other projects. But be aware that you may need to change your code when 1.0.0 hits! + +## Getting stuck? + +__If you've read the documentation and you're still not quite sure how to solve your problem, please ask your question on the issue tracker!__ + +Usage questions are often documentation or usability bug reports in disguise. By asking your question on the issue tracker, you help us improve the documentation - so that the next person with your question doesn't need to ask! + +## Why not just use Typescript? + +Because it's strict in all the wrong places. It will yell at your perfectly valid abstraction just because you haven't figured out the magic incantation to make the compiler *believe* that it is valid, and at the same time it's incapable of doing business logic validation such as "is this a valid URL?" - *by design*. + +Real-world validation is about more than just whether something is a string or a number. Validatem can deal with this; Typescript cannot. + +## Why are there so many packages? + +Dependencies often introduce a lot of unnecessary complexity into a project. To avoid that problem, I've designed Validatem to consist of a lot of small, separately-usable pieces - even much of the core plumbing has been split up that way, specifically the bits that may be used by validator and combinator functions. + +This may sound counterintuitive; doesn't more dependencies mean *more* complexity? But in practice, "a dependency" in and of itself doesn't have a complexity cost at all; it's the code that is *in* the dependency where the complexity lies. The bigger a dependency is, the more complexity there is in that dependency, and the bigger the chance that some part of that complexity isn't even being used in your project! + +By packaging things as granularly as possible, you end up only importing code into your project *that you are actually using*. Any bit of logic that's never used, is somewhere in a package that is never even installed. As an example: using 10 modules with 1 function each, will add less complexity to your project than using 1 module with 100 functions. + +This has a lot of benefits, for both you and me: + +- __Easier to audit/review:__ When only the code you're actually using is added to your project, there will be less code for you to review. And because each piece is designed to be [loosely coupled](https://gist.github.com/joepie91/7f03a733a3a72d2396d6#coupled) and extensively documented, you can review each (tiny) piece in isolation; without having to trawl through mountains of source code to figure out how it's being called and what assumptions are being made there. +- __Easier to version and maintain:__ Most of the modules for Validatem will be completely done and feature-complete the moment they are written, never needing any updates at all. When occasionally a module *does* need an update, it will almost certainly not be one that breaks the API, because the API for each module is so simple that there isn't much *to* break. +- __Easier to upgrade:__ Because of almost nothing ever breaking the API, it also means that you'll rarely need to manually upgrade anything, if ever! The vast majority of module updates can be automatically applied, even many years into the future, *even* if a new (breaking) version of `validatem/@core` is ever released down the line. +- __Easier to fork:__ If for any reason you want to fork any part of Validatem, you can do so easily - *without* also having to maintain a big pile of validators, combinators, internals, and so on. You only need to fork and maintain the bit where you want to deviate from the official releases. + +Of course, there being so many packages means it can be more difficult to find the specific package you want. That is why [the Validatem website has an extensive, categorized list](https://validatem.cryto.net/modules) of all the validators, combinators and utilities available for Validatem. Both officially-maintained ones, and third-party modules! + +--- + +Further documentation will be added later! diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example-arguments.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example-arguments.js new file mode 100644 index 0000000..038d8ab --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example-arguments.js @@ -0,0 +1,27 @@ +"use strict"; + +const { validateArguments, RemainingArguments } = require("."); +const isString = require("@validatem/is-string"); +const isBoolean = require("@validatem/is-boolean"); +const isNumber = require("@validatem/is-number"); +const required = require("@validatem/required"); +const arrayOf = require("@validatem/array-of"); + +function testFunction(one, two, three, ... rest) { + validateArguments(arguments, { + one: [ required, isString ], + two: [ required, isNumber ], + three: [ required, isBoolean ], + [RemainingArguments]: [ required, arrayOf(isString) ], + }); +} + +testFunction("foo", "bar", null, "baz", 42); + +/* +AggregrateValidationError: One or more validation errors occurred: + - At two: Must be a number + - At three: Required value is missing + - At array -> 1: Must be a string + - At mapping -> d -> (value): Must be a boolean +*/ diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example.js new file mode 100644 index 0000000..5cca30d --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/example.js @@ -0,0 +1,45 @@ +"use strict"; + +const { validateValue } = require("./"); +const isString = require("@validatem/is-string"); +const isBoolean = require("@validatem/is-boolean"); +const isNumber = require("@validatem/is-number"); +const required = require("@validatem/required"); +const arrayOf = require("@validatem/array-of"); +const anyProperty = require("@validatem/any-property"); + +let data = { + one: "foo", + two: "bar", + array: [ + "A", + false, + "C" + ], + mapping: { + a: true, + b: false, + c: false, + d: NaN + } +}; + +validateValue(data, { + one: [ required, isString ], + two: [ required, isNumber ], + three: [ required, isBoolean ], + optional: [ isString ], + array: [ required, arrayOf([ required, isString ]) ], + mapping: [ required, anyProperty({ + key: [ required ], + value: [ required, isBoolean ] + }) ] +}); + +/* +AggregrateValidationError: One or more validation errors occurred: + - At two: Must be a number + - At three: Required value is missing + - At array -> 1: Must be a string + - At mapping -> d -> (value): Must be a boolean +*/ diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/index.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/index.js new file mode 100644 index 0000000..fe07c18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/index.js @@ -0,0 +1,15 @@ +"use strict"; + +// Forcibly import this module before anything else, to make our cyclical dependency hack work (details are in ./src/compose-rules.js) +require("./src/compose-rules"); + +module.exports = { + // TODO: Provide a 'basePathsToIgnore' option for all of the below methods, so that third-party modules could wrap these methods without having themselves show up as the source of the error? Their base paths can then be treated like internals paths in the error parsing code that pinpoints the validation call site. + validateArguments: require("./src/api/validate-arguments"), + validateOptions: require("./src/api/validate-options"), + validateValue: require("./src/api/validate-value"), + testValue: require("./src/api/test-value"), + + AggregrateValidationError: require("./src/aggregrate-validation-error"), + RemainingArguments: require("./src/api/validate-arguments/remaining-arguments-symbol") +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/package.json b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/package.json new file mode 100644 index 0000000..111118e --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/package.json @@ -0,0 +1,44 @@ +{ + "name": "@validatem/core", + "description": "The last validation library you'll ever need.", + "keywords": [ + "validation", + "input", + "verification", + "data" + ], + "version": "0.5.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/core.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/annotate-errors": "^0.1.2", + "@validatem/any-property": "^0.1.0", + "@validatem/error": "^1.0.0", + "@validatem/match-validation-error": "^0.1.0", + "@validatem/match-versioned-special": "^0.1.0", + "@validatem/match-virtual-property": "^0.1.0", + "@validatem/normalize-rules": "^0.1.0", + "@validatem/required": "^0.1.0", + "@validatem/validation-result": "^0.1.1", + "@validatem/virtual-property": "^0.1.0", + "as-expression": "^1.0.0", + "assure-array": "^1.0.0", + "create-error": "^0.3.1", + "default-value": "^1.0.0", + "execall": "^2.0.0", + "indent-string": "^4.0.0", + "is-arguments": "^1.0.4", + "supports-color": "^7.1.0", + "syncpipe": "^1.0.0" + }, + "devDependencies": { + "@joepie91/eslint-config": "^1.1.0", + "@validatem/array-of": "^0.1.0", + "@validatem/is-boolean": "^0.1.0", + "@validatem/is-number": "^0.1.1", + "@validatem/is-string": "^0.1.0", + "eslint": "^6.8.0" + } +} diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-errors.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-errors.js new file mode 100644 index 0000000..f31e8f2 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-errors.js @@ -0,0 +1,196 @@ +"use strict"; + +const indentString = require("indent-string"); +const matchVirtualProperty = require("@validatem/match-virtual-property"); +const asExpression = require("as-expression"); +const syncpipe = require("syncpipe"); + +const AggregrateValidationError = require("./aggregrate-validation-error"); +const parseStacktrace = require("./parse-stacktrace"); +const { dim, dimBold, highlight, highlightBold } = require("./colors"); + +// TODO: Omit the "At (root)" for path-less errors, to avoid confusion when singular values are being compared? +// TODO: Move out the path generating logic into a separate module, to better support custom error formatting code +// FIXME: Remove duplicate subError-less error messages, when heuristics are enabled? eg. multiple "Must be an array" for different arrayOf combinators + +function joinPathSegments(segments) { + return (segments.length > 0) + ? segments.join(" -> ") + : "(root)"; +} + +// FIXME: Render error codes (grayed out) after error messages, as a stable identifier +function renderErrorList(errors, subErrorLevels = 0) { + let rephrasedErrors = errors.map((error, i) => { + let pathSegments = error.path.map((segment) => { + if (segment == null) { + throw new Error(`Unexpected empty path segment encountered; this is a bug, please report it!`); + } else if (typeof segment === "string" || typeof segment === "number") { + return highlight(String(segment)); + } else if (matchVirtualProperty(segment)) { + return dim(`(${segment.name})`); + } else { + throw new Error(`Unexpected path segment encountered: ${segment}; this is a bug, please report it!`); + } + }); + + let lineCharacter = (i < errors.length - 1) + ? "├─" + : "└─"; + + let mainLine = asExpression(() => { + if (subErrorLevels > 0) { + let message = (pathSegments.length > 0) + ? `${lineCharacter} ${joinPathSegments(pathSegments)}: ${error.message}` + : `${lineCharacter} ${error.message}`; + + return message; + } else { + return (pathSegments.length > 0) + ? ` - At ${joinPathSegments(pathSegments)}: ${error.message}` + : ` - ${error.message}`; + } + }); + + if (error.subErrors != null && error.subErrors.length > 0) { + let renderedSubErrors = renderErrorList(error.subErrors, subErrorLevels + 1); + let isLastError = (i === errors.length - 1); + + if (subErrorLevels > 0 && !isLastError) { + return syncpipe(renderedSubErrors, [ + (_) => indentString(_, 3), + (_) => indentString(_, 1, { indent: "│" }), + (_) => mainLine + "\n" + _ + ]); + } else { + return mainLine + "\n" + indentString(renderedSubErrors, 4); + } + } else { + return mainLine; + } + }); + + return rephrasedErrors.map((error) => { + return `${error}`; + }).join("\n"); +} + +function determineLocation() { + try { + throw new Error(`Dummy error to obtain a stacktrace`); + } catch (error) { + try { + let externalFrames = syncpipe(error, [ + (_) => parseStacktrace(_), + (_) => removeInternalFrames(_), + ]); + + if (externalFrames.length > 0) { + return syncpipe(externalFrames, [ + (_) => _[0], + (_) => { + return { + ... _, + shortPath: abbreviatePath(_.location.path) + }; + } + ]); + } else { + return null; + } + } catch (parsingError) { + // If *anything at all* went wrong, we will just give up and return nothing, because the stacktrace parsing code is fragile, and we don't want that to be a reason for someone not to get a validation error displayed to them. + // FIXME: Do we want to have this visible as a warning in 1.0.0? Or should this warning be opt-in, for when the user wants more detail about *why* the location of the error could not be determined? Since there may be legitimate reasons for that to occur, eg. in bundled code without source maps. + console.warn("An error occurred during stacktrace parsing; please report this as a bug in @validatem/core!", parsingError); + } + } +} + +// NOTE: This must be changed if aggregrate-errors.js is ever moved within the module! +let internalBasePathRegex = /(.+)src$/; + +function getInternalBasePath() { + let match = internalBasePathRegex.exec(__dirname); + + if (match != null) { + return match[1]; + } else { + throw new Error(`Did not find expected basePath, instead got: ${__dirname}`); + } +} + +function removeInternalFrames(stack) { + let internalBasePath = getInternalBasePath(); + + if (stack[0].location != null && stack[0].location.path != null && stack[0].location.path.startsWith(internalBasePath)) { + // We are running a normal environment with sensible stacktraces. + + return stack.filter((frame) => { + return ( + !frame.location.anonymous + && !frame.location.path.startsWith(internalBasePath) + ); + }); + } else { + // We're probably in a bundled environment, with errors not being sourcemapped. Use an alternate, less reliable strategy. This will still break when code is minified. + + let lastValidationFrame = stack.findIndex((frame) => { + return (frame.functionName != null && frame.functionName.includes("createValidationMethod")); + }); + + if (lastValidationFrame === -1) { + // Welp, this didn't work either. We'll just return an empty stack then, treating every frame as (possibly) internal, to cause the origin to be displayed as unknown. + return []; + } else { + return stack.slice(lastValidationFrame + 1); + } + } +} + +function abbreviatePath(path) { + // TODO: Maybe add a special case for paths within node_modules? For when an error originates from a package the user is depending on. + let segments = path.split(/[\\\/]/); + let [ thirdLast, secondLast, last ] = segments.slice(-3); + + if (last != null) { + let isIndexFile = /^index\.[a-z0-9]+$/.test(last); + + let relevantSegments = (isIndexFile) + ? [ thirdLast, secondLast, last ] + : [ secondLast, last ]; + + return relevantSegments.join("/"); + } else { + // This path is extremely short, so we'll just return it as-is. + return segments.join("/"); + } +} + +module.exports = function aggregrateAndThrowErrors(errors) { + if (errors.length > 0) { + let detailLines = renderErrorList(errors); + let frame = determineLocation(); + + let locationString = asExpression(() => { + if (frame != null) { + let functionString = asExpression(() => { + if (frame.alias != null && frame.functionName != null) { + return `${frame.alias} [${frame.functionName}]`; + } else if (frame.functionName != null) { + return `'${frame.functionName}'`; + } else { + return dimBold("(unnamed function)"); + } + }); + + return `${highlightBold(functionString)} in ${highlightBold(frame.shortPath)}, at line ${highlightBold(frame.location.line)} (${frame.location.path})`; + } else { + return dimBold(`(could not determine location)`); + } + }); + + return new AggregrateValidationError(`One or more validation errors occurred at ${locationString}:\n${detailLines}`, { + errors: errors + }); + } +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-validation-error.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-validation-error.js new file mode 100644 index 0000000..4a0f8ef --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/aggregrate-validation-error.js @@ -0,0 +1,5 @@ +"use strict"; + +const createError = require("create-error"); + +module.exports = createError("AggregrateValidationError", { errors: [] }); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/test-value.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/test-value.js new file mode 100644 index 0000000..2ca9736 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/test-value.js @@ -0,0 +1,12 @@ +"use strict"; + +const applyValidators = require("../apply-validators"); + +// NOTE: This will *not* give you access to either the errors or the transformed value! It's typically used for conditional logic in business logic *after* the initial validation has already taken place. This allows for reusing the entire ecosystem of Validatem validators for "does this value match format X, if yes, run this code"-type logic. +// FIXME: Put this in the documentation instead. + +module.exports = function (value, rules) { + let { errors } = applyValidators(value, rules); + + return (errors.length === 0); +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/index.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/index.js new file mode 100644 index 0000000..65206cf --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/index.js @@ -0,0 +1,120 @@ +"use strict"; + +const isArguments = require("is-arguments"); +const asExpression = require("as-expression"); +const syncpipe = require("syncpipe"); + +const ValidationError = require("@validatem/error"); +const annotateErrors = require("@validatem/annotate-errors"); +const virtualProperty = require("@validatem/virtual-property"); + +const splitArray = require("../../split-array"); +const applyValidators = require("../../apply-validators"); +const createValidationMethod = require("../validation-method"); +const RemainingArguments = require("./remaining-arguments-symbol"); + +// TODO: Simplify below by treating it like an array or object? Or would that introduce too much complexity through specialcasing? +// TODO: Find a way to produce validatem-style errors for the below invocation errors, without introducing recursion +// TODO: Maybe create a validatedFunction(rules, (foo, bar) => ...) type abstraction for "pre-processed", more performant validation usecases? At the cost of having to specify the validation rules outside of the function, which you'd need to do anyway in that case. Upside would be that you don't need to specify `arguments` manually anymore. +// TODO: Special-case callsite extraction from stacktrace when using validateArguments, as the user will probably be interested in where the validator-fenced code was *called from*, not where the rules are defined (unlike with validateValue) + +function arrayToNormalized(array) { + return array.map((definition) => { + let [ name, ...rules ] = definition; + + if (typeof name !== "string") { + throw new Error("First item in the argument rules list must be the argument name"); + } else { + return { + name: name, + rules: rules + }; + } + }); +} + +function objectToNormalized(object) { + // NOTE: Not using Object.entries because we also want to catch Symbol keys + // NOTE: Reflect.ownKeys is not ordered correctly, Symbols always come last! When object syntax is used, we just assume that the user correctly specified any RemainingArguments symbol at the end. + return Reflect.ownKeys(object).map((key) => { + let value = object[key]; + + return { + name: key, + rules: value + }; + }); +} + +function applyDefinitions(args, definitions, remainingArgumentsIndex) { + let results = definitions.map(({ name, rules }, i) => { + let argument = args[i]; + let validatorResult = applyValidators(argument, rules); + + return { + errors: annotateErrors({ + pathSegments: (name === RemainingArguments) + ? [ virtualProperty(`arguments from ${remainingArgumentsIndex} onwards`) ] // TODO: Better description? + : [ name ], + errors: validatorResult.errors + }), + newValue: (validatorResult.newValue !== undefined) + ? validatorResult.newValue + : argument + }; + }); + + return { + errors: syncpipe(results, [ + (_) => _.map((result) => result.errors), + (_) => _.flat(Infinity) + ]), + newValue: results.map((result) => result.newValue) + }; +} + +module.exports = createValidationMethod((args, argumentDefinitions) => { + if (!isArguments(args)) { + throw new Error(`First argument is not an 'arguments' object; maybe you forgot to put it before the validation rules?`); + } else if (argumentDefinitions == null) { + throw new Error(`Validation rules (second argument) are missing; maybe you forgot to specify them?`); + } else { + let normalizedDefinitions = (Array.isArray(argumentDefinitions)) + ? arrayToNormalized(argumentDefinitions) + : objectToNormalized(argumentDefinitions); + + let definitionCount = normalizedDefinitions.length; + let remainingArgumentsIndex = normalizedDefinitions.findIndex(({ name }) => name === RemainingArguments); + let hasRemainingArguments = (remainingArgumentsIndex !== -1); + let remainingArgumentsComeLast = (remainingArgumentsIndex === definitionCount - 1); + + if (hasRemainingArguments && !remainingArgumentsComeLast) { + throw new Error(`A RemainingArguments entry can only be the last item`); + } else if (!hasRemainingArguments && args.length > definitionCount) { + return { + errors: [ new ValidationError(`Got ${args.length} arguments, but only expected ${definitionCount}`) ], + // Cast the below to an array, for consistency with *success* output, in case we ever want to expose the new values to the user in an error case too. + newValue: Array.from(args) + }; + } else { + let normalizedArguments = asExpression(() => { + let argumentsAsArray = Array.from(args); + + if (hasRemainingArguments) { + let [ positionalArguments, remainingArguments ] = splitArray(argumentsAsArray, [ remainingArgumentsIndex ]); + + if (remainingArguments.length > 0) { + // Add all of the remaining arguments as a *single array value*, to make applying validation rules easier + return positionalArguments.concat([ remainingArguments ]); + } else { + return positionalArguments; + } + } else { + return argumentsAsArray; + } + }); + + return applyDefinitions(normalizedArguments, normalizedDefinitions, remainingArgumentsIndex); + } + } +}); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/remaining-arguments-symbol.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/remaining-arguments-symbol.js new file mode 100644 index 0000000..7b279bc --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-arguments/remaining-arguments-symbol.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Symbol("RemainingArguments"); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-options.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-options.js new file mode 100644 index 0000000..30eeb19 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-options.js @@ -0,0 +1,13 @@ +"use strict"; + +const assureArray = require("assure-array"); + +const validateArguments = require("./validate-arguments"); + +module.exports = function (args, optionsRules) { + let result = validateArguments(args, [ + ["options"].concat(assureArray(optionsRules)) + ]); + + return result[0]; +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-value.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-value.js new file mode 100644 index 0000000..db0eeb3 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validate-value.js @@ -0,0 +1,6 @@ +"use strict"; + +const applyValidators = require("../apply-validators"); +const createValidationMethod = require("./validation-method"); + +module.exports = createValidationMethod(applyValidators); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validation-method.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validation-method.js new file mode 100644 index 0000000..1dd30ec --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/api/validation-method.js @@ -0,0 +1,17 @@ +"use strict"; + +const aggregrateErrors = require("../aggregrate-errors"); + +module.exports = function createValidationMethod(validationFunction) { + return function (... args) { + let { errors, newValue } = validationFunction(... args); + + let aggregratedError = aggregrateErrors(errors); + + if (aggregratedError != null) { + throw aggregratedError; + } else { + return newValue; + } + }; +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/apply-validators.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/apply-validators.js new file mode 100644 index 0000000..0a21a7d --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/apply-validators.js @@ -0,0 +1,33 @@ +"use strict"; + +const normalizeRules = require("@validatem/normalize-rules"); +const matchValidationError = require("@validatem/match-validation-error"); +const validationResult = require("@validatem/validation-result"); + +const composeRules = require("./compose-rules"); + +module.exports = function applyValidators(value, rules, context = {}) { + let normalizedRules = normalizeRules(rules, { normalizeObjects: true }); + let validator = composeRules.compose(normalizedRules); + + // FIXME: Document this option! + let finalContext = (process.env.VALIDATEM_NO_HEURISTICS === "1") + ? { ...context, __validatemNoHeuristics: true } + : context; + + let { errors, newValue } = validator(value, finalContext); + + // NOTE: We mutate the error here, because Error objects are not safely cloneable + for (let error of errors) { + if (matchValidationError(error) && error.value == null) { + error.value = value; + } + } + + return validationResult({ + errors: errors, + newValue: (newValue !== undefined) + ? newValue + : value + }); +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/colors.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/colors.js new file mode 100644 index 0000000..d54f1cc --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/colors.js @@ -0,0 +1,32 @@ +"use strict"; + +const supportsColor = require("supports-color"); + +// NOTE: We do some manual ANSI escape code stuff here for now, because using `chalk` would significantly inflate the bundle size of the core. +// TODO: Find a better solution for this. +let openHighlight, openDim, openHighlightBold, openDimBold, closeColor; + +if (supportsColor.stderr) { + openHighlight = `\u001b[32m`; // green + openDim = `\u001b[90m`; // gray + openHighlightBold = `\u001b[32;1m`; // green bold + openDimBold = `\u001b[90;1m`; // gray bold + // closeColor = `\u001b[39m`; // Does not reset bold! + closeColor = `\u001b[0m`; +} else { + openHighlight = ""; + openDim = ""; + openHighlightBold = ""; + openDimBold = ""; + closeColor = ""; +} + +module.exports = { + dim: (string) => openDim + string + closeColor, + highlight: (string) => openHighlight + string + closeColor, + dimBold: (string) => openDimBold + string + closeColor, + highlightBold: (string) => openHighlightBold + string + closeColor, +}; + + + diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/compose-rules.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/compose-rules.js new file mode 100644 index 0000000..b2d1a86 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/compose-rules.js @@ -0,0 +1,114 @@ +"use strict"; + +const ValidationError = require("@validatem/error"); +const matchValidationError = require("@validatem/match-validation-error"); +const validationResult = require("@validatem/validation-result"); + +const isRequiredMarker = require("./is-special/required"); +const isValidationResult = require("./is-special/validation-result"); +const isCombinator = require("./is-special/combinator"); +const applyValidators = require("./apply-validators"); + +// NOTE: If a validator returns a transformed value, the *next* validator in line will receive this *transformed* value instead of the original value. This allows composing/chaining different transformations, and keeping that model consistent with how providing an array of validators would work. If this behaviour is not desirable, the user can wrap `ignoreResult` around the offending validator to retain the previous (potentially original input) value. + +// NOTE: Assigning to a property *on* module.exports as a cyclic dependency handling workaround for compose-rules -> apply-validators -> compose-rules -> ... +// This works because apply-validators gets a reference the default `module.exports` object when it requires compose-rules (this module) and it can complete initialization, *after* which we make our compose-rules implementation available as a property on said (already-referenced) object. +module.exports.compose = function composeValidators(validators) { + let isRequired = validators.some((rule) => isRequiredMarker(rule)); + let nonMarkerRules = validators.filter((rule) => !isRequiredMarker(rule)); + + function callRule({ rule, value, context }) { + try { + let result = isCombinator(rule) + ? rule.callback(value, applyValidators, context) + : rule(value, context); + + if (result !== undefined) { + if (isValidationResult(result)) { + if (Array.isArray(result.errors)) { + let nonValidationErrors = result.errors.filter((error) => !matchValidationError(error)); + + if (nonValidationErrors.length === 0) { + return { + errors: result.errors, + newValue: result.newValue + }; + } else { + // We should never reach this point, but it could possibly occur if someone erroneously includes non-ValidationError errors in a validationResult. Note that this is a last-ditch handler, and so we only throw the first non-ValidationError error and let the user sort out the rest, if any. + throw nonValidationErrors[0]; + } + } else { + throw new Error(`The 'errors' in a validationResult must be an array`); + } + } else if (result != null && matchValidationError(result)) { + return { + errors: [ result ], + newValue: undefined + }; + } else { + return { + errors: [], + newValue: result + }; + } + } else { + return { + errors: [], + newValue: undefined + }; + } + } catch (error) { + if (matchValidationError(error)) { + return { + errors: [ error ], + newValue: undefined + }; + } else { + throw error; + } + } + } + + return function composedValidator(value, context) { + // FIXME: Does this still need to be a special case, now that we have the callIfNull property? + if (isRequired && value == null) { + return validationResult({ + errors: [ new ValidationError(`Required value is missing`) ], + newValue: value + }); + } else { + let lastValue = value; + + let errors = []; + + for (let rule of nonMarkerRules) { + if (lastValue != null || rule.callIfNull === true) { + let result = callRule({ + rule: rule, + value: lastValue, + context: context + }); + + if (result.newValue !== undefined) { + lastValue = result.newValue; + } + + if (result.errors.length > 0) { + errors = result.errors; + break; + } + } else { + continue; + } + } + + return validationResult({ + errors: errors, + // NOTE: The below conditional is to make a composed series of validator mirror a normal validator, in the sense that it only returns a `newValue` if something has actually changed. For transparent composability, we want to be as close to the behaviour of a non-composed validator as possible. + newValue: (lastValue !== value) + ? lastValue + : undefined + }); + } + }; +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/combinator.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/combinator.js new file mode 100644 index 0000000..5b3bc7c --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/combinator.js @@ -0,0 +1,10 @@ +"use strict"; + +const createVersionedSpecialCheck = require("@validatem/match-versioned-special"); + +module.exports = createVersionedSpecialCheck({ + markerProperty: "___validatem_isCombinator", + versionProperty: "___validatem_combinatorVersion", + friendlyName: "a combinator", + expectedVersions: [ 1 ] +}); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/required.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/required.js new file mode 100644 index 0000000..6f94fc6 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/required.js @@ -0,0 +1,10 @@ +"use strict"; + +const createVersionedSpecialCheck = require("@validatem/match-versioned-special"); + +module.exports = createVersionedSpecialCheck({ + markerProperty: "___validatem_isRequiredMarker", + versionProperty: "___validatem_requiredMarkerVersion", + friendlyName: "a required-field marker", + expectedVersions: [ 1 ] +}); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/validation-result.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/validation-result.js new file mode 100644 index 0000000..edeebe6 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/is-special/validation-result.js @@ -0,0 +1,10 @@ +"use strict"; + +const createVersionedSpecialCheck = require("@validatem/match-versioned-special"); + +module.exports = createVersionedSpecialCheck({ + markerProperty: "___validatem_isValidationResult", + versionProperty: "___validatem_validationResultVersion", + friendlyName: "a validation result object", + expectedVersions: [ 1 ] +}); diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/parse-stacktrace.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/parse-stacktrace.js new file mode 100644 index 0000000..428a873 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/parse-stacktrace.js @@ -0,0 +1,130 @@ +"use strict"; + +// FIXME: Move this into its own package! + +const execall = require("execall"); +const defaultValue = require("default-value"); + +// I'm so, so sorry... +let lineRegex = /\s+at\s+(?:(?:((?:[^\[\n])+)\[as ([^\]]+)\] |((?:[^\(\n])+))\(([^\)\n]+)\)|([^\n]+))(?:\n|$)/gm; +let geckoLineRegex = /^([^@\n]*)@(.+)/gm; +let numberRegex = /^\d+$/; + +function maybeTrim(value) { + if (value != null) { + let trimmed = value.trim(); + + if (trimmed.length > 0) { + return trimmed; + } else { + return null; + } + } else { + return value; + } +} + +function isLocation(locationString) { + return (locationString.split(":").length > 2); +} + +function splitLocation(locationString) { + let parts = locationString.split(":"); + + if (parts.length > 2) { + let pathPartCount = parts.length - 2; + + return [ + parts.slice(0, pathPartCount).join(":"), + parts[pathPartCount], + parts[pathPartCount + 1], + ]; + } +} + +function parseLocation(locationString) { + if (locationString === "") { + return { anonymous: true }; + } else { + let parts = splitLocation(locationString); + + if (parts != null && numberRegex.test(parts[1]) && numberRegex.test(parts[2])) { + return { + path: parts[0], + line: parseInt(parts[1]), + column: parseInt(parts[2]) + }; + } else { + throw new Error(`Could not parse location from string: ${locationString}`); + } + } +} + +function extractFramesV8(stack) { + let matches = execall(lineRegex, stack); + + if (matches.length > 0) { + return matches.map((match) => { + let groups = match.subMatches; + + return { + functionName: maybeTrim(defaultValue(groups[0], groups[2])), + alias: groups[1], + location: parseLocation(defaultValue(groups[3], groups[4])) + }; + }); + } else { + return null; + } +} + +function extractFramesGecko(stack) { + let matches = execall(geckoLineRegex, stack); + + if (matches.length > 0) { + return matches.map((match) => { + let groups = match.subMatches; + + return { + functionName: maybeTrim(groups[0]), + location: parseLocation(groups[1]) + }; + }); + } else { + return null; + } +} + +function extractFrames(stack) { + // TODO: Maybe make this code even more cautious, and match each stacktrace line individually, aborting as soon as any one line cannot be parsed? + return defaultValue( + extractFramesV8(stack), + () => extractFramesGecko(stack), + { evaluate: true } + ); +} + +module.exports = function parseStackTrace(error) { + let stack = error.stack; + let lines = stack.split("\n"); + + let firstStackLine = lines + .map((line) => line.trim()) + .findIndex((line) => isLocation(line)); + + if (firstStackLine !== -1) { + let cleanStack = lines + .slice(firstStackLine) + .join("\n"); + + let extracted = extractFrames(cleanStack); + + if (extracted != null) { + return extracted; + } else { + throw new Error(`Could not extract stacktrace frames`); + } + } else { + throw new Error(`Could not find a stacktrace frame`); + } +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/split-array.js b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/split-array.js new file mode 100644 index 0000000..d1f8e94 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core/src/split-array.js @@ -0,0 +1,22 @@ +"use strict"; + +// FIXME: Move this into its own package + +module.exports = function splitArray(array, indexes) { + let segments = []; + let lastIndex = 0; + + for (let index of indexes) { + if (index < array.length) { + segments.push(array.slice(lastIndex, index)); + lastIndex = index; + } else { + throw new Error(`Attempted to split at index ${index}, but array only has ${array.length} items`); + } + } + + // Final segment, from last specified index to end of array; this is because the indexes only define the *split points*, and so the total amount of segments is always one more than that. + segments.push(array.slice(lastIndex)); + + return segments; +}; diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-validation-error b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-validation-error new file mode 120000 index 0000000..f986476 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-validation-error @@ -0,0 +1 @@ +../../../@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-versioned-special b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-versioned-special new file mode 120000 index 0000000..cbb559f --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-versioned-special @@ -0,0 +1 @@ +../../../@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-virtual-property b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-virtual-property new file mode 120000 index 0000000..6d38b2d --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/match-virtual-property @@ -0,0 +1 @@ +../../../@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/normalize-rules b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/normalize-rules new file mode 120000 index 0000000..a46b996 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/normalize-rules @@ -0,0 +1 @@ +../../../@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/required b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/required new file mode 120000 index 0000000..db0d50a --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/required @@ -0,0 +1 @@ +../../../@validatem+required@0.1.1/node_modules/@validatem/required \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/validation-result b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/validation-result new file mode 120000 index 0000000..fad803c --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/validation-result @@ -0,0 +1 @@ +../../../@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/virtual-property b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/virtual-property new file mode 120000 index 0000000..7ce4cdd --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/@validatem/virtual-property @@ -0,0 +1 @@ +../../../@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/as-expression b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/as-expression new file mode 120000 index 0000000..685d933 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/as-expression @@ -0,0 +1 @@ +../../as-expression@1.0.0/node_modules/as-expression \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/assure-array b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/assure-array new file mode 120000 index 0000000..8117087 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/assure-array @@ -0,0 +1 @@ +../../assure-array@1.0.0/node_modules/assure-array \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/create-error b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/create-error new file mode 120000 index 0000000..abb898f --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/create-error @@ -0,0 +1 @@ +../../create-error@0.3.1/node_modules/create-error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/default-value b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/default-value new file mode 120000 index 0000000..a246f18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/default-value @@ -0,0 +1 @@ +../../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/execall b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/execall new file mode 120000 index 0000000..62de43d --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/execall @@ -0,0 +1 @@ +../../execall@2.0.0/node_modules/execall \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/indent-string b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/indent-string new file mode 120000 index 0000000..20f20c5 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/indent-string @@ -0,0 +1 @@ +../../indent-string@4.0.0/node_modules/indent-string \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/is-arguments b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/is-arguments new file mode 120000 index 0000000..337944a --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/is-arguments @@ -0,0 +1 @@ +../../is-arguments@1.1.1/node_modules/is-arguments \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/supports-color b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/supports-color new file mode 120000 index 0000000..3f2d92f --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/supports-color @@ -0,0 +1 @@ +../../supports-color@7.2.0/node_modules/supports-color \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/syncpipe b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/syncpipe new file mode 120000 index 0000000..0106d97 --- /dev/null +++ b/node_modules/.pnpm/@validatem+core@0.5.0/node_modules/syncpipe @@ -0,0 +1 @@ +../../syncpipe@1.0.0/node_modules/syncpipe \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/README.md b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/README.md new file mode 100644 index 0000000..38bb622 --- /dev/null +++ b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/README.md @@ -0,0 +1,35 @@ +# @validatem/error + +This package contains the `ValidationError` type for [`validatem`](https://www.npmjs.com/package/@validatem/core). + +__A VERY IMPORTANT NOTE:__ You should *always* use the caret notation (eg. `^1.0.0`) when depending on this package. NPM and Yarn will do this by default when you `npm install @validatem/error` or `yarn add @validatem/error`, but some people turn this off - don't do that here, or things might break! + +## Why is this a separate package? + +Because it makes forwards compatibility easier. Even if [`@validatem/core`](https://www.npmjs.com/package/@validatem/core) ever needs a breaking release, chances are that the error format remains unchanged. Making the error type separately versionable, means that in that scenario validators should stay compatible with both the old *and* the new version of the core, without validator authors needing to update anything. + +## License, donations, and other boilerplate + +Licensed under either the [WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), at your choice. In practice, that means it's more or less public domain, and you can do whatever you want with it. Giving credit is *not* required, but still very much appreciated! I'd love to [hear from you](mailto:admin@cryto.net) if `validatem` was useful to you. + +Creating and maintaining open-source modules is a lot of work. A donation is also not required, but much appreciated! You can donate [here](http://cryto.net/~joepie91/donate.html). + +## API + +### new ValidationError(message, [properties]) + +The constructor for `validatem`'s `ValidationError` type. This is invoked like any other `Error` constructor, but you may optionally pass extra metadata that should be stored on the error. + +__Note that, for performance reasons (preventing stacktrace collection), the returned object does not *actually* inherit from `Error`!__ This should not affect its correct functioning, considering that the stacktraces of individual validators are not used in Validatem, and `ValidationError`s should never be thrown outside of a validator context anyway. + +__Unless you are implementing a parser and using virtual properties, you probably do not need to specify the `path` property.__ Combinators like `arrayOf` will insert their path segments after-the-fact by themselves, your validator does not need to do this. + +* __message:__ A description of the validation problem. This should be formatted in such a way that it describes the *requirement*, and *not* how it failed; for example, it should say "Must be a string" rather than "Is not a string". +* __properties:__ *Optional.* An object of properties to attach to the new error object. + * __path:__ An array of 'path segment' strings that describes the location of the validation error. + +## Changelog + +### v1.0.0 (April 20, 2020) + +Initial release. diff --git a/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/index.js b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/index.js new file mode 100644 index 0000000..60e275b --- /dev/null +++ b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/index.js @@ -0,0 +1,19 @@ +"use strict"; + +// NOTE: We don't actually inherit from the real Error here, because collecting stacktraces is very expensive and largely useless for our purposes. Validatem's own error reporting is clear enough, and if not, that's a bug in Validatem anyway. +function ValidationError(message, properties) { + this.message = message; + + Object.assign(this, { + path: [], + ___validatem_isValidationError: true, + ___validatem_errorVersion: 1 + }); + + Object.assign(this, properties); +} + +ValidationError.prototype.name = "ValidationError"; + +module.exports = ValidationError; +module.exports.__modulePath = __dirname; diff --git a/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/package.json b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/package.json new file mode 100644 index 0000000..7939a3b --- /dev/null +++ b/node_modules/.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error/package.json @@ -0,0 +1,8 @@ +{ + "name": "@validatem/error", + "version": "1.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/error.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0" +} diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/annotate-errors b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/annotate-errors new file mode 120000 index 0000000..5d38616 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/annotate-errors @@ -0,0 +1 @@ +../../../@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/combinator b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/combinator new file mode 120000 index 0000000..5d943c8 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/combinator @@ -0,0 +1 @@ +../../../@validatem+combinator@0.1.2/node_modules/@validatem/combinator \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/README.md b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/README.md new file mode 100644 index 0000000..85adad0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/README.md @@ -0,0 +1,5 @@ +# @validatem/has-shape + +Documentation for this module has not been fully written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/example.js b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/example.js new file mode 100644 index 0000000..5a6abe0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/example.js @@ -0,0 +1,35 @@ +"use strict"; + +const hasShape = require("./"); +const { validateValue } = require("@validatem/core"); +const isString = require("@validatem/is-string"); + +let validator = hasShape({ + foo: [ isString ], + unused: [ isString ] +}); + +let objectA = { + foo: "bar" +}; + +console.log(validateValue(objectA, validator)); // { foo: 'bar' } + +let objectB = { + foo: 42 +}; + +console.log(validateValue(objectB, validator)); /* + AggregrateValidationError: One or more validation errors occurred: + - At foo: Must be a string +*/ + +let objectC = { + foo: "hello world", + otherProperty: "baz" +}; + +console.log(validateValue(objectC, validator)); /* + AggregrateValidationError: One or more validation errors occurred: + - At (root): Encountered an unexpected property 'otherProperty' +*/ diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/index.js b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/index.js new file mode 100644 index 0000000..9cdbea0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/index.js @@ -0,0 +1,100 @@ +"use strict"; + +const asExpression = require("as-expression"); +const defaultValue = require("default-value"); +const assureArray = require("assure-array"); +const flatten = require("flatten"); +const arrayUnion = require("array-union"); + +const ValidationError = require("@validatem/error"); +const validationResult = require("@validatem/validation-result"); +const annotateErrors = require("@validatem/annotate-errors"); +const combinator = require("@validatem/combinator"); + +function containsRules(rules) { + // TODO: We cannot use normalize-rules here (for now) since that would create a cyclical dependency; figure out a way to work around this, maybe by removing the hasShape feature in `normalize-rules`, or moving the flattening itself out into a separate `flatten-rules` package? + if (rules == null) { + return false; + } else { + // TODO: Switch to `Array#flat` once Node 10.x goes EOL (April 2021) + let flattenedRules = flatten(assureArray(rules)); + + if (!flattenedRules.some((rule) => rule != null)) { + return false; + } else { + return true; + } + } +} + +module.exports = function hasShape(rules) { + let validator = combinator((object, applyValidators, context) => { + let allowExtraProperties = defaultValue(context.allowExtraProperties, false); + + let unexpectedPropertyErrors = asExpression(() => { + if (!allowExtraProperties) { + return Reflect.ownKeys(object).map((propertyName) => { + if (!containsRules(rules[propertyName])) { + return new ValidationError(`Encountered an unexpected property '${propertyName}'`); + } else { + return null; + } + }).filter((error) => { + return (error != null); + }); + } else { + return []; + } + }); + + if (unexpectedPropertyErrors.length > 0) { + return validationResult({ + errors: unexpectedPropertyErrors, + newValue: object + }); + } else { + let errors = []; + let newObject = {}; + + // We need to consider the keys from the ruleset (for detecting missing required properties) *and* the keys from the actual object (for handling extraneous values). + let allKeys = arrayUnion( + Reflect.ownKeys(rules), + Reflect.ownKeys(object) + ); + + for (let key of allKeys) { + let value = object[key]; + let rule = rules[key]; + + if (rule != null) { + let { errors: keyErrors, newValue } = applyValidators(value, rule); + + let annotatedErrors = annotateErrors({ + pathSegments: [ key ], + errors: keyErrors + }); + + errors.push(... annotatedErrors); + + // Don't scatter explicit `undefined`s across the result object, just because an optional rule existed for some properties but the corresponding value didn't + if (newValue !== undefined) { + newObject[key] = newValue; + } + } else { + // Extraneous property + // FIXME: Assign non-enumerable if the source property was non-enumerable! + newObject[key] = value; + } + } + + return validationResult({ + errors: errors, + newValue: newObject + }); + } + }); + + validator.callIfNull = false; + + return validator; +}; diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/package.json b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/package.json new file mode 100644 index 0000000..37da40d --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape/package.json @@ -0,0 +1,29 @@ +{ + "name": "@validatem/has-shape", + "description": "Validatem combinator for validating that a value has certain keys that pass certain validators (eg. object validation)", + "keywords": [ + "validatem", + "validator", + "combinator" + ], + "version": "0.1.8", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/has-shape.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/annotate-errors": "^0.1.2", + "@validatem/combinator": "^0.1.0", + "@validatem/error": "^1.0.0", + "@validatem/validation-result": "^0.1.1", + "array-union": "^2.1.0", + "as-expression": "^1.0.0", + "assure-array": "^1.0.0", + "default-value": "^1.0.0", + "flatten": "^1.0.3" + }, + "devDependencies": { + "@validatem/core": "^0.3.1", + "@validatem/is-string": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/validation-result b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/validation-result new file mode 120000 index 0000000..fad803c --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/@validatem/validation-result @@ -0,0 +1 @@ +../../../@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/array-union b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/array-union new file mode 120000 index 0000000..37d5ecf --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/array-union @@ -0,0 +1 @@ +../../array-union@2.1.0/node_modules/array-union \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/as-expression b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/as-expression new file mode 120000 index 0000000..685d933 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/as-expression @@ -0,0 +1 @@ +../../as-expression@1.0.0/node_modules/as-expression \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/assure-array b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/assure-array new file mode 120000 index 0000000..8117087 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/assure-array @@ -0,0 +1 @@ +../../assure-array@1.0.0/node_modules/assure-array \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/default-value b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/default-value new file mode 120000 index 0000000..a246f18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/default-value @@ -0,0 +1 @@ +../../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/flatten b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/flatten new file mode 120000 index 0000000..be3260b --- /dev/null +++ b/node_modules/.pnpm/@validatem+has-shape@0.1.8/node_modules/flatten @@ -0,0 +1 @@ +../../flatten@1.0.3/node_modules/flatten \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/README.md b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/README.md new file mode 100644 index 0000000..e04553d --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/README.md @@ -0,0 +1,5 @@ +# @validatem/is-non-empty-string + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/example.js b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/example.js new file mode 100644 index 0000000..b4e315c --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const { validateValue } = require("@validatem/core"); +const isNonEmptyString = require("./"); + +console.log(validateValue("hello world", [ isNonEmptyString ])); // hello world + +console.log(validateValue("", [ isNonEmptyString ])); /* + AggregrateValidationError: One or more validation errors occurred: + - At (root): String must not be empty +*/ diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/index.js b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/index.js new file mode 100644 index 0000000..4bfd0bb --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/index.js @@ -0,0 +1,13 @@ +"use strict"; + +const ValidationError = require("@validatem/error"); +const isString = require("@validatem/is-string"); + +module.exports = [ + isString, + function isNonEmptyString(value) { + if (value.length === 0) { + throw new ValidationError(`String must not be empty`); + } + } +]; diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/package.json b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/package.json new file mode 100644 index 0000000..b36ea00 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string/package.json @@ -0,0 +1,20 @@ +{ + "name": "@validatem/is-non-empty-string", + "description": "Validatem validator for ensuring that a value is a non-empty string", + "keywords": [ + "validatem", + "validator" + ], + "version": "0.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/is-non-empty-string.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/error": "^1.0.0", + "@validatem/is-string": "^0.1.1" + }, + "devDependencies": { + "@validatem/core": "^0.3.3" + } +} diff --git a/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-string b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-string new file mode 120000 index 0000000..444cdbb --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-string @@ -0,0 +1 @@ +../../../@validatem+is-string@0.1.1/node_modules/@validatem/is-string \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/README.md b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/README.md new file mode 100644 index 0000000..69e8f9e --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/README.md @@ -0,0 +1,5 @@ +# @validatem/is-plain-object + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/example.js b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/example.js new file mode 100644 index 0000000..9fb08cd --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const { validateValue } = require("@validatem/core"); +const isPlainObject = require("./"); + +console.log(validateValue({ foo: "bar" }, [ isPlainObject ])); // { foo: 'bar' } + +console.log(validateValue(new Date(), [ isPlainObject ])); /* + AggregrateValidationError: One or more validation errors occurred: + - At (root): Must be a plain object (eg. object literal) +*/ diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/index.js b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/index.js new file mode 100644 index 0000000..3fd47a9 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/index.js @@ -0,0 +1,10 @@ +"use strict"; + +const ValidationError = require("@validatem/error"); +const isPlainObj = require("is-plain-obj"); + +module.exports = function(value) { + if (!isPlainObj(value)) { + throw new ValidationError("Must be a plain object (eg. object literal)"); + } +}; diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/package.json b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/package.json new file mode 100644 index 0000000..66f8a4f --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object/package.json @@ -0,0 +1,20 @@ +{ + "name": "@validatem/is-plain-object", + "description": "Validatem validator for ensuring that a value is a plain object (eg. object literal)", + "keywords": [ + "validatem", + "validator" + ], + "version": "0.1.1", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/is-plain-object.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/error": "^1.0.0", + "is-plain-obj": "^2.1.0" + }, + "devDependencies": { + "@validatem/core": "^0.3.1" + } +} diff --git a/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/is-plain-obj b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/is-plain-obj new file mode 120000 index 0000000..323abd4 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-plain-object@0.1.1/node_modules/is-plain-obj @@ -0,0 +1 @@ +../../is-plain-obj@2.1.0/node_modules/is-plain-obj \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/error b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/error new file mode 120000 index 0000000..fc53388 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/error @@ -0,0 +1 @@ +../../../@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/README.md b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/README.md new file mode 100644 index 0000000..eca865d --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/README.md @@ -0,0 +1,5 @@ +# @validatem/is-string + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/example.js b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/example.js new file mode 100644 index 0000000..b28babb --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const { validateValue } = require("@validatem/core"); +const isString = require("./"); + +console.log(validateValue("hello world", [ isString ])); // hello world + +console.log(validateValue(42, [ isString ])); /* + AggregrateValidationError: One or more validation errors occurred: + - At (root): Must be a string +*/ diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/index.js b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/index.js new file mode 100644 index 0000000..ac878e2 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/index.js @@ -0,0 +1,10 @@ +"use strict"; + +const ValidationError = require("@validatem/error"); +const isString = require("is-string"); + +module.exports = function (value) { + if (!isString(value)) { + throw new ValidationError("Must be a string"); + } +}; diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/package.json b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/package.json new file mode 100644 index 0000000..a66ac3c --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/@validatem/is-string/package.json @@ -0,0 +1,20 @@ +{ + "name": "@validatem/is-string", + "description": "Validatem validator for ensuring that a value is a string", + "keywords": [ + "validatem", + "validator" + ], + "version": "0.1.1", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/is-string.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/error": "^1.0.0", + "is-string": "^1.0.5" + }, + "devDependencies": { + "@validatem/core": "^0.3.1" + } +} diff --git a/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/is-string b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/is-string new file mode 120000 index 0000000..737f028 --- /dev/null +++ b/node_modules/.pnpm/@validatem+is-string@0.1.1/node_modules/is-string @@ -0,0 +1 @@ +../../is-string@1.0.7/node_modules/is-string \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/README.md b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/README.md new file mode 100644 index 0000000..73d43e7 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/README.md @@ -0,0 +1,5 @@ +# @validatem/match-special + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/example.js b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/example.js new file mode 100644 index 0000000..4519d00 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const matchSpecial = require("./"); +const virtualProperty = require("@validatem/virtual-property"); + +let propertyA = "foo"; +let propertyB = virtualProperty("bar"); + +console.log(matchSpecial(propertyA)); // false +console.log(matchSpecial(propertyB)); // true + diff --git a/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/index.js b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/index.js new file mode 100644 index 0000000..a1ee445 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/index.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = function matchSpecial(value) { + return (value != null && value.___validatem_isSpecial === true); +}; diff --git a/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/package.json b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/package.json new file mode 100644 index 0000000..accda52 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-special@0.1.0/node_modules/@validatem/match-special/package.json @@ -0,0 +1,12 @@ +{ + "name": "@validatem/match-special", + "description": "Utility for checking whether something is a special (plumbing) object of some kind", + "version": "0.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/match-special.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/virtual-property": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/README.md b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/README.md new file mode 100644 index 0000000..3d6a402 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/README.md @@ -0,0 +1,5 @@ +# @validatem/match-validation-error + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/example.js b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/example.js new file mode 100644 index 0000000..169c0c7 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const matchValidationError = require("./"); +const ValidationError = require("@validatem/error"); + +let error = new ValidationError("Must be a valid thing"); +let notAnError = 42; + +console.log(matchValidationError(error)); // true +console.log(matchValidationError(notAnError)); // false + diff --git a/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/index.js b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/index.js new file mode 100644 index 0000000..4dfa815 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/index.js @@ -0,0 +1,10 @@ +"use strict"; + +const createVersionedSpecialCheck = require("@validatem/match-versioned-special"); + +module.exports = createVersionedSpecialCheck({ + markerProperty: "___validatem_isValidationError", + versionProperty: "___validatem_errorVersion", + friendlyName: "a ValidationError", + expectedVersions: [ 1 ] +}); diff --git a/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/package.json b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/package.json new file mode 100644 index 0000000..c29bff1 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error/package.json @@ -0,0 +1,15 @@ +{ + "name": "@validatem/match-validation-error", + "description": "Utility for checking whether something is a ValidationError", + "version": "0.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/match-validation-error.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/error": "^1.0.0" + }, + "dependencies": { + "@validatem/match-versioned-special": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-versioned-special b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-versioned-special new file mode 120000 index 0000000..cbb559f --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-versioned-special @@ -0,0 +1 @@ +../../../@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/README.md b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/README.md new file mode 100644 index 0000000..80e8252 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/README.md @@ -0,0 +1,5 @@ +# @validatem/match-versioned-special + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/example.js b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/example.js new file mode 100644 index 0000000..7d32275 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/example.js @@ -0,0 +1,23 @@ +"use strict"; + +const matchVersionedSpecial = require("./"); +const virtualProperty = require("@validatem/virtual-property"); + +let matchVirtualProperty = matchVersionedSpecial({ + markerProperty: "___validatem_isVirtualProperty", + versionProperty: "___validatem_virtualPropertyVersion", + friendlyName: "a virtual property", + expectedVersions: [ 1 ] +}); + +let propertyA = "foo"; +let propertyB = virtualProperty("bar"); + +// This one is a version we don't recognize +let propertyC = virtualProperty("baz"); +propertyC.___validatem_virtualPropertyVersion = -2; + +console.log(matchVirtualProperty(propertyA)); // false +console.log(matchVirtualProperty(propertyB)); // true +console.log(matchVirtualProperty(propertyC)); // Produces version mismatch error + diff --git a/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/index.js b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/index.js new file mode 100644 index 0000000..af01de6 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/index.js @@ -0,0 +1,30 @@ +"use strict"; + +/* +Validatem has a separate package for each sort of (public) special value/marker, rather than just stuffing them all into @validatem/core. This is for three reasons: +1) To reduce module duplication. If for some reason two validators depend on slightly different versions of Validatem plumbing, it's much better if that plumbing is *just* an object factory, and not the entirety of @validatem/core. +2) To make versioning easier. Special values/types can now be independently versioned, so even if the @validatem/core API changes in a breaking manner, validators do not need to be updated to use a newer @validatem/core; because they don't depend on it *at all*, and instead depend on these individual plumbing modules, which will probably *never* have a breaking change. +3) Even *if* one of the plumbing modules gets a breaking release, it's easy to write @validatem/core and other plumbing modules such that they can deal with multiple different versions of plumbing objects, without requiring validators to update their dependency to remain compatible. + +To accomplish these goals, all these plumbing modules produce objects with some metadata that identifies a) it being a special object, b) the type of special object, and c) the version of that object's API, which will match the semver-major version of the module that it originates from. This function is used to check for the various different kinds of special objects, and ensure that they are of a supported version (eg. older @validatem/core modules cannot deal with newer versions of plumbing objects). + +If breaking releases occur for plumbing modules in the future, this logic can also check for *multiple* acceptable versions, and the *handling* logic for those special plumbing objects will be updated so that it is capable of handling both older and newer versions. + +This is a generalized solution to the problem of modular plumbing, and should also be useful for other modular toolkits. Time will tell whether this model actually ends up working as well in practice as it does on paper. +*/ + +// TODO: Add a module copy mismatch check here that is based on __modulePath, to detect redundant copies? Similar to how validation-error.js used to do an instance check + +module.exports = function createVersionedSpecialMatcher({ markerProperty, versionProperty, friendlyName, expectedVersions }) { + return function isSpecial(value) { + if (value != null && value[markerProperty]) { + if (expectedVersions.includes(value[versionProperty])) { + return true; + } else { + throw new Error(`Encountered ${friendlyName} with version ${value[versionProperty]}, but we were expecting one of versions [ ${expectedVersions.join(", ")} ]; this probably means you tried to use a validator that is incompatible with your version of @validatem/core, or with some other Validatem utility. Look at the stacktrace to determine where the mismatch is happening.`); + } + } else { + return false; + } + }; +}; diff --git a/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/package.json b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/package.json new file mode 100644 index 0000000..cca30e8 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special/package.json @@ -0,0 +1,12 @@ +{ + "name": "@validatem/match-versioned-special", + "description": "Utility for checking whether something is a special (plumbing) object with a particular version", + "version": "0.1.1", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/match-versioned-special.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/virtual-property": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/README.md b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/README.md new file mode 100644 index 0000000..cda1edc --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/README.md @@ -0,0 +1,5 @@ +# @validatem/match-virtual-property + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/example.js b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/example.js new file mode 100644 index 0000000..407f865 --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const matchVirtualProperty = require("./"); +const virtualProperty = require("@validatem/virtual-property"); + +let propertyA = virtualProperty("foo"); +let propertyB = "bar"; + +console.log(matchVirtualProperty(propertyA)); // true +console.log(matchVirtualProperty(propertyB)); // false + diff --git a/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/index.js b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/index.js new file mode 100644 index 0000000..c29781e --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/index.js @@ -0,0 +1,10 @@ +"use strict"; + +const createVersionedSpecialCheck = require("@validatem/match-versioned-special"); + +module.exports = createVersionedSpecialCheck({ + markerProperty: "___validatem_isVirtualProperty", + versionProperty: "___validatem_virtualPropertyVersion", + friendlyName: "a virtual property", + expectedVersions: [ 1 ] +}); diff --git a/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/package.json b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/package.json new file mode 100644 index 0000000..b5d7aef --- /dev/null +++ b/node_modules/.pnpm/@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property/package.json @@ -0,0 +1,12 @@ +{ + "name": "@validatem/match-virtual-property", + "description": "Utility for checking whether something is a virtual property", + "version": "0.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/match-virtual-property.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/virtual-property": "^0.1.0" + } +} diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/has-shape b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/has-shape new file mode 120000 index 0000000..03c10a0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/has-shape @@ -0,0 +1 @@ +../../../@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/is-plain-object b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/is-plain-object new file mode 120000 index 0000000..7211f51 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/is-plain-object @@ -0,0 +1 @@ +../../../@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/match-special b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/match-special new file mode 120000 index 0000000..1676ee0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/match-special @@ -0,0 +1 @@ +../../../@validatem+match-special@0.1.0/node_modules/@validatem/match-special \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/.eslintrc b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/.eslintrc new file mode 100644 index 0000000..b0108ff --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "@joepie91/eslint-config" +} diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/README.md b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/README.md new file mode 100644 index 0000000..b1d3fa2 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/README.md @@ -0,0 +1,34 @@ +# @validatem/normalize-rules + +This library implements the logic that Validatem uses internally for flattening and normalizing a list of rules (validators and combinators), prior to applying them. + +It's particularly useful if you're writing a combinator that does some sort of preprocessing on rules before applying them, and you need the same flattening/normalization logic that `@validatem/core` uses. + +Please see the [Validatem website](https://validatem.cryto.net/) for full documentation on how this package fits into the ecosystem of utility and internals packages. This README only includes the API docunentation. + +## Why is this a separate package? + +One of the design goals of Validatem is to minimize how much complexity and code you're adding to your project. Because of that, all of the plumbing used by validators and combinators is packaged as granularly as possible. This prevents the situation where you have 20 copies of the entire Validatem core floating around in your project, just because different validators happen to depend on slightly different versions. + +By having several small 'plumbing' packages, validators *never* need to depend on `@validatem/core`, but only on the specific bits of plumbing that they need. + +## License, donations, and other boilerplate + +Licensed under either the [WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), at your choice. In practice, that means it's more or less public domain, and you can do whatever you want with it. Giving credit is *not* required, but still very much appreciated! I'd love to [hear from you](mailto:admin@cryto.net) if `validatem` was useful to you. + +Creating and maintaining open-source modules is a lot of work. A donation is also not required, but much appreciated! You can donate [here](http://cryto.net/~joepie91/donate.html). + +If you are contributing to this project, keep in mind that you will also be making your contributions available under the above licenses. + +## API + +### normalizeRules(rules, [options]) + +Takes a list of rules and returns a single, normalized, flattened array of rules. + +- __rules:__ The list of rules to normalize. Note that multiple formats are accepted: + - A single validator/combinator, without any array wrapping. + - A flat array of validators/combinators. + - An arbitrarily nested array of (arrays of arrays of ...) validators/combinators, which will be flattened. +- __options:__ *Optional.* An object of options. + - __normalizeObjects:__ Whether to turn object literals into `@validatem/has-shape` combinators, like Validatem does internally. If you want to pre-process object-literal rules, you probably want to keep this turned off. Defaults to `false`. diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/index.js b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/index.js new file mode 100644 index 0000000..15a12d0 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/index.js @@ -0,0 +1,41 @@ +"use strict"; + +const assureArray = require("assure-array"); +const isPlainObj = require("is-plain-obj"); +const defaultValue = require("default-value"); +const flatten = require("flatten"); + +const matchSpecial = require("@validatem/match-special"); +const isPlainObjectValidator = require("@validatem/is-plain-object"); +const hasShape = require("@validatem/has-shape"); + +// FIXME: Write an example.js + +module.exports = function normalizeRules(rules, options) { + let normalizeObjects = defaultValue(options.normalizeObjects, false); + + // TODO: Switch to `Array#flat` once Node 10.x goes EOL (April 2021) + let flattened = flatten(assureArray(rules)); + let actualRules = flattened.filter((rule) => rule != null); + + if (normalizeObjects) { + // TODO: Switch to `Array#flatmap` once Node 10.x goes EOL (April 2021) + // TODO: Better input validation of some sort here + let mapped = actualRules.map((rule) => { + // TODO: Figure out why isPlainObj in the below line breaks within a component in Shayu. Something something cross-realm objects something? + // if (isPlainObj(rule) && !matchSpecial(rule)) { + if (typeof rule === "object" && !matchSpecial(rule)) { + return [ + isPlainObjectValidator, + hasShape(rule) + ]; + } else { + return rule; + } + }); + + return flatten(mapped); + } else { + return actualRules; + } +}; diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/package.json b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/package.json new file mode 100644 index 0000000..fb13525 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules/package.json @@ -0,0 +1,22 @@ +{ + "name": "@validatem/normalize-rules", + "description": "Flattens and normalizes a list of rules, ready for pre-processing in a combinator", + "version": "0.1.3", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/normalize-rules.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "@validatem/has-shape": "^0.1.0", + "@validatem/is-plain-object": "^0.1.0", + "@validatem/match-special": "^0.1.0", + "assure-array": "^1.0.0", + "default-value": "^1.0.0", + "flatten": "^1.0.3", + "is-plain-obj": "^2.1.0" + }, + "devDependencies": { + "@joepie91/eslint-config": "^1.1.0", + "eslint": "^6.8.0" + } +} diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/assure-array b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/assure-array new file mode 120000 index 0000000..8117087 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/assure-array @@ -0,0 +1 @@ +../../assure-array@1.0.0/node_modules/assure-array \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/default-value b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/default-value new file mode 120000 index 0000000..a246f18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/default-value @@ -0,0 +1 @@ +../../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/flatten b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/flatten new file mode 120000 index 0000000..be3260b --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/flatten @@ -0,0 +1 @@ +../../flatten@1.0.3/node_modules/flatten \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/is-plain-obj b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/is-plain-obj new file mode 120000 index 0000000..323abd4 --- /dev/null +++ b/node_modules/.pnpm/@validatem+normalize-rules@0.1.3/node_modules/is-plain-obj @@ -0,0 +1 @@ +../../is-plain-obj@2.1.0/node_modules/is-plain-obj \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/README.md b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/README.md new file mode 100644 index 0000000..2a7d66b --- /dev/null +++ b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/README.md @@ -0,0 +1,5 @@ +# @validatem/required + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/example.js b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/example.js new file mode 100644 index 0000000..27050b5 --- /dev/null +++ b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/example.js @@ -0,0 +1,11 @@ +"use strict"; + +const required = require("./"); +const { validateValue } = require("@validatem/core"); + +console.log(validateValue(42, [ required ])); // 42 + +console.log(validateValue(null, [ required ])); /* + AggregrateValidationError: One or more validation errors occurred: + - At (root): Required value is missing +*/ diff --git a/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/index.js b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/index.js new file mode 100644 index 0000000..7f53008 --- /dev/null +++ b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/index.js @@ -0,0 +1,9 @@ +"use strict"; + +module.exports = { + ___validatem_isSpecial: true, + ___validatem_isRequiredMarker: true, + ___validatem_requiredMarkerVersion: 1, +}; + +module.exports.__modulePath = __dirname; diff --git a/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/package.json b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/package.json new file mode 100644 index 0000000..c7ec7e5 --- /dev/null +++ b/node_modules/.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required/package.json @@ -0,0 +1,12 @@ +{ + "name": "@validatem/required", + "description": "Marks a field or value as 'required'", + "version": "0.1.1", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/required.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@validatem/core": "^0.3.1" + } +} diff --git a/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/README.md b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/README.md new file mode 100644 index 0000000..2b8b60c --- /dev/null +++ b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/README.md @@ -0,0 +1,5 @@ +# @validatem/validation-result + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. diff --git a/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/example.js b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/example.js new file mode 100644 index 0000000..9b5ed33 --- /dev/null +++ b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/example.js @@ -0,0 +1,22 @@ +"use strict"; + +const validationResult = require("./"); +const ValidationError = require("@validatem/error"); +const { validateValue } = require("@validatem/core"); + +function nonsenseValidator(value) { + return validationResult({ + errors: [ + new ValidationError("Some nonsense"), + new ValidationError("Some more nonsense"), + ], + newValue: value * 2 /* This will currently get lost into the void, because there are validation errors - a future version of Validatem may expose this "partial result", though */ + }); +} + +let result = validateValue(21, nonsenseValidator); +/* +AggregrateValidationError: One or more validation errors occurred: + - At (root): Some nonsense + - At (root): Some more nonsense +*/ diff --git a/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/index.js b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/index.js new file mode 100644 index 0000000..82884eb --- /dev/null +++ b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/index.js @@ -0,0 +1,15 @@ +"use strict"; + +const defaultValue = require("default-value"); + +module.exports = function validationResult({ errors, newValue }) { + return { + errors: defaultValue(errors, []), + newValue: newValue, + ___validatem_isSpecial: true, + ___validatem_isValidationResult: true, + ___validatem_validationResultVersion: 1, + }; +}; + +module.exports.__modulePath = __dirname; diff --git a/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/package.json b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/package.json new file mode 100644 index 0000000..5ab97d4 --- /dev/null +++ b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result/package.json @@ -0,0 +1,16 @@ +{ + "name": "@validatem/validation-result", + "description": "Utility for creating a 'validation result', ie. an object that represents zero or more errors and an optional result value", + "version": "0.1.2", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/validation-result.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "default-value": "^1.0.0" + }, + "devDependencies": { + "@validatem/core": "^0.3.1", + "@validatem/error": "^1.0.0" + } +} diff --git a/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/default-value b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/default-value new file mode 120000 index 0000000..a246f18 --- /dev/null +++ b/node_modules/.pnpm/@validatem+validation-result@0.1.2/node_modules/default-value @@ -0,0 +1 @@ +../../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/README.md b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/README.md new file mode 100644 index 0000000..cd0b3de --- /dev/null +++ b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/README.md @@ -0,0 +1,11 @@ +# virtual-property + +Documentation for this module has not been written yet. By the time it reaches 1.0.0, it will have full documentation. + +In the meantime, check out the `example.js` file in the repository for a usage demonstration. + +Rough notes for the future documentation are below: + +---- + +Marker object that is used to denote a 'virtual property' in a path segment for a validation error; a virtual property could be any property that doesn't really exist but that is semantically treated as a separately-checked value within a validator, such as the 'key property' of an `anyProperty` check, or the 'hostname property' of a parsed URL. diff --git a/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/example.js b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/example.js new file mode 100644 index 0000000..f5bdb08 --- /dev/null +++ b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/example.js @@ -0,0 +1,13 @@ +"use strict"; + +const virtualProperty = require("./"); + +let property = virtualProperty("propertyName"); + +console.log(property); +/* +{ name: 'propertyName', + ___validatem_isSpecial: true, + ___validatem_isVirtualProperty: true, + ___validatem_virtualPropertyVersion: 1 } +*/ diff --git a/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/index.js b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/index.js new file mode 100644 index 0000000..079598c --- /dev/null +++ b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/index.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = function virtualProperty(name) { + return { + name: name, + ___validatem_isSpecial: true, + ___validatem_isVirtualProperty: true, + ___validatem_virtualPropertyVersion: 1, + }; +}; diff --git a/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/package.json b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/package.json new file mode 100644 index 0000000..9d862ce --- /dev/null +++ b/node_modules/.pnpm/@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property/package.json @@ -0,0 +1,9 @@ +{ + "name": "@validatem/virtual-property", + "description": "Utility for creating an object representing a virtual property", + "version": "0.1.0", + "main": "index.js", + "repository": "http://git.cryto.net/validatem/virtual-property.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0" +} diff --git a/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.d.ts b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.d.ts new file mode 100644 index 0000000..379fc1d --- /dev/null +++ b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.d.ts @@ -0,0 +1,25 @@ +/** +Create an array of unique values, in order, from the input arrays. + +@example +``` +import arrayUnion = require('array-union'); + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` +*/ +declare function arrayUnion( + ...arguments: readonly ArgumentsType[] +): ArgumentsType; + +export = arrayUnion; diff --git a/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.js b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.js new file mode 100644 index 0000000..7f85d3d --- /dev/null +++ b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/index.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = (...arguments_) => { + return [...new Set([].concat(...arguments_))]; +}; diff --git a/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/license b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/package.json b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/package.json new file mode 100644 index 0000000..5ad5afa --- /dev/null +++ b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/package.json @@ -0,0 +1,38 @@ +{ + "name": "array-union", + "version": "2.1.0", + "description": "Create an array of unique values, in order, from the input arrays", + "license": "MIT", + "repository": "sindresorhus/array-union", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "array", + "set", + "uniq", + "unique", + "duplicate", + "remove", + "union", + "combine", + "merge" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/readme.md b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/readme.md new file mode 100644 index 0000000..2474a1a --- /dev/null +++ b/node_modules/.pnpm/array-union@2.1.0/node_modules/array-union/readme.md @@ -0,0 +1,34 @@ +# array-union [![Build Status](https://travis-ci.org/sindresorhus/array-union.svg?branch=master)](https://travis-ci.org/sindresorhus/array-union) + +> Create an array of unique values, in order, from the input arrays + + +## Install + +``` +$ npm install array-union +``` + + +## Usage + +```js +const arrayUnion = require('array-union'); + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/README.md b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/README.md new file mode 100644 index 0000000..d19d232 --- /dev/null +++ b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/README.md @@ -0,0 +1,85 @@ +# as-expression + +Inline *any* chunk of JavaScript, including statements (like `if`/`else if`/`else` chains) as an expression. No more defining variables that get conditionally set! + +## Example + +Turns this: + +```js +"use strict"; + +let stringValue = "two"; + +let numericValue; + +if (stringValue === "one") { + numericValue = 1; +} else if (stringValue === "two") { + numericValue = 2; +} else if (stringValue === "three") { + numericValue = 3; +} + +let someObject = { + someBoolean: true, + someString: "This is a dummy object", + someNumber: numericValue +}; + +console.log(someObject); +``` + +into this: + +```js +"use strict"; + +const asExpression = require("as-expression"); + +let stringValue = "two"; + +let someObject = { + someBoolean: true, + someString: "This is a dummy object", + someNumber: asExpression(() => { + if (stringValue === "one") { + return 1; + } else if (stringValue === "two") { + return 2; + } else if (stringValue === "three") { + return 3; + } + }) +}; + +console.log(someObject); +``` + +In both cases, the `console.log` would produce: + +```js +{ someBoolean: true, + someString: 'This is a dummy object', + someNumber: 2 } +``` + +## Wait, why an entire library for this? It's like 3 lines of code. + +Lines of code [don't matter in general](https://github.com/sindresorhus/ama/issues/10#issuecomment-117766328), but in *this* specific case, the point isn't even the complexity - it's the *readability*. + +The point of this library is to function almost like a self-documenting syntax extension; from a glance, you can immediately see what it's supposed to do. It's *technically* not new syntax, but in how you use it, it does *work* like it. + +You could define an ad-hoc version of this abstraction throughout your code, sure, and it'd have the same benefit. But what would be the point? You'd just end up with 20 copies of the same `asExpression` helper throughout your codebase and dependency tree, that all do functionally the same thing, but that each take up their own bit of space and need to be reviewed individually. + +By having it as a separate package, you'll only ever have *one* copy of this utility in your codebase, no matter how many dependencies do the same thing. As the API for this library is very unlikely to ever change (and so it'll always remain on the same major version), npm will perfectly deduplicate this library no matter in how many places it is used. + +(Of course, this assumes that you don't mess with npm's default behaviour; if you start pinning explicit versions in your `package.json` - which you should never do, that is what lockfiles are for! - then you may start seeing multiple copies, because npm can no longer deduplicate them without breaking your version constraints.) + +## API + +### asExpression(func) + +Immediately executes `func` and returns its return value. This has the effect of giving you a scope that you can `return` from, with the ability to inline that result in an expression of some sort (like a variable assignment, or an object literal). + +That's it. diff --git a/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/example.js b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/example.js new file mode 100644 index 0000000..4ae55a6 --- /dev/null +++ b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/example.js @@ -0,0 +1,27 @@ +"use strict"; + +const asExpression = require("./"); + +let stringValue = "two"; + +let someObject = { + someBoolean: true, + someString: "This is a dummy object", + someNumber: asExpression(() => { + if (stringValue === "one") { + return 1; + } else if (stringValue === "two") { + return 2; + } else if (stringValue === "three") { + return 3; + } + }) +}; + +console.log(someObject); + +/* +{ someBoolean: true, + someString: 'This is a dummy object', + someNumber: 2 } +*/ diff --git a/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/index.js b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/index.js new file mode 100644 index 0000000..b6c473e --- /dev/null +++ b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/index.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = function asExpression(func) { + return func(); +}; diff --git a/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/package.json b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/package.json new file mode 100644 index 0000000..a93297d --- /dev/null +++ b/node_modules/.pnpm/as-expression@1.0.0/node_modules/as-expression/package.json @@ -0,0 +1,9 @@ +{ + "name": "as-expression", + "description": "Inline any chunk of JS code, including statements, as an expression", + "version": "1.0.0", + "main": "index.js", + "repository": "http://git.cryto.net/joepie91/as-expression.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0" +} diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/.npmignore b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/.npmignore new file mode 100644 index 0000000..096746c --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/.npmignore @@ -0,0 +1 @@ +/node_modules/ \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/CHANGELOG.md b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/CHANGELOG.md new file mode 100644 index 0000000..3ff618a --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/CHANGELOG.md @@ -0,0 +1,9 @@ +## 1.0.0 (August 16, 2016) + +First stable and documented release - however, the functionality or API has not changed from `0.0.1`. + +* __Documentation:__ Added documentation and a changelog. + +## 0.0.1 (April 17, 2016) + +Initial release. \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/README.md b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/README.md new file mode 100644 index 0000000..2edd8a3 --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/README.md @@ -0,0 +1,46 @@ +# assure-array + +Wraps a value in an array if it isn't already one. Returns an empty array for `null` and `undefined`. + +A typical usecase for this: when you have an option that accepts multiple values as an array, but you want to make the use of an array literal optional when there's only a single value to specify. + +## License + +[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required. + +## Donate + +Maintaining open-source projects takes a lot of time, and the more donations I receive, the more time I can dedicate to open-source. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)! + +You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else. Thank you! + +## Contributing + +Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`. + +Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes. + +Be aware that by making a pull request, you agree to release your modifications under the licenses stated above. + +## Usage + +Some examples: + +```javascript +var assureArray = require("assure-array"); + +assureArray("hello world"); // ["hello world!"] +assureArray(["hello", "world"]); // ["hello", "world"] +assureArray(null); // [] +assureArray([true]); // [true] +``` + +## API + +### assureArray(value) + +Ensures that the provided `value` is returned as an array. + +* If `value` is an array already, this returns the array unchanged. +* If `value` is `null` or `undefined`, this returns an empty array. +* If `value` is any other kind of value, this returns a new array containing just that one value. \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/gulpfile.js b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/gulpfile.js new file mode 100644 index 0000000..1769501 --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/gulpfile.js @@ -0,0 +1,18 @@ +var gulp = require("gulp"); +var presetES2015 = require("@joepie91/gulp-preset-es2015"); + +var source = ["src/**/*.js"] + +gulp.task('babel', function() { + return gulp.src(source) + .pipe(presetES2015({ + basePath: __dirname + })) + .pipe(gulp.dest("lib/")); +}); + +gulp.task("watch", function () { + gulp.watch(source, ["babel"]); +}); + +gulp.task("default", ["babel", "watch"]); \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/index.js b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/index.js new file mode 100644 index 0000000..507257b --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require("./lib"); \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/lib/index.js b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/lib/index.js new file mode 100644 index 0000000..eec029c --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/lib/index.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function (value) { + if (value == null) { + return []; + } else if (Array.isArray(value)) { + return value; + } else { + return [value]; + } +}; \ No newline at end of file diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/package.json b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/package.json new file mode 100644 index 0000000..ad47b06 --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/package.json @@ -0,0 +1,25 @@ +{ + "name": "assure-array", + "version": "1.0.0", + "description": "Wraps a value in an array if it isn't already one", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "http://git.cryto.net/joepie91/node-assure-array.git" + }, + "keywords": [ + "array", + "wrap" + ], + "author": "Sven Slootweg", + "license": "WTFPL", + "dependencies": {}, + "devDependencies": { + "@joepie91/gulp-preset-es2015": "^1.0.1", + "babel-preset-es2015": "^6.6.0", + "gulp": "^3.9.1" + } +} diff --git a/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/src/index.js b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/src/index.js new file mode 100644 index 0000000..18f25dd --- /dev/null +++ b/node_modules/.pnpm/assure-array@1.0.0/node_modules/assure-array/src/index.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function(value) { + if (value == null) { + return []; + } else if (Array.isArray(value)) { + return value; + } else { + return [value]; + } +} \ No newline at end of file diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintignore b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintignore new file mode 100644 index 0000000..404abb2 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintrc b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintrc new file mode 100644 index 0000000..dfa9a6c --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + "no-magic-numbers": 0, + }, +} diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.github/FUNDING.yml b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.github/FUNDING.yml new file mode 100644 index 0000000..c70c2ec --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/call-bind +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.nycrc b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/CHANGELOG.md b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/CHANGELOG.md new file mode 100644 index 0000000..c653f70 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/CHANGELOG.md @@ -0,0 +1,93 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.7](https://github.com/ljharb/call-bind/compare/v1.0.6...v1.0.7) - 2024-02-12 + +### Commits + +- [Refactor] use `es-define-property` [`09b76a0`](https://github.com/ljharb/call-bind/commit/09b76a01634440461d44a80c9924ec4b500f3b03) +- [Deps] update `get-intrinsic`, `set-function-length` [`ad5136d`](https://github.com/ljharb/call-bind/commit/ad5136ddda2a45c590959829ad3dce0c9f4e3590) + +## [v1.0.6](https://github.com/ljharb/call-bind/compare/v1.0.5...v1.0.6) - 2024-02-05 + +### Commits + +- [Dev Deps] update `aud`, `npmignore`, `tape` [`d564d5c`](https://github.com/ljharb/call-bind/commit/d564d5ce3e06a19df4d499c77f8d1a9da44e77aa) +- [Deps] update `get-intrinsic`, `set-function-length` [`cfc2bdc`](https://github.com/ljharb/call-bind/commit/cfc2bdca7b633df0e0e689e6b637f668f1c6792e) +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`64cd289`](https://github.com/ljharb/call-bind/commit/64cd289ae5862c250a4ca80aa8d461047c166af5) +- [meta] add missing `engines.node` [`32a4038`](https://github.com/ljharb/call-bind/commit/32a4038857b62179f7f9b7b3df2c5260036be582) + +## [v1.0.5](https://github.com/ljharb/call-bind/compare/v1.0.4...v1.0.5) - 2023-10-19 + +### Commits + +- [Fix] throw an error on non-functions as early as possible [`f262408`](https://github.com/ljharb/call-bind/commit/f262408f822c840fbc268080f3ad7c429611066d) +- [Deps] update `set-function-length` [`3fff271`](https://github.com/ljharb/call-bind/commit/3fff27145a1e3a76a5b74f1d7c3c43d0fa3b9871) + +## [v1.0.4](https://github.com/ljharb/call-bind/compare/v1.0.3...v1.0.4) - 2023-10-19 + +## [v1.0.3](https://github.com/ljharb/call-bind/compare/v1.0.2...v1.0.3) - 2023-10-19 + +### Commits + +- [actions] reuse common workflows [`a994df6`](https://github.com/ljharb/call-bind/commit/a994df69f401f4bf735a4ccd77029b85d1549453) +- [meta] use `npmignore` to autogenerate an npmignore file [`eef3ef2`](https://github.com/ljharb/call-bind/commit/eef3ef21e1f002790837fedb8af2679c761fbdf5) +- [readme] flesh out content [`1845ccf`](https://github.com/ljharb/call-bind/commit/1845ccfd9976a607884cfc7157c93192cc16cf22) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`5b47d53`](https://github.com/ljharb/call-bind/commit/5b47d53d2fd74af5ea0a44f1d51e503cd42f7a90) +- [Refactor] use `set-function-length` [`a0e165c`](https://github.com/ljharb/call-bind/commit/a0e165c5dc61db781cbc919b586b1c2b8da0b150) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9c50103`](https://github.com/ljharb/call-bind/commit/9c50103f44137279a817317cf6cc421a658f85b4) +- [meta] simplify "exports" [`019c6d0`](https://github.com/ljharb/call-bind/commit/019c6d06b0e1246ceed8e579f57e44441cbbf6d9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `safe-publish-latest`, `tape` [`23bd718`](https://github.com/ljharb/call-bind/commit/23bd718a288d3b03042062b4ef5153b3cea83f11) +- [actions] update codecov uploader [`62552d7`](https://github.com/ljharb/call-bind/commit/62552d79cc79e05825e99aaba134ae5b37f33da5) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`ec81665`](https://github.com/ljharb/call-bind/commit/ec81665b300f87eabff597afdc8b8092adfa7afd) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`35d67fc`](https://github.com/ljharb/call-bind/commit/35d67fcea883e686650f736f61da5ddca2592de8) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`0266d8d`](https://github.com/ljharb/call-bind/commit/0266d8d2a45086a922db366d0c2932fa463662ff) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`43a5b28`](https://github.com/ljharb/call-bind/commit/43a5b28a444e710e1bbf92adb8afb5cf7523a223) +- [Deps] update `define-data-property`, `function-bind`, `get-intrinsic` [`780eb36`](https://github.com/ljharb/call-bind/commit/780eb36552514f8cc99c70821ce698697c2726a5) +- [Dev Deps] update `aud`, `tape` [`90d50ad`](https://github.com/ljharb/call-bind/commit/90d50ad03b061e0268b3380b0065fcaec183dc05) +- [meta] use `prepublishOnly` script for npm 7+ [`44c5433`](https://github.com/ljharb/call-bind/commit/44c5433b7980e02b4870007046407cf6fc543329) +- [Deps] update `get-intrinsic` [`86bfbfc`](https://github.com/ljharb/call-bind/commit/86bfbfcf34afdc6eabc93ce3d408548d0e27d958) +- [Deps] update `get-intrinsic` [`5c53354`](https://github.com/ljharb/call-bind/commit/5c5335489be0294c18cd7a8bb6e08226ee019ff5) +- [actions] update checkout action [`4c393a8`](https://github.com/ljharb/call-bind/commit/4c393a8173b3c8e5b30d5b3297b3b94d48bf87f3) +- [Deps] update `get-intrinsic` [`4e70bde`](https://github.com/ljharb/call-bind/commit/4e70bdec0626acb11616d66250fc14565e716e91) +- [Deps] update `get-intrinsic` [`55ae803`](https://github.com/ljharb/call-bind/commit/55ae803a920bd93c369cd798c20de31f91e9fc60) + +## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11 + +### Commits + +- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d) + +## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08 + +### Commits + +- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1) +- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e) +- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb) +- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71) +- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee) +- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2) +- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8) +- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6) + +## v1.0.0 - 2020-10-30 + +### Commits + +- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50) +- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df) +- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65) +- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13) +- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4) +- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717) +- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af) +- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650) +- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f) diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/LICENSE b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/LICENSE new file mode 100644 index 0000000..48f05d0 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/README.md b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/README.md new file mode 100644 index 0000000..48e9047 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/README.md @@ -0,0 +1,64 @@ +# call-bind [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Robustly `.call.bind()` a function. + +## Getting started + +```sh +npm install --save call-bind +``` + +## Usage/Examples + +```js +const assert = require('assert'); +const callBind = require('call-bind'); +const callBound = require('call-bind/callBound'); + +function f(a, b) { + assert.equal(this, 1); + assert.equal(a, 2); + assert.equal(b, 3); + assert.equal(arguments.length, 2); +} + +const fBound = callBind(f); + +const slice = callBound('Array.prototype.slice'); + +delete Function.prototype.call; +delete Function.prototype.bind; + +fBound(1, 2, 3); + +assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]); +``` + +## Tests + +Clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/call-bind +[npm-version-svg]: https://versionbadg.es/ljharb/call-bind.svg +[deps-svg]: https://david-dm.org/ljharb/call-bind.svg +[deps-url]: https://david-dm.org/ljharb/call-bind +[dev-deps-svg]: https://david-dm.org/ljharb/call-bind/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/call-bind#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/call-bind.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/call-bind.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/call-bind.svg +[downloads-url]: https://npm-stat.com/charts.html?package=call-bind +[codecov-image]: https://codecov.io/gh/ljharb/call-bind/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind +[actions-url]: https://github.com/ljharb/call-bind/actions diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js new file mode 100644 index 0000000..8374adf --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js @@ -0,0 +1,15 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBind = require('./'); + +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); + +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBind(intrinsic); + } + return intrinsic; +}; diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js new file mode 100644 index 0000000..01c5b3d --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js @@ -0,0 +1,35 @@ +'use strict'; + +var bind = require('function-bind'); +var GetIntrinsic = require('get-intrinsic'); +var setFunctionLength = require('set-function-length'); + +var $TypeError = require('es-errors/type'); +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); + +var $defineProperty = require('es-define-property'); +var $max = GetIntrinsic('%Math.max%'); + +module.exports = function callBind(originalFunction) { + if (typeof originalFunction !== 'function') { + throw new $TypeError('a function is required'); + } + var func = $reflectApply(bind, $call, arguments); + return setFunctionLength( + func, + 1 + $max(0, originalFunction.length - (arguments.length - 1)), + true + ); +}; + +var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + +if ($defineProperty) { + $defineProperty(module.exports, 'apply', { value: applyBind }); +} else { + module.exports.apply = applyBind; +} diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/package.json b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/package.json new file mode 100644 index 0000000..5ba88ff --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/package.json @@ -0,0 +1,95 @@ +{ + "name": "call-bind", + "version": "1.0.7", + "description": "Robustly `.call.bind()` a function", + "main": "index.js", + "exports": { + ".": "./index.js", + "./callBound": "./callBound.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "evalmd README.md", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind/issues" + }, + "homepage": "https://github.com/ljharb/call-bind#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4" + }, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/callBound.js b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/callBound.js new file mode 100644 index 0000000..c32319d --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/callBound.js @@ -0,0 +1,54 @@ +'use strict'; + +var test = require('tape'); + +var callBound = require('../callBound'); + +test('callBound', function (t) { + // static primitive + t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); + t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); + + // static non-function object + t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); + t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); + t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); + t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); + + // static function + t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); + t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); + + // prototype primitive + t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); + t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); + + // prototype function + t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself'); + t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); + t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); + t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); + + t['throws']( + function () { callBound('does not exist'); }, + SyntaxError, + 'nonexistent intrinsic throws' + ); + t['throws']( + function () { callBound('does not exist', true); }, + SyntaxError, + 'allowMissing arg still throws for unknown intrinsic' + ); + + t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { + st['throws']( + function () { callBound('WeakRef'); }, + TypeError, + 'real but absent intrinsic throws' + ); + st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/index.js b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/index.js new file mode 100644 index 0000000..1fd4668 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/test/index.js @@ -0,0 +1,80 @@ +'use strict'; + +var callBind = require('../'); +var bind = require('function-bind'); +var gOPD = require('gopd'); +var hasStrictMode = require('has-strict-mode')(); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var v = require('es-value-fixtures'); + +var test = require('tape'); + +/* + * older engines have length nonconfigurable + * in io.js v3, it is configurable except on bound functions, hence the .bind() + */ +var functionsHaveConfigurableLengths = !!( + gOPD + && Object.getOwnPropertyDescriptor + && Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable +); + +test('callBind', function (t) { + forEach(v.nonFunctions, function (nonFunction) { + t['throws']( + function () { callBind(nonFunction); }, + TypeError, + inspect(nonFunction) + ' is not a function' + ); + }); + + var sentinel = { sentinel: true }; + var func = function (a, b) { + // eslint-disable-next-line no-invalid-this + return [!hasStrictMode && this === global ? undefined : this, a, b]; + }; + t.equal(func.length, 2, 'original function length is 2'); + t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); + t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); + t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); + + var bound = callBind(func); + t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); + t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args'); + t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func with right args'); + t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); + + var boundR = callBind(func, sentinel); + t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); + t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); + t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); + t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); + + var boundArg = callBind(func, sentinel, 1); + t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); + t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); + t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); + t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); + + t.test('callBind.apply', function (st) { + var aBound = callBind.apply(func); + st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args'); + st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args'); + st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args'); + + var aBoundArg = callBind.apply(func); + st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args'); + st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args'); + st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args'); + + var aBoundR = callBind.apply(func, sentinel); + st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args'); + st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args'); + st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-define-property b/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-define-property new file mode 120000 index 0000000..9d79135 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-define-property @@ -0,0 +1 @@ +../../es-define-property@1.0.0/node_modules/es-define-property \ No newline at end of file diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-errors b/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-errors new file mode 120000 index 0000000..fccce4e --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/es-errors @@ -0,0 +1 @@ +../../es-errors@1.3.0/node_modules/es-errors \ No newline at end of file diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/function-bind b/node_modules/.pnpm/call-bind@1.0.7/node_modules/function-bind new file mode 120000 index 0000000..62a99de --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/function-bind @@ -0,0 +1 @@ +../../function-bind@1.1.2/node_modules/function-bind \ No newline at end of file diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/get-intrinsic b/node_modules/.pnpm/call-bind@1.0.7/node_modules/get-intrinsic new file mode 120000 index 0000000..ae6df74 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/get-intrinsic @@ -0,0 +1 @@ +../../get-intrinsic@1.2.4/node_modules/get-intrinsic \ No newline at end of file diff --git a/node_modules/.pnpm/call-bind@1.0.7/node_modules/set-function-length b/node_modules/.pnpm/call-bind@1.0.7/node_modules/set-function-length new file mode 120000 index 0000000..91a1462 --- /dev/null +++ b/node_modules/.pnpm/call-bind@1.0.7/node_modules/set-function-length @@ -0,0 +1 @@ +../../set-function-length@1.2.2/node_modules/set-function-length \ No newline at end of file diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.d.ts b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.d.ts new file mode 100644 index 0000000..9005e81 --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.d.ts @@ -0,0 +1,77 @@ +declare namespace cloneRegexp { + interface Options { + /** + Modifies the [`source`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source) property of the cloned `RegExp` instance. + */ + source?: string; + + /** + Modifies the [`global`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global) property of the cloned `RegExp` instance. + */ + global?: boolean; + + /** + Modifies the [`ignoreCase`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase) property of the cloned `RegExp` instance. + */ + ignoreCase?: boolean; + + /** + Modifies the [`multiline`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline) property of the cloned `RegExp` instance. + */ + multiline?: boolean; + + /** + Modifies the [`dotAll`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll) property of the cloned `RegExp` instance. + */ + dotAll?: boolean; + + /** + Modifies the [`sticky`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/sticky) property of the cloned `RegExp` instance. + */ + sticky?: boolean; + + /** + Modifies the [`unicode`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicode) property of the cloned `RegExp` instance. + */ + unicode?: boolean; + + /** + Modifies the [`lastIndex`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex) property of the cloned `RegExp` instance. + */ + lastIndex?: number; + } +} + +/** +Clone and modify a [RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) instance. + +@param regexp - Regex to clone. + +@example +``` +import cloneRegexp = require('clone-regexp'); + +const regex = /[a-z]/gi; + +cloneRegexp(regex); +//=> /[a-z]/gi + +cloneRegexp(regex) === regex; +//=> false + +cloneRegexp(regex, {global: false}); +//=> /[a-z]/i + +cloneRegexp(regex, {multiline: true}); +//=> /[a-z]/gim + +cloneRegexp(regex, {source: 'unicorn'}); +//=> /unicorn/gi +``` +*/ +declare function cloneRegexp( + regexp: RegExp, + options?: cloneRegexp.Options +): RegExp; + +export = cloneRegexp; diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.js b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.js new file mode 100644 index 0000000..24edae6 --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/index.js @@ -0,0 +1,29 @@ +'use strict'; +const isRegexp = require('is-regexp'); + +const flagMap = { + global: 'g', + ignoreCase: 'i', + multiline: 'm', + dotAll: 's', + sticky: 'y', + unicode: 'u' +}; + +module.exports = (regexp, options = {}) => { + if (!isRegexp(regexp)) { + throw new TypeError('Expected a RegExp instance'); + } + + const flags = Object.keys(flagMap).map(flag => ( + (typeof options[flag] === 'boolean' ? options[flag] : regexp[flag]) ? flagMap[flag] : '' + )).join(''); + + const clonedRegexp = new RegExp(options.source || regexp.source, flags); + + clonedRegexp.lastIndex = typeof options.lastIndex === 'number' ? + options.lastIndex : + regexp.lastIndex; + + return clonedRegexp; +}; diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/license b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/package.json b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/package.json new file mode 100644 index 0000000..761de6e --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/package.json @@ -0,0 +1,41 @@ +{ + "name": "clone-regexp", + "version": "2.2.0", + "description": "Clone and modify a RegExp instance", + "license": "MIT", + "repository": "sindresorhus/clone-regexp", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "regexp", + "regex", + "re", + "regular", + "expression", + "clone", + "duplicate", + "modify", + "mutate" + ], + "dependencies": { + "is-regexp": "^2.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/readme.md b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/readme.md new file mode 100644 index 0000000..f749947 --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/clone-regexp/readme.md @@ -0,0 +1,58 @@ +# clone-regexp [![Build Status](https://travis-ci.org/sindresorhus/clone-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/clone-regexp) + +> Clone and modify a [RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) instance + + +## Install + +``` +$ npm install clone-regexp +``` + + +## Usage + +```js +const cloneRegexp = require('clone-regexp'); + +const regex = /[a-z]/gi; + +cloneRegexp(regex); +//=> /[a-z]/gi + +cloneRegexp(regex) === regex; +//=> false + +cloneRegexp(regex, {global: false}); +//=> /[a-z]/i + +cloneRegexp(regex, {multiline: true}); +//=> /[a-z]/gim + +cloneRegexp(regex, {source: 'unicorn'}); +//=> /unicorn/gi +``` + + +## API + +### cloneRegexp(regexp, [options]) + +#### regex + +Type: `RegExp` + +Regex to clone. + + +#### options + +Type: `Object`
+Properties: [`source`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source) [`global`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global) [`ignoreCase`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase) [`multiline`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline) [`dotAll`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll) [`sticky`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/sticky) [`unicode`](http://norbertlindenberg.com/2012/05/ecmascript-supplementary-characters/#RegExp) [`lastIndex`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex) + +Optionally modify the cloned `RegExp` instance. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/is-regexp b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/is-regexp new file mode 120000 index 0000000..15ed634 --- /dev/null +++ b/node_modules/.pnpm/clone-regexp@2.2.0/node_modules/is-regexp @@ -0,0 +1 @@ +../../is-regexp@2.1.0/node_modules/is-regexp \ No newline at end of file diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.npmignore b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.npmignore new file mode 100644 index 0000000..d4d1f2a --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.npmignore @@ -0,0 +1,4 @@ +raw +*.sw? +.DS_Store +node_modules \ No newline at end of file diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.travis.yml b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.travis.yml new file mode 100644 index 0000000..c4c1ab3 --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/.travis.yml @@ -0,0 +1,10 @@ +# .travis.yml +language: node_js +node_js: + - 0.11 + - 0.10 + - 0.8 + - 0.6 + +notifications: + email: false \ No newline at end of file diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/LICENSE b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/LICENSE new file mode 100644 index 0000000..536e62c --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013 Tim Griesser + +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: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +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. \ No newline at end of file diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/README.md b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/README.md new file mode 100644 index 0000000..4175aa6 --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/README.md @@ -0,0 +1,51 @@ +create-error.js +=============== + +A simple helper for creating subclassed errors in Javascript. + +[![Build Status](https://travis-ci.org/tgriesser/create-error.png)](https://travis-ci.org/tgriesser/create-error) + +## Use: + +```bash +$ npm install create-error +$ bower install create-error +``` + +```js +var createError = require('create-error'); + +var MyCustomError = createError('MyCustomError'); +var SubCustomError = createError(MyCustomError, 'CoolSubError', {messages: []}); + +var sub = new SubCustomError('My Message', {someVal: 'value'}); + +sub instanceof SubCustomError // true +sub instanceof MyCustomError // true +sub instanceof Error // true + +assert.deepEqual(sub.messages, []) // true +assert.equal(sub.someVal, 'value') // true +``` + +### createError(name, [properties]) + +Creates a new error by specifying the name of the error to be created, +taking an optional hash of properties to be attached to the error class +upon creation. + +### createError(Target, [name, [properties]]) + +Create a new error by specifying the `Target` error class we wish to inherit from, +along with an optional name and properties for the error. If the `name` is omitted, +it will have the same name as the parent error. + +### Additional Notes: + +In the browser, the function will be assigned to `window.createError`, +and `createError.noConflict()` will restore the original `window.createError` +if overwritten. + +### License + +MIT diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/bower.json b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/bower.json new file mode 100644 index 0000000..60942c9 --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/bower.json @@ -0,0 +1,9 @@ +{ + "name": "create-error", + "version": "0.3.1", + "main": "create-error.js", + "ignore": [ + "**/.*", + "node_modules" + ] +} \ No newline at end of file diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/create-error.js b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/create-error.js new file mode 100644 index 0000000..44de3e2 --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/create-error.js @@ -0,0 +1,118 @@ +// create-error.js 0.3.1 +// (c) 2013 Tim Griesser +// This source may be freely distributed under the MIT license. +(function(factory) { + +"use strict"; + +// A simple utility for subclassing the "Error" +// object in multiple environments, while maintaining +// relevant stack traces, messages, and prototypes. +factory(function() { + +var toString = Object.prototype.toString; + +// Creates an new error type with a "name", +// and any additional properties that should be set +// on the error instance. +return function() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; ++i) { + args[i] = arguments[i]; + } + var name = getName(args); + var target = getTarget(args); + var properties = getProps(args); + function ErrorCtor(message, obj) { + attachProps(this, properties); + attachProps(this, obj); + this.message = (message || this.message); + if (message instanceof Error) { + this.message = message.message; + this.stack = message.stack; + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + function Err() { this.constructor = ErrorCtor; } + Err.prototype = target['prototype']; + ErrorCtor.prototype = new Err(); + ErrorCtor.prototype.name = ('' + name) || 'CustomError'; + return ErrorCtor; +}; + +// Just a few helpers to clean up the function above +// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers +function getName(args) { + if (args.length === 0) return ''; + return isError(args[0]) ? (args[1] || '') : args[0]; +} +function getTarget(args) { + if (args.length === 0) return Error; + return isError(args[0]) ? args[0] : Error; +} +function getProps(args) { + if (args.length === 0) return null; + return isError(args[0]) ? args[2] : args[1]; +} +function inheritedKeys(obj) { + var ret = []; + for (var key in obj) { + ret.push(key); + } + return ret; +} + +// Right now we're just assuming that a function in the first argument is an error. +function isError(obj) { + return (typeof obj === "function"); +} + +// We don't need the full underscore check here, since it should either be +// an object-literal, or nothing at all. +function isObject(obj) { + return (obj && typeof obj === "object" && toString.call(obj) === "[object Object]"); +} + +// Used to attach attributes to the error object in the constructor. +function attachProps(context, target) { + if (isObject(target)) { + var keys = inheritedKeys(target); + for (var i = 0, l = keys.length; i < l; ++i) { + context[keys[i]] = clone(target[keys[i]]); + } + } +} + +// Don't need the full-out "clone" mechanism here, since if you're +// trying to set things other than empty arrays/objects on your +// sub-classed `Error` object, you're probably doing it wrong. +function clone(target) { + if (target == null || typeof target !== "object") return target; + var cloned = target.constructor ? target.constructor() : Object.create(null); + for (var attr in target) { + if (target.hasOwnProperty(attr)) { + cloned[attr] = target[attr]; + } + } + return cloned; +} + +}); + +// Boilerplate UMD definition block... +})(function(createErrorLib) { + if (typeof define === "function" && define.amd) { + define(createErrorLib); + } else if (typeof exports === 'object') { + module.exports = createErrorLib(); + } else { + var root = this; + var lastcreateError = root.createError; + var createError = root.createError = createErrorLib(); + createError.noConflict = function() { + root.createError = lastcreateError; + return createError; + }; + } +}); diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/package.json b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/package.json new file mode 100644 index 0000000..a32287f --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/package.json @@ -0,0 +1,27 @@ +{ + "name": "create-error", + "version": "0.3.1", + "description": "Simple helper for sub-classing the Error object", + "main": "create-error.js", + "scripts": { + "test": "mocha -R spec test/index.js" + }, + "directories": { + "test": "test" + }, + "repository": { + "type": "git", + "url": "https://github.com/tgriesser/create-error.git" + }, + "keywords": [ + "errors" + ], + "author": { + "name": "Tim Griesser", + "web": "https://github.com/tgriesser" + }, + "license": "MIT", + "devDependencies": { + "mocha": "~1.15.0" + } +} diff --git a/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/test/index.js b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/test/index.js new file mode 100644 index 0000000..652014e --- /dev/null +++ b/node_modules/.pnpm/create-error@0.3.1/node_modules/create-error/test/index.js @@ -0,0 +1,102 @@ +var equal = require('assert').equal; +var deepEqual = require('assert').deepEqual; + +var createError = require('../create-error'); + +describe('create-error', function() { + + describe('error creation', function() { + + it('should create a new error', function() { + var TestingError = createError('TestingError'); + var a = new TestingError('msgA'); + var b = new TestingError('msgB'); + equal((a instanceof TestingError), true); + equal((a instanceof Error), true); + equal(a.message, 'msgA'); + equal(b.message, 'msgB'); + equal((a.stack.length > 0), true); + }); + + it('should attach properties in the second argument', function() { + var TestingError = createError('TestingError', {anArray: []}); + var a = new TestingError('Test the array'); + deepEqual(a.anArray, []); + }); + + it('should give the name "CustomError" if the name is omitted', function() { + var TestingError = createError(); + var a = new TestingError("msg"); + equal(a.name, 'CustomError'); + }); + + it('should not reference the same property in subsequent errors', function() { + var TestingError = createError('TestingError', {anArray: []}); + var a = new TestingError('Test the array'); + a.anArray.push('a'); + var b = new TestingError(''); + deepEqual(b.anArray, []); + }); + + it('should allow for empty objects on the cloned hash', function() { + var TestingError = createError('TestingError', {anEmptyObj: Object.create(null)}); + var a = new TestingError('Test the array'); + deepEqual(a.anEmptyObj, Object.create(null)); + }); + + it('attaches attrs in the second arg of the error ctor, #3', function() { + var RequestError = createError('RequestError', {status: 400}); + var reqErr = new RequestError('404 Error', {status: 404}); + equal(reqErr.status, 404); + equal(reqErr.message, '404 Error'); + equal(reqErr.name, 'RequestError'); + }); + + }); + + describe('subclassing errors', function() { + + it('takes an object in the first argument', function() { + var TestingError = createError('TestingError'); + var SubTestingError = createError(TestingError, 'SubTestingError'); + var x = new SubTestingError(); + equal((x instanceof SubTestingError), true); + equal((x instanceof TestingError), true); + equal((x instanceof Error), true); + }); + + it('attaches the properties appropriately.', function() { + var TestingError = createError('TestingError'); + var SubTestingError = createError(TestingError, 'SubTestingError', {key: []}); + var x = new SubTestingError(); + deepEqual(x.key, []); + }); + + it('allows for a default message, #4', function() { + var TestingError = createError('TestingError', {message: 'Error with testing'}); + var x = new TestingError(); + equal(x.message, 'Error with testing'); + }); + + }); + + describe('invalid values sent to the second argument', function() { + + it('should ignore falsy values', function() { + var TestingError = createError('TestingError', ''); + var TestingError2 = createError('TestingError', null); + var TestingError3 = createError('TestingError', void 0); + var a = new TestingError('Test the array'); + var b = new TestingError2('Test the array'); + var c = new TestingError3('Test the array'); + }); + + it('should ignore arrays', function() { + var TestingError = createError('TestingError', [{anArray: []}]); + var a = new TestingError('Test the array'); + equal(a.anArray, void 0); + }); + + }); + +}); \ No newline at end of file diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/.npmignore b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/.npmignore new file mode 100644 index 0000000..096746c --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/.npmignore @@ -0,0 +1 @@ +/node_modules/ \ No newline at end of file diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/README.md b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/README.md new file mode 100644 index 0000000..deafc45 --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/README.md @@ -0,0 +1,56 @@ +# create-event-emitter + +A simple abstraction for creating your own event-emitting objects. Uses the standard `EventEmitter` implementation in Node.js + +## License + +[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required. + +## Donate + +Maintaining open-source projects takes a lot of time, and the more donations I receive, the more time I can dedicate to open-source. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)! + +You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else. Thank you! + +## Contributing + +Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`. + +Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes. + +Be aware that by making a pull request, you agree to release your modifications under the licenses stated above. + +## Usage + +```javascript +const createEventEmitter = require("create-event-emitter"); + +let doorbell = createEventEmitter({ + ring: function ringDoorbell(noise = "RING RING!") { + this.emit("ringing", noise); + } +}); + +doorbell.on("ring", (noise) => { + console.log(`Doorbell is ringing: ${noise}`); +}); + +doorbell.ring(); // Prints: "Doorbell is ringing: RING RING!" +``` + +## API + +### createEventEmitter(properties) + +Creates a new event-emitting object with the specified properties. The resulting `emitter` has the standard [EventEmitter API](https://nodejs.org/api/events.html#events_class_eventemitter). + +* __properties__: The properties that the new event-emitting object should have. These are simply merged into the `emitter` object. + +### emitter.emit(eventName, [... arguments]) + +Emits the specified event on the `emitter`, triggering the associated event handlers, if any. You'd usually call this from *within* a method on the `emitter`, as `this.emit`. + +* __eventName__: The name of the event to emit/trigger. +* __... arguments__: The arguments to pass to the event handler. Any amount is allowed. + +Note that this is part of the API of the standard Node.js EventEmitter, as documented [here](https://nodejs.org/api/events.html#events_emitter_emit_eventname_args). diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/gulpfile.js b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/gulpfile.js new file mode 100644 index 0000000..1769501 --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/gulpfile.js @@ -0,0 +1,18 @@ +var gulp = require("gulp"); +var presetES2015 = require("@joepie91/gulp-preset-es2015"); + +var source = ["src/**/*.js"] + +gulp.task('babel', function() { + return gulp.src(source) + .pipe(presetES2015({ + basePath: __dirname + })) + .pipe(gulp.dest("lib/")); +}); + +gulp.task("watch", function () { + gulp.watch(source, ["babel"]); +}); + +gulp.task("default", ["babel", "watch"]); \ No newline at end of file diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/index.js b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/index.js new file mode 100644 index 0000000..507257b --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require("./lib"); \ No newline at end of file diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/lib/index.js b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/lib/index.js new file mode 100644 index 0000000..39619e5 --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/lib/index.js @@ -0,0 +1,9 @@ +'use strict'; + +var events = require("events"); + +module.exports = function createEventEmitter() { + var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + return Object.assign(new events.EventEmitter(), props); +}; \ No newline at end of file diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/package.json b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/package.json new file mode 100644 index 0000000..9a35784 --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/package.json @@ -0,0 +1,27 @@ +{ + "name": "create-event-emitter", + "version": "1.0.0", + "description": "A simple abstraction for creating a new event-emitting object", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "gulp": "gulp" + }, + "repository": { + "type": "git", + "url": "http://git.cryto.net/joepie91/node-create-event-emitter.git" + }, + "keywords": [ + "events", + "composition" + ], + "author": "Sven Slootweg", + "license": "WTFPL", + "dependencies": { + }, + "devDependencies": { + "@joepie91/gulp-preset-es2015": "^1.0.1", + "babel-preset-es2015": "^6.6.0", + "gulp": "^3.9.1" + } +} diff --git a/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/src/index.js b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/src/index.js new file mode 100644 index 0000000..9458785 --- /dev/null +++ b/node_modules/.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter/src/index.js @@ -0,0 +1,7 @@ +'use strict'; + +const events = require("events"); + +module.exports = function createEventEmitter(props = {}) { + return Object.assign(new events.EventEmitter(), props); +} diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/.npmignore b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/.npmignore new file mode 100644 index 0000000..096746c --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/.npmignore @@ -0,0 +1 @@ +/node_modules/ \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/CHANGELOG.md b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/CHANGELOG.md new file mode 100644 index 0000000..dfe5d58 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/CHANGELOG.md @@ -0,0 +1,18 @@ +## 1.0.0 (August 17, 2016) + +First stable and documented release - however, the functionality or API has not changed from `0.0.3`. + +* __Documentation:__ Updated donation text. +* __Documentation:__ Added documentation and a changelog. + +## 0.0.3 (April 17, 2016) + +* __Patch:__ Updated test script to use new `evaluate` option. + +## 0.0.2 (April 17, 2016) + +* __Major:__ Maked value evaluation opt-in. + +## 0.0.1 (April 17, 2016) + +Initial release. \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/README.md b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/README.md new file mode 100644 index 0000000..6b84102 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/README.md @@ -0,0 +1,105 @@ +# default-value + +Lets you easily define a default value for undefined options, with optional support for Promises and lazy evaluation. + +More or less the equivalent of CoffeeScript's existential operator, when used for fallback values. + +## License + +[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required. + +## Donate + +Maintaining open-source projects takes a lot of time, and the more donations I receive, the more time I can dedicate to open-source. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)! + +You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else. Thank you! + +## Contributing + +Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`. + +Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes. + +Be aware that by making a pull request, you agree to release your modifications under the licenses stated above. + +## Usage + +For synchronous values: + +```javascript +var defaultValue = require("default-value"); + +defaultValue("hello", "world"); // Result: "hello" +defaultValue(null, "world"); // Result: "world" +defaultValue(undefined, "world"); // Result: "world" +``` + +When used for default function arguments, that might look like this: + +```javascript +var defaultValue = require("default-value"); + +function doThing(speed) { + var effectiveSpeed = defaultValue(speed, 10); + console.log("Effective speed:", effectiveSpeed); +} +``` + +For asynchronous values, using Promises: + +```javascript +var Promise = require("bluebird"); +var defaultValue = require("default-value"); + +Promise.try(() => { + return defaultValue.async(getCurrentUser(), {id: 0}); +}).then((user) => { + /* `user` will be either the result of getCurrentUser or, if that result + * is `null` or `undefined`, it will be {id: 0}. */ +}); +``` + +Using evaluation: + +```javascript +var defaultValue = require("default-value"); + +defaultValue(config.delay, () => { + /* This function will only be run if `config.delay` isn't set. */ + return getDelay(); +}, {evaluate: true}); +``` + +Using asynchronous evaluation: + +```javascript + +var Promise = require("bluebird"); +var defaultValue = require("default-value"); + +Promise.try(() => { + return defaultValue.async(config.delay, database.table("config_options").get("delay"), {evaluate: true}); +}).then((delay) => { + /* `delay` will be either the value of `config.delay` or, if that + * isn't set, the value will be the result of the (hypothetical) + * database query above. The query itself will only happen if + * `config.delay` isn't set. */ +}); +``` + +## API + +### defaultValue(value, fallbackValue, [options]) + +Returns the `value` synchronously - but when the `value` is `null` or `undefined`, it will return the `fallbackValue` instead. + +* __value:__ The value you intend to use. +* __fallbackValue:__ The fallback value to use if the `value` isn't set. +* __options:__ + * __evaluate:__ *Defaults to `false`.* If this is set to `true`, then if either the `value` or `fallbackValue` is a function, it will be executed and its return value will be used as the value, rather than the function itself. This is especially useful in cases where the fallback value is expensive to obtain. + +### defaultValue.async(value, fallbackValue, [options]) + +Equivalent to `defaultValue`, but this function will return a Promise. Similarly, `value` and `fallbackValue` may return a Promise as well, and the resulution of `value` will be awaited before deciding what to return. + +The `evaluate` option is also available for this asynchronous variant, and works essentially the same - but now the evaluated functions can return a Promise as well. \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/gulpfile.js b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/gulpfile.js new file mode 100644 index 0000000..1769501 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/gulpfile.js @@ -0,0 +1,18 @@ +var gulp = require("gulp"); +var presetES2015 = require("@joepie91/gulp-preset-es2015"); + +var source = ["src/**/*.js"] + +gulp.task('babel', function() { + return gulp.src(source) + .pipe(presetES2015({ + basePath: __dirname + })) + .pipe(gulp.dest("lib/")); +}); + +gulp.task("watch", function () { + gulp.watch(source, ["babel"]); +}); + +gulp.task("default", ["babel", "watch"]); \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/index.js b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/index.js new file mode 100644 index 0000000..507257b --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require("./lib"); \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/lib/index.js b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/lib/index.js new file mode 100644 index 0000000..5842201 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/lib/index.js @@ -0,0 +1,47 @@ +'use strict'; + +var promiseTry = require("es6-promise-try"); + +function evaluateValue(value) { + if (typeof value === "function") { + return value(); + } else { + return value; + } +} + +function maybeEvaluateValue(value, evaluate) { + if (evaluate === true) { + return evaluateValue(value); + } else { + return value; + } +} + +function defaultValue(value, fallbackValue) { + var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + + value = maybeEvaluateValue(value, options.evaluate); + + if (value != null) { + return value; + } else { + return maybeEvaluateValue(fallbackValue, options.evaluate); + } +} + +defaultValue.async = function defaultAsyncValue(value, fallbackValue) { + var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + + return promiseTry(function () { + return maybeEvaluateValue(value, options.evaluate); + }).then(function (resultValue) { + if (resultValue != null) { + return resultValue; + } else { + return maybeEvaluateValue(fallbackValue, options.evaluate); + } + }); +}; + +module.exports = defaultValue; \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/package.json b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/package.json new file mode 100644 index 0000000..317632f --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/package.json @@ -0,0 +1,26 @@ +{ + "name": "default-value", + "version": "1.0.0", + "description": "Lets you easily define a default value for undefined options, with optional support for Promises", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "http://git.cryto.net/joepie91/node-default-value.git" + }, + "keywords": [ + "default" + ], + "author": "Sven Slootweg", + "license": "WTFPL", + "dependencies": { + "es6-promise-try": "0.0.1" + }, + "devDependencies": { + "@joepie91/gulp-preset-es2015": "^1.0.1", + "babel-preset-es2015": "^6.6.0", + "gulp": "^3.9.1" + } +} diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/src/index.js b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/src/index.js new file mode 100644 index 0000000..4b986f7 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/src/index.js @@ -0,0 +1,43 @@ +'use strict'; + +const promiseTry = require("es6-promise-try"); + +function evaluateValue(value) { + if (typeof value === "function") { + return value(); + } else { + return value; + } +} + +function maybeEvaluateValue(value, evaluate) { + if (evaluate === true) { + return evaluateValue(value); + } else { + return value; + } +} + +function defaultValue(value, fallbackValue, options = {}) { + value = maybeEvaluateValue(value, options.evaluate); + + if (value != null) { + return value; + } else { + return maybeEvaluateValue(fallbackValue, options.evaluate); + } +} + +defaultValue.async = function defaultAsyncValue(value, fallbackValue, options = {}) { + return promiseTry(() => { + return maybeEvaluateValue(value, options.evaluate); + }).then((resultValue) => { + if (resultValue != null) { + return resultValue; + } else { + return maybeEvaluateValue(fallbackValue, options.evaluate); + } + }) +} + +module.exports = defaultValue; \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/test.js b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/test.js new file mode 100644 index 0000000..0233d4b --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/default-value/test.js @@ -0,0 +1,21 @@ +'use strict'; + +const promiseTry = require("es6-promise-try"); +const defaultValue = require("./"); + +function promiseThatReturns(value) { + return Promise.resolve(value); +} + +console.log(defaultValue(null, () => 4, {evaluate: true})); +console.log(defaultValue("foo", "bar")); + +promiseTry(() => { + return Promise.all([ + defaultValue.async(promiseThatReturns(undefined), promiseThatReturns(Infinity)), + defaultValue.async(() => promiseThatReturns("baz"), promiseThatReturns("qux"), {evaluate: true}) + ]); +}).then((results) => { + console.log(results[0]); + console.log(results[1]); +}) \ No newline at end of file diff --git a/node_modules/.pnpm/default-value@1.0.0/node_modules/es6-promise-try b/node_modules/.pnpm/default-value@1.0.0/node_modules/es6-promise-try new file mode 120000 index 0000000..c6e3b24 --- /dev/null +++ b/node_modules/.pnpm/default-value@1.0.0/node_modules/es6-promise-try @@ -0,0 +1 @@ +../../es6-promise-try@0.0.1/node_modules/es6-promise-try \ No newline at end of file diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.eslintrc b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.eslintrc new file mode 100644 index 0000000..75443e8 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.eslintrc @@ -0,0 +1,24 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "complexity": 0, + "id-length": 0, + "new-cap": ["error", { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "max-lines-per-function": "off", + }, + }, + ], +} diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.github/FUNDING.yml b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.github/FUNDING.yml new file mode 100644 index 0000000..3e17725 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/define-data-property +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.nycrc b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/CHANGELOG.md b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/CHANGELOG.md new file mode 100644 index 0000000..4eed75e --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/CHANGELOG.md @@ -0,0 +1,70 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.4](https://github.com/ljharb/define-data-property/compare/v1.1.3...v1.1.4) - 2024-02-13 + +### Commits + +- [Refactor] use `es-define-property` [`90f2f4c`](https://github.com/ljharb/define-data-property/commit/90f2f4cc20298401e71c28e1e08888db12021453) +- [Dev Deps] update `@types/object.getownpropertydescriptors` [`cd929d9`](https://github.com/ljharb/define-data-property/commit/cd929d9a04f5f2fdcfa9d5be140940b91a083153) + +## [v1.1.3](https://github.com/ljharb/define-data-property/compare/v1.1.2...v1.1.3) - 2024-02-12 + +### Commits + +- [types] hand-write d.ts instead of emitting it [`0cbc988`](https://github.com/ljharb/define-data-property/commit/0cbc988203c105f2d97948327c7167ebd33bd318) +- [meta] simplify `exports` [`690781e`](https://github.com/ljharb/define-data-property/commit/690781eed28bbf2d6766237efda0ba6dd591609e) +- [Dev Deps] update `hasown`; clean up DT packages [`6cdfd1c`](https://github.com/ljharb/define-data-property/commit/6cdfd1cb2d91d791bfd18cda5d5cab232fd5d8fc) +- [actions] cleanup [`3142bc6`](https://github.com/ljharb/define-data-property/commit/3142bc6a4bc406a51f5b04f31e98562a27f35ffd) +- [meta] add `funding` [`8474423`](https://github.com/ljharb/define-data-property/commit/847442391a79779af3e0f1bf0b5bb923552b7804) +- [Deps] update `get-intrinsic` [`3e9be00`](https://github.com/ljharb/define-data-property/commit/3e9be00e07784ba34e7c77d8bc0fdbc832ad61de) + +## [v1.1.2](https://github.com/ljharb/define-data-property/compare/v1.1.1...v1.1.2) - 2024-02-05 + +### Commits + +- [Dev Deps] update @types packages, `object-inspect`, `tape`, `typescript` [`df41bf8`](https://github.com/ljharb/define-data-property/commit/df41bf84ca3456be6226055caab44e38e3a7fd2f) +- [Dev Deps] update DT packages, `aud`, `npmignore`, `tape`, typescript` [`fab0e4e`](https://github.com/ljharb/define-data-property/commit/fab0e4ec709ee02b79f42d6db3ee5f26e0a34b8a) +- [Dev Deps] use `hasown` instead of `has` [`aa51ef9`](https://github.com/ljharb/define-data-property/commit/aa51ef93f6403d49d9bb72a807bcdb6e418978c0) +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`d89be50`](https://github.com/ljharb/define-data-property/commit/d89be50571175888d391238605122679f7e65ffc) +- [Deps] update `has-property-descriptors` [`7af887c`](https://github.com/ljharb/define-data-property/commit/7af887c9083b59b195b0079e04815cfed9fcee2b) +- [Deps] update `get-intrinsic` [`bb8728e`](https://github.com/ljharb/define-data-property/commit/bb8728ec42cd998505a7157ae24853a560c20646) + +## [v1.1.1](https://github.com/ljharb/define-data-property/compare/v1.1.0...v1.1.1) - 2023-10-12 + +### Commits + +- [Tests] fix tests in ES3 engines [`5c6920e`](https://github.com/ljharb/define-data-property/commit/5c6920edd1f52f675b02f417e539c28135b43f94) +- [Dev Deps] update `@types/es-value-fixtures`, `@types/for-each`, `@types/gopd`, `@types/has-property-descriptors`, `tape`, `typescript` [`7d82dfc`](https://github.com/ljharb/define-data-property/commit/7d82dfc20f778b4465bba06335dd53f6f431aea3) +- [Fix] IE 8 has a broken `Object.defineProperty` [`0672e1a`](https://github.com/ljharb/define-data-property/commit/0672e1af2a9fcc787e7c23b96dea60d290df5548) +- [meta] emit types on prepack [`73acb1f`](https://github.com/ljharb/define-data-property/commit/73acb1f903c21b314ec7156bf10f73c7910530c0) +- [Dev Deps] update `tape`, `typescript` [`9489a77`](https://github.com/ljharb/define-data-property/commit/9489a7738bf2ecf0ac71d5b78ec4ca6ad7ba0142) + +## [v1.1.0](https://github.com/ljharb/define-data-property/compare/v1.0.1...v1.1.0) - 2023-09-13 + +### Commits + +- [New] add `loose` arg [`155235a`](https://github.com/ljharb/define-data-property/commit/155235a4c4d7741f6de01cd87c99599a56654b72) +- [New] allow `null` to be passed for the non* args [`7d2fa5f`](https://github.com/ljharb/define-data-property/commit/7d2fa5f06be0392736c13b126f7cd38979f34792) + +## [v1.0.1](https://github.com/ljharb/define-data-property/compare/v1.0.0...v1.0.1) - 2023-09-12 + +### Commits + +- [meta] add TS types [`43d763c`](https://github.com/ljharb/define-data-property/commit/43d763c6c883f652de1c9c02ef6216ee507ffa69) +- [Dev Deps] update `@types/tape`, `typescript` [`f444985`](https://github.com/ljharb/define-data-property/commit/f444985811c36f3e6448a03ad2f9b7898917f4c7) +- [meta] add `safe-publish-latest`, [`172bb10`](https://github.com/ljharb/define-data-property/commit/172bb10890896ebb160e64398f6ee55760107bee) + +## v1.0.0 - 2023-09-12 + +### Commits + +- Initial implementation, tests, readme [`5b43d6b`](https://github.com/ljharb/define-data-property/commit/5b43d6b44e675a904810467a7d4e0adb7efc3196) +- Initial commit [`35e577a`](https://github.com/ljharb/define-data-property/commit/35e577a6ba59a98befa97776d70d90f3bea9009d) +- npm init [`82a0a04`](https://github.com/ljharb/define-data-property/commit/82a0a04a321ca7de220af02d41e2745e8a9962ed) +- Only apps should have lockfiles [`96df244`](https://github.com/ljharb/define-data-property/commit/96df244a3c6f426f9a2437be825d1c6f5dd7158e) +- [meta] use `npmignore` to autogenerate an npmignore file [`a87ff18`](https://github.com/ljharb/define-data-property/commit/a87ff18cb79e14c2eb5720486c4759fd9a189375) diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/LICENSE b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/LICENSE new file mode 100644 index 0000000..b4213ac --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/README.md b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/README.md new file mode 100644 index 0000000..f2304da --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/README.md @@ -0,0 +1,67 @@ +# define-data-property [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Define a data property on an object. Will fall back to assignment in an engine without descriptors. + +The three `non*` argument can also be passed `null`, which will use the existing state if available. + +The `loose` argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment. + +## Usage + +```javascript +var defineDataProperty = require('define-data-property'); +var assert = require('assert'); + +var obj = {}; +defineDataProperty(obj, 'key', 'value'); +defineDataProperty( + obj, + 'key2', + 'value', + true, // nonEnumerable, optional + false, // nonWritable, optional + true, // nonConfigurable, optional + false // loose, optional +); + +assert.deepEqual( + Object.getOwnPropertyDescriptors(obj), + { + key: { + configurable: true, + enumerable: true, + value: 'value', + writable: true, + }, + key2: { + configurable: false, + enumerable: false, + value: 'value', + writable: true, + }, + } +); +``` + +[package-url]: https://npmjs.org/package/define-data-property +[npm-version-svg]: https://versionbadg.es/ljharb/define-data-property.svg +[deps-svg]: https://david-dm.org/ljharb/define-data-property.svg +[deps-url]: https://david-dm.org/ljharb/define-data-property +[dev-deps-svg]: https://david-dm.org/ljharb/define-data-property/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/define-data-property#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/define-data-property.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/define-data-property.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/define-data-property.svg +[downloads-url]: https://npm-stat.com/charts.html?package=define-data-property +[codecov-image]: https://codecov.io/gh/ljharb/define-data-property/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/define-data-property/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/define-data-property +[actions-url]: https://github.com/ljharb/define-data-property/actions diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.d.ts b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.d.ts new file mode 100644 index 0000000..b56a77d --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.d.ts @@ -0,0 +1,12 @@ + +declare function defineDataProperty( + obj: Record, + property: keyof typeof obj, + value: typeof obj[typeof property], + nonEnumerable?: boolean | null, + nonWritable?: boolean | null, + nonConfigurable?: boolean | null, + loose?: boolean +): void; + +export = defineDataProperty; \ No newline at end of file diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js new file mode 100644 index 0000000..e1a38c0 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js @@ -0,0 +1,56 @@ +'use strict'; + +var $defineProperty = require('es-define-property'); + +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); + +var gopd = require('gopd'); + +/** @type {import('.')} */ +module.exports = function defineDataProperty( + obj, + property, + value +) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new $TypeError('`obj` must be an object or a function`'); + } + if (typeof property !== 'string' && typeof property !== 'symbol') { + throw new $TypeError('`property` must be a string or a symbol`'); + } + if (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) { + throw new $TypeError('`nonEnumerable`, if provided, must be a boolean or null'); + } + if (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) { + throw new $TypeError('`nonWritable`, if provided, must be a boolean or null'); + } + if (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) { + throw new $TypeError('`nonConfigurable`, if provided, must be a boolean or null'); + } + if (arguments.length > 6 && typeof arguments[6] !== 'boolean') { + throw new $TypeError('`loose`, if provided, must be a boolean'); + } + + var nonEnumerable = arguments.length > 3 ? arguments[3] : null; + var nonWritable = arguments.length > 4 ? arguments[4] : null; + var nonConfigurable = arguments.length > 5 ? arguments[5] : null; + var loose = arguments.length > 6 ? arguments[6] : false; + + /* @type {false | TypedPropertyDescriptor} */ + var desc = !!gopd && gopd(obj, property); + + if ($defineProperty) { + $defineProperty(obj, property, { + configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable, + enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable, + value: value, + writable: nonWritable === null && desc ? desc.writable : !nonWritable + }); + } else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) { + // must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable + obj[property] = value; // eslint-disable-line no-param-reassign + } else { + throw new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.'); + } +}; diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/package.json b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/package.json new file mode 100644 index 0000000..eec4097 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/package.json @@ -0,0 +1,106 @@ +{ + "name": "define-data-property", + "version": "1.1.4", + "description": "Define a data property on an object. Will fall back to assignment in an engine without descriptors.", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "tsc": "tsc -p .", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "npm run tsc", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/define-data-property.git" + }, + "keywords": [ + "define", + "data", + "property", + "object", + "accessor", + "javascript", + "ecmascript", + "enumerable", + "configurable", + "writable" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/define-data-property/issues" + }, + "homepage": "https://github.com/ljharb/define-data-property#readme", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/call-bind": "^1.0.5", + "@types/define-properties": "^1.1.5", + "@types/es-value-fixtures": "^1.4.4", + "@types/for-each": "^0.3.3", + "@types/get-intrinsic": "^1.2.2", + "@types/gopd": "^1.0.3", + "@types/has-property-descriptors": "^1.0.3", + "@types/object-inspect": "^1.8.4", + "@types/object.getownpropertydescriptors": "^2.1.4", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "hasown": "^2.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.1", + "object.getownpropertydescriptors": "^2.1.7", + "reflect.ownkeys": "^1.1.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "types/reflect.ownkeys" + ] + } +} diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/test/index.js b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/test/index.js new file mode 100644 index 0000000..68204c6 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/test/index.js @@ -0,0 +1,392 @@ +'use strict'; + +var test = require('tape'); +var v = require('es-value-fixtures'); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var hasOwn = require('hasown'); +var hasPropertyDescriptors = require('has-property-descriptors')(); +var getOwnPropertyDescriptors = require('object.getownpropertydescriptors'); +var ownKeys = require('reflect.ownkeys'); + +var defineDataProperty = require('../'); + +test('defineDataProperty', function (t) { + t.test('argument validation', function (st) { + forEach(v.primitives, function (nonObject) { + st['throws']( + // @ts-expect-error + function () { defineDataProperty(nonObject, 'key', 'value'); }, + TypeError, + 'throws on non-object input: ' + inspect(nonObject) + ); + }); + + forEach(v.nonPropertyKeys, function (nonPropertyKey) { + st['throws']( + // @ts-expect-error + function () { defineDataProperty({}, nonPropertyKey, 'value'); }, + TypeError, + 'throws on non-PropertyKey input: ' + inspect(nonPropertyKey) + ); + }); + + forEach(v.nonBooleans, function (nonBoolean) { + if (nonBoolean !== null) { + st['throws']( + // @ts-expect-error + function () { defineDataProperty({}, 'key', 'value', nonBoolean); }, + TypeError, + 'throws on non-boolean nonEnumerable: ' + inspect(nonBoolean) + ); + + st['throws']( + // @ts-expect-error + function () { defineDataProperty({}, 'key', 'value', false, nonBoolean); }, + TypeError, + 'throws on non-boolean nonWritable: ' + inspect(nonBoolean) + ); + + st['throws']( + // @ts-expect-error + function () { defineDataProperty({}, 'key', 'value', false, false, nonBoolean); }, + TypeError, + 'throws on non-boolean nonConfigurable: ' + inspect(nonBoolean) + ); + } + }); + + st.end(); + }); + + t.test('normal data property', function (st) { + /** @type {Record} */ + var obj = { existing: 'existing property' }; + st.ok(hasOwn(obj, 'existing'), 'has initial own property'); + st.equal(obj.existing, 'existing property', 'has expected initial value'); + + var res = defineDataProperty(obj, 'added', 'added property'); + st.equal(res, void undefined, 'returns `undefined`'); + st.ok(hasOwn(obj, 'added'), 'has expected own property'); + st.equal(obj.added, 'added property', 'has expected value'); + + defineDataProperty(obj, 'existing', 'new value'); + st.ok(hasOwn(obj, 'existing'), 'still has expected own property'); + st.equal(obj.existing, 'new value', 'has new expected value'); + + defineDataProperty(obj, 'explicit1', 'new value', false); + st.ok(hasOwn(obj, 'explicit1'), 'has expected own property (explicit enumerable)'); + st.equal(obj.explicit1, 'new value', 'has new expected value (explicit enumerable)'); + + defineDataProperty(obj, 'explicit2', 'new value', false, false); + st.ok(hasOwn(obj, 'explicit2'), 'has expected own property (explicit writable)'); + st.equal(obj.explicit2, 'new value', 'has new expected value (explicit writable)'); + + defineDataProperty(obj, 'explicit3', 'new value', false, false, false); + st.ok(hasOwn(obj, 'explicit3'), 'has expected own property (explicit configurable)'); + st.equal(obj.explicit3, 'new value', 'has new expected value (explicit configurable)'); + + st.end(); + }); + + t.test('loose mode', { skip: !hasPropertyDescriptors }, function (st) { + var obj = { existing: 'existing property' }; + + defineDataProperty(obj, 'added', 'added value 1', true, null, null, true); + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + existing: { + configurable: true, + enumerable: true, + value: 'existing property', + writable: true + }, + added: { + configurable: true, + enumerable: !hasPropertyDescriptors, + value: 'added value 1', + writable: true + } + }, + 'in loose mode, obj still adds property 1' + ); + + defineDataProperty(obj, 'added', 'added value 2', false, true, null, true); + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + existing: { + configurable: true, + enumerable: true, + value: 'existing property', + writable: true + }, + added: { + configurable: true, + enumerable: true, + value: 'added value 2', + writable: !hasPropertyDescriptors + } + }, + 'in loose mode, obj still adds property 2' + ); + + defineDataProperty(obj, 'added', 'added value 3', false, false, true, true); + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + existing: { + configurable: true, + enumerable: true, + value: 'existing property', + writable: true + }, + added: { + configurable: !hasPropertyDescriptors, + enumerable: true, + value: 'added value 3', + writable: true + } + }, + 'in loose mode, obj still adds property 3' + ); + + st.end(); + }); + + t.test('non-normal data property, ES3', { skip: hasPropertyDescriptors }, function (st) { + /** @type {Record} */ + var obj = { existing: 'existing property' }; + + st['throws']( + function () { defineDataProperty(obj, 'added', 'added value', true); }, + SyntaxError, + 'nonEnumerable throws a Syntax Error' + ); + + st['throws']( + function () { defineDataProperty(obj, 'added', 'added value', false, true); }, + SyntaxError, + 'nonWritable throws a Syntax Error' + ); + + st['throws']( + function () { defineDataProperty(obj, 'added', 'added value', false, false, true); }, + SyntaxError, + 'nonWritable throws a Syntax Error' + ); + + st.deepEqual( + ownKeys(obj), + ['existing'], + 'obj still has expected keys' + ); + st.equal(obj.existing, 'existing property', 'obj still has expected values'); + + st.end(); + }); + + t.test('new non-normal data property, ES5+', { skip: !hasPropertyDescriptors }, function (st) { + /** @type {Record} */ + var obj = { existing: 'existing property' }; + + defineDataProperty(obj, 'nonEnum', null, true); + defineDataProperty(obj, 'nonWrit', null, false, true); + defineDataProperty(obj, 'nonConf', null, false, false, true); + + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + existing: { + configurable: true, + enumerable: true, + value: 'existing property', + writable: true + }, + nonEnum: { + configurable: true, + enumerable: false, + value: null, + writable: true + }, + nonWrit: { + configurable: true, + enumerable: true, + value: null, + writable: false + }, + nonConf: { + configurable: false, + enumerable: true, + value: null, + writable: true + } + }, + 'obj has expected property descriptors' + ); + + st.end(); + }); + + t.test('existing non-normal data property, ES5+', { skip: !hasPropertyDescriptors }, function (st) { + // test case changing an existing non-normal property + + /** @type {Record} */ + var obj = {}; + Object.defineProperty(obj, 'nonEnum', { configurable: true, enumerable: false, value: null, writable: true }); + Object.defineProperty(obj, 'nonWrit', { configurable: true, enumerable: true, value: null, writable: false }); + Object.defineProperty(obj, 'nonConf', { configurable: false, enumerable: true, value: null, writable: true }); + + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + nonEnum: { + configurable: true, + enumerable: false, + value: null, + writable: true + }, + nonWrit: { + configurable: true, + enumerable: true, + value: null, + writable: false + }, + nonConf: { + configurable: false, + enumerable: true, + value: null, + writable: true + } + }, + 'obj initially has expected property descriptors' + ); + + defineDataProperty(obj, 'nonEnum', 'new value', false); + defineDataProperty(obj, 'nonWrit', 'new value', false, false); + st['throws']( + function () { defineDataProperty(obj, 'nonConf', 'new value', false, false, false); }, + TypeError, + 'can not alter a nonconfigurable property' + ); + + st.deepEqual( + getOwnPropertyDescriptors(obj), + { + nonEnum: { + configurable: true, + enumerable: true, + value: 'new value', + writable: true + }, + nonWrit: { + configurable: true, + enumerable: true, + value: 'new value', + writable: true + }, + nonConf: { + configurable: false, + enumerable: true, + value: null, + writable: true + } + }, + 'obj ends up with expected property descriptors' + ); + + st.end(); + }); + + t.test('frozen object, ES5+', { skip: !hasPropertyDescriptors }, function (st) { + var frozen = Object.freeze({ existing: true }); + + st['throws']( + function () { defineDataProperty(frozen, 'existing', 'new value'); }, + TypeError, + 'frozen object can not modify an existing property' + ); + + st['throws']( + function () { defineDataProperty(frozen, 'new', 'new property'); }, + TypeError, + 'frozen object can not add a new property' + ); + + st.end(); + }); + + t.test('sealed object, ES5+', { skip: !hasPropertyDescriptors }, function (st) { + var sealed = Object.seal({ existing: true }); + st.deepEqual( + Object.getOwnPropertyDescriptor(sealed, 'existing'), + { + configurable: false, + enumerable: true, + value: true, + writable: true + }, + 'existing value on sealed object has expected descriptor' + ); + + defineDataProperty(sealed, 'existing', 'new value'); + + st.deepEqual( + Object.getOwnPropertyDescriptor(sealed, 'existing'), + { + configurable: false, + enumerable: true, + value: 'new value', + writable: true + }, + 'existing value on sealed object has changed descriptor' + ); + + st['throws']( + function () { defineDataProperty(sealed, 'new', 'new property'); }, + TypeError, + 'sealed object can not add a new property' + ); + + st.end(); + }); + + t.test('nonextensible object, ES5+', { skip: !hasPropertyDescriptors }, function (st) { + var nonExt = Object.preventExtensions({ existing: true }); + + st.deepEqual( + Object.getOwnPropertyDescriptor(nonExt, 'existing'), + { + configurable: true, + enumerable: true, + value: true, + writable: true + }, + 'existing value on non-extensible object has expected descriptor' + ); + + defineDataProperty(nonExt, 'existing', 'new value', true); + + st.deepEqual( + Object.getOwnPropertyDescriptor(nonExt, 'existing'), + { + configurable: true, + enumerable: false, + value: 'new value', + writable: true + }, + 'existing value on non-extensible object has changed descriptor' + ); + + st['throws']( + function () { defineDataProperty(nonExt, 'new', 'new property'); }, + TypeError, + 'non-extensible object can not add a new property' + ); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/tsconfig.json b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/tsconfig.json new file mode 100644 index 0000000..69f060d --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/tsconfig.json @@ -0,0 +1,59 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + + /* Completeness */ + // "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage" + ] +} diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-define-property b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-define-property new file mode 120000 index 0000000..9d79135 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-define-property @@ -0,0 +1 @@ +../../es-define-property@1.0.0/node_modules/es-define-property \ No newline at end of file diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-errors b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-errors new file mode 120000 index 0000000..fccce4e --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/es-errors @@ -0,0 +1 @@ +../../es-errors@1.3.0/node_modules/es-errors \ No newline at end of file diff --git a/node_modules/.pnpm/define-data-property@1.1.4/node_modules/gopd b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/gopd new file mode 120000 index 0000000..32ce969 --- /dev/null +++ b/node_modules/.pnpm/define-data-property@1.1.4/node_modules/gopd @@ -0,0 +1 @@ +../../gopd@1.0.1/node_modules/gopd \ No newline at end of file diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.eslintrc b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.eslintrc new file mode 100644 index 0000000..46f3b12 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "new-cap": ["error", { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.github/FUNDING.yml b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.github/FUNDING.yml new file mode 100644 index 0000000..4445451 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-define-property +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.nycrc b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/CHANGELOG.md b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/CHANGELOG.md new file mode 100644 index 0000000..4dce2ec --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v1.0.0 - 2024-02-12 + +### Commits + +- Initial implementation, tests, readme, types [`3e154e1`](https://github.com/ljharb/es-define-property/commit/3e154e11a2fee09127220f5e503bf2c0a31dd480) +- Initial commit [`07d98de`](https://github.com/ljharb/es-define-property/commit/07d98de34a4dc31ff5e83a37c0c3f49e0d85cd50) +- npm init [`c4eb634`](https://github.com/ljharb/es-define-property/commit/c4eb6348b0d3886aac36cef34ad2ee0665ea6f3e) +- Only apps should have lockfiles [`7af86ec`](https://github.com/ljharb/es-define-property/commit/7af86ec1d311ec0b17fdfe616a25f64276903856) diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/LICENSE b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/README.md b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/README.md new file mode 100644 index 0000000..9b291bd --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/README.md @@ -0,0 +1,49 @@ +# es-define-property [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.defineProperty`, but not IE 8's broken one. + +## Example + +```js +const assert = require('assert'); + +const $defineProperty = require('es-define-property'); + +if ($defineProperty) { + assert.equal($defineProperty, Object.defineProperty); +} else if (Object.defineProperty) { + assert.equal($defineProperty, false, 'this is IE 8'); +} else { + assert.equal($defineProperty, false, 'this is an ES3 engine'); +} +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-define-property +[npm-version-svg]: https://versionbadg.es/ljharb/es-define-property.svg +[deps-svg]: https://david-dm.org/ljharb/es-define-property.svg +[deps-url]: https://david-dm.org/ljharb/es-define-property +[dev-deps-svg]: https://david-dm.org/ljharb/es-define-property/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-define-property#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-define-property.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-define-property.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-define-property.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-define-property +[codecov-image]: https://codecov.io/gh/ljharb/es-define-property/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-define-property/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-define-property +[actions-url]: https://github.com/ljharb/es-define-property/actions diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.d.ts b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.d.ts new file mode 100644 index 0000000..6012247 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.d.ts @@ -0,0 +1,3 @@ +declare const defineProperty: false | typeof Object.defineProperty; + +export = defineProperty; \ No newline at end of file diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js new file mode 100644 index 0000000..f32737d --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +/** @type {import('.')} */ +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false; +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = false; + } +} + +module.exports = $defineProperty; diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/package.json b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/package.json new file mode 100644 index 0000000..45bc90f --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/package.json @@ -0,0 +1,81 @@ +{ + "name": "es-define-property", + "version": "1.0.0", + "description": "`Object.defineProperty`, but not IE 8's broken one.", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-define-property.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "define", + "property", + "defineProperty", + "Object.defineProperty" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-define-property/issues" + }, + "homepage": "https://github.com/ljharb/es-define-property#readme", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/get-intrinsic": "^1.2.2", + "@types/gopd": "^1.0.3", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "gopd": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/test/index.js b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/test/index.js new file mode 100644 index 0000000..dbc054e --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/test/index.js @@ -0,0 +1,55 @@ +'use strict'; + +var $defineProperty = require('../'); + +var test = require('tape'); +var gOPD = require('gopd'); + +test('defineProperty: supported', { skip: !$defineProperty }, function (t) { + t.plan(4); + + t.equal(typeof $defineProperty, 'function', 'defineProperty is supported'); + if ($defineProperty && gOPD) { // this `if` check is just to shut TS up + var o = { a: 1 }; + + $defineProperty(o, 'b', { enumerable: true, value: 2 }); + t.deepEqual( + gOPD(o, 'b'), + { + configurable: false, + enumerable: true, + value: 2, + writable: false + }, + 'property descriptor is as expected' + ); + + $defineProperty(o, 'c', { enumerable: false, value: 3, writable: true }); + t.deepEqual( + gOPD(o, 'c'), + { + configurable: false, + enumerable: false, + value: 3, + writable: true + }, + 'property descriptor is as expected' + ); + } + + t.equal($defineProperty, Object.defineProperty, 'defineProperty is Object.defineProperty'); + + t.end(); +}); + +test('defineProperty: not supported', { skip: !!$defineProperty }, function (t) { + t.notOk($defineProperty, 'defineProperty is not supported'); + + t.match( + typeof $defineProperty, + /^(?:undefined|boolean)$/, + '`typeof defineProperty` is `undefined` or `boolean`' + ); + + t.end(); +}); diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/tsconfig.json b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/tsconfig.json new file mode 100644 index 0000000..fdfa155 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/tsconfig.json @@ -0,0 +1,50 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "es2022", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + // "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage", + "test/list-exports" + ], +} diff --git a/node_modules/.pnpm/es-define-property@1.0.0/node_modules/get-intrinsic b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/get-intrinsic new file mode 120000 index 0000000..ae6df74 --- /dev/null +++ b/node_modules/.pnpm/es-define-property@1.0.0/node_modules/get-intrinsic @@ -0,0 +1 @@ +../../get-intrinsic@1.2.4/node_modules/get-intrinsic \ No newline at end of file diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.eslintrc b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.github/FUNDING.yml b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.github/FUNDING.yml new file mode 100644 index 0000000..f1b8805 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/es-errors +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/CHANGELOG.md b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/CHANGELOG.md new file mode 100644 index 0000000..204a9e9 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.3.0](https://github.com/ljharb/es-errors/compare/v1.2.1...v1.3.0) - 2024-02-05 + +### Commits + +- [New] add `EvalError` and `URIError` [`1927627`](https://github.com/ljharb/es-errors/commit/1927627ba68cb6c829d307231376c967db53acdf) + +## [v1.2.1](https://github.com/ljharb/es-errors/compare/v1.2.0...v1.2.1) - 2024-02-04 + +### Commits + +- [Fix] add missing `exports` entry [`5bb5f28`](https://github.com/ljharb/es-errors/commit/5bb5f280f98922701109d6ebb82eea2257cecc7e) + +## [v1.2.0](https://github.com/ljharb/es-errors/compare/v1.1.0...v1.2.0) - 2024-02-04 + +### Commits + +- [New] add `ReferenceError` [`6d8cf5b`](https://github.com/ljharb/es-errors/commit/6d8cf5bbb6f3f598d02cf6f30e468ba2caa8e143) + +## [v1.1.0](https://github.com/ljharb/es-errors/compare/v1.0.0...v1.1.0) - 2024-02-04 + +### Commits + +- [New] add base Error [`2983ab6`](https://github.com/ljharb/es-errors/commit/2983ab65f7bc5441276cb021dc3aa03c78881698) + +## v1.0.0 - 2024-02-03 + +### Commits + +- Initial implementation, tests, readme, type [`8f47631`](https://github.com/ljharb/es-errors/commit/8f476317e9ad76f40ad648081829b1a1a3a1288b) +- Initial commit [`ea5d099`](https://github.com/ljharb/es-errors/commit/ea5d099ef18e550509ab9e2be000526afd81c385) +- npm init [`6f5ebf9`](https://github.com/ljharb/es-errors/commit/6f5ebf9cead474dadd72b9e63dad315820a089ae) +- Only apps should have lockfiles [`e1a0aeb`](https://github.com/ljharb/es-errors/commit/e1a0aeb7b80f5cfc56be54d6b2100e915d47def8) +- [meta] add `sideEffects` flag [`a9c7d46`](https://github.com/ljharb/es-errors/commit/a9c7d460a492f1d8a241c836bc25a322a19cc043) diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/LICENSE b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/LICENSE new file mode 100644 index 0000000..f82f389 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/README.md b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/README.md new file mode 100644 index 0000000..8dbfacf --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/README.md @@ -0,0 +1,55 @@ +# es-errors [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A simple cache for a few of the JS Error constructors. + +## Example + +```js +const assert = require('assert'); + +const Base = require('es-errors'); +const Eval = require('es-errors/eval'); +const Range = require('es-errors/range'); +const Ref = require('es-errors/ref'); +const Syntax = require('es-errors/syntax'); +const Type = require('es-errors/type'); +const URI = require('es-errors/uri'); + +assert.equal(Base, Error); +assert.equal(Eval, EvalError); +assert.equal(Range, RangeError); +assert.equal(Ref, ReferenceError); +assert.equal(Syntax, SyntaxError); +assert.equal(Type, TypeError); +assert.equal(URI, URIError); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/es-errors +[npm-version-svg]: https://versionbadg.es/ljharb/es-errors.svg +[deps-svg]: https://david-dm.org/ljharb/es-errors.svg +[deps-url]: https://david-dm.org/ljharb/es-errors +[dev-deps-svg]: https://david-dm.org/ljharb/es-errors/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/es-errors#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/es-errors.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/es-errors.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/es-errors.svg +[downloads-url]: https://npm-stat.com/charts.html?package=es-errors +[codecov-image]: https://codecov.io/gh/ljharb/es-errors/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/es-errors/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/es-errors +[actions-url]: https://github.com/ljharb/es-errors/actions diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.d.ts new file mode 100644 index 0000000..e4210e0 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.d.ts @@ -0,0 +1,3 @@ +declare const EvalError: EvalErrorConstructor; + +export = EvalError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js new file mode 100644 index 0000000..725ccb6 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./eval')} */ +module.exports = EvalError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.d.ts new file mode 100644 index 0000000..69bdbc9 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.d.ts @@ -0,0 +1,3 @@ +declare const Error: ErrorConstructor; + +export = Error; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js new file mode 100644 index 0000000..cc0c521 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Error; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/package.json b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/package.json new file mode 100644 index 0000000..ff8c2a5 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/package.json @@ -0,0 +1,80 @@ +{ + "name": "es-errors", + "version": "1.3.0", + "description": "A simple cache for a few of the JS Error constructors.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./eval": "./eval.js", + "./range": "./range.js", + "./ref": "./ref.js", + "./syntax": "./syntax.js", + "./type": "./type.js", + "./uri": "./uri.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "aud --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-errors.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "error", + "typeerror", + "syntaxerror", + "rangeerror" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-errors/issues" + }, + "homepage": "https://github.com/ljharb/es-errors#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eclint": "^2.8.1", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.d.ts new file mode 100644 index 0000000..3a12e86 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.d.ts @@ -0,0 +1,3 @@ +declare const RangeError: RangeErrorConstructor; + +export = RangeError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js new file mode 100644 index 0000000..2044fe0 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./range')} */ +module.exports = RangeError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.d.ts new file mode 100644 index 0000000..a13107e --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.d.ts @@ -0,0 +1,3 @@ +declare const ReferenceError: ReferenceErrorConstructor; + +export = ReferenceError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js new file mode 100644 index 0000000..d7c430f --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./ref')} */ +module.exports = ReferenceError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.d.ts new file mode 100644 index 0000000..6a0c53c --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.d.ts @@ -0,0 +1,3 @@ +declare const SyntaxError: SyntaxErrorConstructor; + +export = SyntaxError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js new file mode 100644 index 0000000..5f5fdde --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./syntax')} */ +module.exports = SyntaxError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/test/index.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/test/index.js new file mode 100644 index 0000000..1ff0277 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/test/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var test = require('tape'); + +var E = require('../'); +var R = require('../range'); +var Ref = require('../ref'); +var S = require('../syntax'); +var T = require('../type'); + +test('errors', function (t) { + t.equal(E, Error); + t.equal(R, RangeError); + t.equal(Ref, ReferenceError); + t.equal(S, SyntaxError); + t.equal(T, TypeError); + + t.end(); +}); diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/tsconfig.json b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/tsconfig.json new file mode 100644 index 0000000..99dfeb6 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "es5", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": ["types"], /* Specify multiple folders that act like `./node_modules/@types`. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow `import x from y` when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + // "skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.d.ts new file mode 100644 index 0000000..576fb51 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.d.ts @@ -0,0 +1,3 @@ +declare const TypeError: TypeErrorConstructor + +export = TypeError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js new file mode 100644 index 0000000..9769e44 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./type')} */ +module.exports = TypeError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.d.ts b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.d.ts new file mode 100644 index 0000000..c3261c9 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.d.ts @@ -0,0 +1,3 @@ +declare const URIError: URIErrorConstructor; + +export = URIError; diff --git a/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js new file mode 100644 index 0000000..e9cd1c7 --- /dev/null +++ b/node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./uri')} */ +module.exports = URIError; diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/.npmignore b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/.npmignore new file mode 100644 index 0000000..096746c --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/.npmignore @@ -0,0 +1 @@ +/node_modules/ \ No newline at end of file diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/README.md b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/README.md new file mode 100644 index 0000000..1052093 --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/README.md @@ -0,0 +1,29 @@ +# es6-promise-try + +A Promise.try shim for ES6 Promises. + +## License + +[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required. + +## Donate + +My income consists largely of donations for my projects. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)! + +You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else. + +## Contributing + +Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`. + +Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes. + +Be aware that by making a pull request, you agree to release your modifications under the licenses stated above. + +## Usage + +TODO + +## API + +TODO \ No newline at end of file diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/gulpfile.js b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/gulpfile.js new file mode 100644 index 0000000..1769501 --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/gulpfile.js @@ -0,0 +1,18 @@ +var gulp = require("gulp"); +var presetES2015 = require("@joepie91/gulp-preset-es2015"); + +var source = ["src/**/*.js"] + +gulp.task('babel', function() { + return gulp.src(source) + .pipe(presetES2015({ + basePath: __dirname + })) + .pipe(gulp.dest("lib/")); +}); + +gulp.task("watch", function () { + gulp.watch(source, ["babel"]); +}); + +gulp.task("default", ["babel", "watch"]); \ No newline at end of file diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/index.js b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/index.js new file mode 100644 index 0000000..507257b --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require("./lib"); \ No newline at end of file diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/lib/index.js b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/lib/index.js new file mode 100644 index 0000000..1e5924f --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/lib/index.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = function promiseTry(func) { + return new Promise(function (resolve, reject) { + resolve(func()); + }); +}; \ No newline at end of file diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/package.json b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/package.json new file mode 100644 index 0000000..d2524d5 --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/package.json @@ -0,0 +1,27 @@ +{ + "name": "es6-promise-try", + "version": "0.0.1", + "description": "Promise.try shim for ES6 Promises", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "http://git.cryto.net/joepie91/node-es6-promise-try.git" + }, + "keywords": [ + "es6", + "promises", + "shim" + ], + "author": "Sven Slootweg", + "license": "WTFPL", + "dependencies": { + }, + "devDependencies": { + "@joepie91/gulp-preset-es2015": "^1.0.1", + "babel-preset-es2015": "^6.6.0", + "gulp": "^3.9.1" + } +} diff --git a/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/src/index.js b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/src/index.js new file mode 100644 index 0000000..128954e --- /dev/null +++ b/node_modules/.pnpm/es6-promise-try@0.0.1/node_modules/es6-promise-try/src/index.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = function promiseTry(func) { + return new Promise(function(resolve, reject) { + resolve(func()); + }) +} \ No newline at end of file diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/clone-regexp b/node_modules/.pnpm/execall@2.0.0/node_modules/clone-regexp new file mode 120000 index 0000000..c7094c4 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/clone-regexp @@ -0,0 +1 @@ +../../clone-regexp@2.2.0/node_modules/clone-regexp \ No newline at end of file diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.d.ts b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.d.ts new file mode 100644 index 0000000..6a97259 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.d.ts @@ -0,0 +1,36 @@ +declare namespace execall { + interface Match { + match: string; + subMatches: string[]; + index: number; + } +} + +/** +Find multiple RegExp matches in a string. + +@param regexp - Regular expression to match against the `string`. +@returns The matches. + +@example +``` +import execall = require('execall'); + +execall(/(\d+)/g, '$200 and $400'); +// [ +// { +// match: '200', +// subMatches: ['200'], +// index: 1 +// }, +// { +// match: '400', +// subMatches: ['400'], +// index: 10 +// } +// ] +``` +*/ +declare function execall(regexp: RegExp, string: string): execall.Match[]; + +export = execall; diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.js b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.js new file mode 100644 index 0000000..ea1f111 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/index.js @@ -0,0 +1,24 @@ +'use strict'; +const cloneRegexp = require('clone-regexp'); + +module.exports = (regexp, string) => { + let match; + const matches = []; + const clonedRegexp = cloneRegexp(regexp, {lastIndex: 0}); + const isGlobal = clonedRegexp.global; + + // eslint-disable-next-line no-cond-assign + while (match = clonedRegexp.exec(string)) { + matches.push({ + match: match[0], + subMatches: match.slice(1), + index: match.index + }); + + if (!isGlobal) { + break; + } + } + + return matches; +}; diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/execall/license b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/execall/package.json b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/package.json new file mode 100644 index 0000000..be5eda6 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/package.json @@ -0,0 +1,48 @@ +{ + "name": "execall", + "version": "2.0.0", + "description": "Find multiple RegExp matches in a string", + "license": "MIT", + "repository": "sindresorhus/execall", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "regex", + "regexp", + "regular", + "expression", + "exec", + "match", + "matches", + "execall", + "all", + "find", + "findall", + "immutable", + "string", + "multiple", + "many", + "global" + ], + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/execall@2.0.0/node_modules/execall/readme.md b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/readme.md new file mode 100644 index 0000000..55c3613 --- /dev/null +++ b/node_modules/.pnpm/execall@2.0.0/node_modules/execall/readme.md @@ -0,0 +1,62 @@ +# execall [![Build Status](https://travis-ci.org/sindresorhus/execall.svg?branch=master)](https://travis-ci.org/sindresorhus/execall) + +> Find multiple RegExp matches in a string + +Instead of having to iterate over `RegExp#exec`, immutable, and with a nicer result format. + + +## Install + +``` +$ npm install execall +``` + + +## Usage + +```js +const execall = require('execall'); + +execall(/(\d+)/g, '$200 and $400'); +/* +[ + { + match: '200', + subMatches: ['200'], + index: 1 + }, + { + match: '400', + subMatches: ['400'], + index: 10 + } +] +*/ +``` + + +## API + +### execall(regexp, string) + +Returns an `object[]` with a match, sub-matches, and index. + +#### regexp + +Type: `RegExp` + +Regular expression to match against the `string`. + +#### string + +Type: `string` + + +## Related + +- [replace-string](https://github.com/sindresorhus/replace-string) - Replace all substring matches in a string + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/LICENSE b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/LICENSE new file mode 100644 index 0000000..54a689b --- /dev/null +++ b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Joshua Holbrook + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/README.md b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/README.md new file mode 100644 index 0000000..7b0a3b6 --- /dev/null +++ b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/README.md @@ -0,0 +1,34 @@ +# flatten + +A tiny utility to flatten arrays of arrays (of arrays, etc., recursively, infinitely or to an optional depth) into a single array of non-arrays. + +## example: + +```js +> var flatten = require('flatten'); +undefined +> flatten([1, [2, 3], [4, 5, 6], [7, [8, 9]], 10]) +[ 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 ] +> flatten([1, [2, [3, [4, [5]]]]], 2) +[ 1, + 2, + 3, + [ 4, [ 5 ] ] ] +``` + +## install: + + npm install flatten + +## license: + +MIT/X11. diff --git a/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/index.js b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/index.js new file mode 100644 index 0000000..a9bd9b8 --- /dev/null +++ b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/index.js @@ -0,0 +1,23 @@ +module.exports = function flatten(list, depth) { + depth = (typeof depth == 'number') ? depth : Infinity; + + if (!depth) { + if (Array.isArray(list)) { + return list.map(function(i) { return i; }); + } + return list; + } + + return _flatten(list, 1); + + function _flatten(list, d) { + return list.reduce(function (acc, item) { + if (Array.isArray(item) && d < depth) { + return acc.concat(_flatten(item, d + 1)); + } + else { + return acc.concat(item); + } + }, []); + } +}; diff --git a/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/package.json b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/package.json new file mode 100644 index 0000000..b5903d9 --- /dev/null +++ b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/package.json @@ -0,0 +1,35 @@ +{ "name": "flatten", + "version": "1.0.3", + "description": "Flatten arbitrarily nested arrays into a non-nested list of non-array items. Maintained for legacy compatibility.", + "keywords": [ + "array", + "flatten" + ], + + "author": "Joshua Holbrook (http://jesusabdullah.net)", + "homepage": "https://github.com/mk-pmb/flatten-js/#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/mk-pmb/flatten-js.git" + }, + "bugs": { + "url": "https://github.com/mk-pmb/flatten-js/issues" + }, + "contributors": [ + "M.K. (https://github.com/mk-pmb)" + ], + + "private": false, "license": "MIT", + + "scripts": { + "test": "node ./test.js" + }, + "directories": { "test": "test" }, + + "dependencies": {}, + "devDependencies": {}, + "optionalDependencies": {}, + + + "npm vs. BOM = Unexpected token": "-*- coding: UTF-8 -*-" +} diff --git a/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/test.js b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/test.js new file mode 100644 index 0000000..385c27f --- /dev/null +++ b/node_modules/.pnpm/flatten@1.0.3/node_modules/flatten/test.js @@ -0,0 +1,25 @@ +var flatten = require('./index'), + util = require('util'), + assert = require('assert'); + +[ + [ [1, [ 2, 3]], [1, [2, 3]], 0], + [ [1, 2, 3 ], [1, 2, 3] ], + [ ['a', ['b', ['c']]], ['a', 'b', 'c'] ], + [ [2, [4, 6], 8, [[10]]], [2, 4, 6, 8, 10] ], + [ [1, [2, [3, [4, [5]]]]], [1, 2, 3, [4, [5]]], 2 ] // depth of 2 +].forEach(function (t) { + assert.deepEqual(flatten(t[0], t[2]), t[1], + util.format('☠☠☠☠☠☠☠☠☠ %s ☠☠☠☠☠☠☠☠☠', formatCall(t)) + ); + console.log('✓ %s', formatCall(t)); +}); + +function formatCall(t) { + if (typeof t[2] === 'undefined') { + return util.format('`flatten(%j) == %j`', t[0], t[1]); + } + else { + return util.format('`flatten(%j, %j) == %j`', t[0], t[2], t[1]); + } +} diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.eslintrc b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.eslintrc new file mode 100644 index 0000000..71a054f --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.eslintrc @@ -0,0 +1,21 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "indent": [2, 4], + "no-new-func": [1], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "max-lines-per-function": 0, + "strict": [0] + }, + }, + ], +} diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/FUNDING.yml b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/FUNDING.yml new file mode 100644 index 0000000..7448219 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/function-bind +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/SECURITY.md b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/SECURITY.md new file mode 100644 index 0000000..82e4285 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.github/SECURITY.md @@ -0,0 +1,3 @@ +# Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.nycrc b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/CHANGELOG.md b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/CHANGELOG.md new file mode 100644 index 0000000..f9e6cc0 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/CHANGELOG.md @@ -0,0 +1,136 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.2](https://github.com/ljharb/function-bind/compare/v1.1.1...v1.1.2) - 2023-10-12 + +### Merged + +- Point to the correct file [`#16`](https://github.com/ljharb/function-bind/pull/16) + +### Commits + +- [Tests] migrate tests to Github Actions [`4f8b57c`](https://github.com/ljharb/function-bind/commit/4f8b57c02f2011fe9ae353d5e74e8745f0988af8) +- [Tests] remove `jscs` [`90eb2ed`](https://github.com/ljharb/function-bind/commit/90eb2edbeefd5b76cd6c3a482ea3454db169b31f) +- [meta] update `.gitignore` [`53fcdc3`](https://github.com/ljharb/function-bind/commit/53fcdc371cd66634d6e9b71c836a50f437e89fed) +- [Tests] up to `node` `v11.10`, `v10.15`, `v9.11`, `v8.15`, `v6.16`, `v4.9`; use `nvm install-latest-npm`; run audit script in tests [`1fe8f6e`](https://github.com/ljharb/function-bind/commit/1fe8f6e9aed0dfa8d8b3cdbd00c7f5ea0cd2b36e) +- [meta] add `auto-changelog` [`1921fcb`](https://github.com/ljharb/function-bind/commit/1921fcb5b416b63ffc4acad051b6aad5722f777d) +- [Robustness] remove runtime dependency on all builtins except `.apply` [`f743e61`](https://github.com/ljharb/function-bind/commit/f743e61aa6bb2360358c04d4884c9db853d118b7) +- Docs: enable badges; update wording [`503cb12`](https://github.com/ljharb/function-bind/commit/503cb12d998b5f91822776c73332c7adcd6355dd) +- [readme] update badges [`290c5db`](https://github.com/ljharb/function-bind/commit/290c5dbbbda7264efaeb886552a374b869a4bb48) +- [Tests] switch to nyc for coverage [`ea360ba`](https://github.com/ljharb/function-bind/commit/ea360ba907fc2601ed18d01a3827fa2d3533cdf8) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`cae5e9e`](https://github.com/ljharb/function-bind/commit/cae5e9e07a5578dc6df26c03ee22851ce05b943c) +- [meta] add `funding` field; create FUNDING.yml [`c9f4274`](https://github.com/ljharb/function-bind/commit/c9f4274aa80ea3aae9657a3938fdba41a3b04ca6) +- [Tests] fix eslint errors from #15 [`f69aaa2`](https://github.com/ljharb/function-bind/commit/f69aaa2beb2fdab4415bfb885760a699d0b9c964) +- [actions] fix permissions [`99a0cd9`](https://github.com/ljharb/function-bind/commit/99a0cd9f3b5bac223a0d572f081834cd73314be7) +- [meta] use `npmignore` to autogenerate an npmignore file [`f03b524`](https://github.com/ljharb/function-bind/commit/f03b524ca91f75a109a5d062f029122c86ecd1ae) +- [Dev Deps] update `@ljharb/eslint‑config`, `eslint`, `tape` [`7af9300`](https://github.com/ljharb/function-bind/commit/7af930023ae2ce7645489532821e4fbbcd7a2280) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`64a9127`](https://github.com/ljharb/function-bind/commit/64a9127ab0bd331b93d6572eaf6e9971967fc08c) +- [Tests] use `aud` instead of `npm audit` [`e75069c`](https://github.com/ljharb/function-bind/commit/e75069c50010a8fcce2a9ce2324934c35fdb4386) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`d03555c`](https://github.com/ljharb/function-bind/commit/d03555ca59dea3b71ce710045e4303b9e2619e28) +- [meta] add `safe-publish-latest` [`9c8f809`](https://github.com/ljharb/function-bind/commit/9c8f8092aed027d7e80c94f517aa892385b64f09) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`baf6893`](https://github.com/ljharb/function-bind/commit/baf6893e27f5b59abe88bc1995e6f6ed1e527397) +- [meta] create SECURITY.md [`4db1779`](https://github.com/ljharb/function-bind/commit/4db17799f1f28ae294cb95e0081ca2b591c3911b) +- [Tests] add `npm run audit` [`c8b38ec`](https://github.com/ljharb/function-bind/commit/c8b38ec40ed3f85dabdee40ed4148f1748375bc2) +- Revert "Point to the correct file" [`05cdf0f`](https://github.com/ljharb/function-bind/commit/05cdf0fa205c6a3c5ba40bbedd1dfa9874f915c9) + +## [v1.1.1](https://github.com/ljharb/function-bind/compare/v1.1.0...v1.1.1) - 2017-08-28 + +### Commits + +- [Tests] up to `node` `v8`; newer npm breaks on older node; fix scripts [`817f7d2`](https://github.com/ljharb/function-bind/commit/817f7d28470fdbff8ef608d4d565dd4d1430bc5e) +- [Dev Deps] update `eslint`, `jscs`, `tape`, `@ljharb/eslint-config` [`854288b`](https://github.com/ljharb/function-bind/commit/854288b1b6f5c555f89aceb9eff1152510262084) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`83e639f`](https://github.com/ljharb/function-bind/commit/83e639ff74e6cd6921285bccec22c1bcf72311bd) +- Only apps should have lockfiles [`5ed97f5`](https://github.com/ljharb/function-bind/commit/5ed97f51235c17774e0832e122abda0f3229c908) +- Use a SPDX-compliant “license” field. [`5feefea`](https://github.com/ljharb/function-bind/commit/5feefea0dc0193993e83e5df01ded424403a5381) + +## [v1.1.0](https://github.com/ljharb/function-bind/compare/v1.0.2...v1.1.0) - 2016-02-14 + +### Commits + +- Update `eslint`, `tape`; use my personal shared `eslint` config [`9c9062a`](https://github.com/ljharb/function-bind/commit/9c9062abbe9dd70b59ea2c3a3c3a81f29b457097) +- Add `npm run eslint` [`dd96c56`](https://github.com/ljharb/function-bind/commit/dd96c56720034a3c1ffee10b8a59a6f7c53e24ad) +- [New] return the native `bind` when available. [`82186e0`](https://github.com/ljharb/function-bind/commit/82186e03d73e580f95ff167e03f3582bed90ed72) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a3dd767`](https://github.com/ljharb/function-bind/commit/a3dd76720c795cb7f4586b0544efabf8aa107b8b) +- Update `eslint` [`3dae2f7`](https://github.com/ljharb/function-bind/commit/3dae2f7423de30a2d20313ddb1edc19660142fe9) +- Update `tape`, `covert`, `jscs` [`a181eee`](https://github.com/ljharb/function-bind/commit/a181eee0cfa24eb229c6e843a971f36e060a2f6a) +- [Tests] up to `node` `v5.6`, `v4.3` [`964929a`](https://github.com/ljharb/function-bind/commit/964929a6a4ddb36fb128de2bcc20af5e4f22e1ed) +- Test up to `io.js` `v2.1` [`2be7310`](https://github.com/ljharb/function-bind/commit/2be7310f2f74886a7124ca925be411117d41d5ea) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`45f3d68`](https://github.com/ljharb/function-bind/commit/45f3d6865c6ca93726abcef54febe009087af101) +- [Dev Deps] update `tape`, `jscs` [`6e1340d`](https://github.com/ljharb/function-bind/commit/6e1340d94642deaecad3e717825db641af4f8b1f) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`d9bad2b`](https://github.com/ljharb/function-bind/commit/d9bad2b778b1b3a6dd2876087b88b3acf319f8cc) +- Update `eslint` [`935590c`](https://github.com/ljharb/function-bind/commit/935590caa024ab356102e4858e8fc315b2ccc446) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`8c9a1ef`](https://github.com/ljharb/function-bind/commit/8c9a1efd848e5167887aa8501857a0940a480c57) +- Test on `io.js` `v2.2` [`9a3a38c`](https://github.com/ljharb/function-bind/commit/9a3a38c92013aed6e108666e7bd40969b84ac86e) +- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`69afc26`](https://github.com/ljharb/function-bind/commit/69afc2617405b147dd2a8d8ae73ca9e9283f18b4) +- [Dev Deps] Update `tape`, `eslint` [`36c1be0`](https://github.com/ljharb/function-bind/commit/36c1be0ab12b45fe5df6b0fdb01a5d5137fd0115) +- Update `tape`, `jscs` [`98d8303`](https://github.com/ljharb/function-bind/commit/98d8303cd5ca1c6b8f985469f86b0d44d7d45f6e) +- Update `jscs` [`9633a4e`](https://github.com/ljharb/function-bind/commit/9633a4e9fbf82051c240855166e468ba8ba0846f) +- Update `tape`, `jscs` [`c80ef0f`](https://github.com/ljharb/function-bind/commit/c80ef0f46efc9791e76fa50de4414092ac147831) +- Test up to `io.js` `v3.0` [`7e2c853`](https://github.com/ljharb/function-bind/commit/7e2c8537d52ab9cf5a655755561d8917684c0df4) +- Test on `io.js` `v2.4` [`5a199a2`](https://github.com/ljharb/function-bind/commit/5a199a27ba46795ba5eaf0845d07d4b8232895c9) +- Test on `io.js` `v2.3` [`a511b88`](https://github.com/ljharb/function-bind/commit/a511b8896de0bddf3b56862daa416c701f4d0453) +- Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43 [`732d6b6`](https://github.com/ljharb/function-bind/commit/732d6b63a9b33b45230e630dbcac7a10855d3266) +- Update `jscs` [`da52a48`](https://github.com/ljharb/function-bind/commit/da52a4886c06d6490f46ae30b15e4163ba08905d) +- Lock covert to v1.0.0. [`d6150fd`](https://github.com/ljharb/function-bind/commit/d6150fda1e6f486718ebdeff823333d9e48e7430) + +## [v1.0.2](https://github.com/ljharb/function-bind/compare/v1.0.1...v1.0.2) - 2014-10-04 + +## [v1.0.1](https://github.com/ljharb/function-bind/compare/v1.0.0...v1.0.1) - 2014-10-03 + +### Merged + +- make CI build faster [`#3`](https://github.com/ljharb/function-bind/pull/3) + +### Commits + +- Using my standard jscs.json [`d8ee94c`](https://github.com/ljharb/function-bind/commit/d8ee94c993eff0a84cf5744fe6a29627f5cffa1a) +- Adding `npm run lint` [`7571ab7`](https://github.com/ljharb/function-bind/commit/7571ab7dfdbd99b25a1dbb2d232622bd6f4f9c10) +- Using consistent indentation [`e91a1b1`](https://github.com/ljharb/function-bind/commit/e91a1b13a61e99ec1e530e299b55508f74218a95) +- Updating jscs [`7e17892`](https://github.com/ljharb/function-bind/commit/7e1789284bc629bc9c1547a61c9b227bbd8c7a65) +- Using consistent quotes [`c50b57f`](https://github.com/ljharb/function-bind/commit/c50b57fcd1c5ec38320979c837006069ebe02b77) +- Adding keywords [`cb94631`](https://github.com/ljharb/function-bind/commit/cb946314eed35f21186a25fb42fc118772f9ee00) +- Directly export a function expression instead of using a declaration, and relying on hoisting. [`5a33c5f`](https://github.com/ljharb/function-bind/commit/5a33c5f45642de180e0d207110bf7d1843ceb87c) +- Naming npm URL and badge in README; use SVG [`2aef8fc`](https://github.com/ljharb/function-bind/commit/2aef8fcb79d54e63a58ae557c4e60949e05d5e16) +- Naming deps URLs in README [`04228d7`](https://github.com/ljharb/function-bind/commit/04228d766670ee45ca24e98345c1f6a7621065b5) +- Naming travis-ci URLs in README; using SVG [`62c810c`](https://github.com/ljharb/function-bind/commit/62c810c2f54ced956cd4d4ab7b793055addfe36e) +- Make sure functions are invoked correctly (also passing coverage tests) [`2b289b4`](https://github.com/ljharb/function-bind/commit/2b289b4dfbf037ffcfa4dc95eb540f6165e9e43a) +- Removing the strict mode pragmas; they make tests fail. [`1aa701d`](https://github.com/ljharb/function-bind/commit/1aa701d199ddc3782476e8f7eef82679be97b845) +- Adding myself as a contributor [`85fd57b`](https://github.com/ljharb/function-bind/commit/85fd57b0860e5a7af42de9a287f3f265fc6d72fc) +- Adding strict mode pragmas [`915b08e`](https://github.com/ljharb/function-bind/commit/915b08e084c86a722eafe7245e21db74aa21ca4c) +- Adding devDeps URLs to README [`4ccc731`](https://github.com/ljharb/function-bind/commit/4ccc73112c1769859e4ca3076caf4086b3cba2cd) +- Fixing the description. [`a7a472c`](https://github.com/ljharb/function-bind/commit/a7a472cf649af515c635cf560fc478fbe48999c8) +- Using a function expression instead of a function declaration. [`b5d3e4e`](https://github.com/ljharb/function-bind/commit/b5d3e4ea6aaffc63888953eeb1fbc7ff45f1fa14) +- Updating tape [`f086be6`](https://github.com/ljharb/function-bind/commit/f086be6029fb56dde61a258c1340600fa174d1e0) +- Updating jscs [`5f9bdb3`](https://github.com/ljharb/function-bind/commit/5f9bdb375ab13ba48f30852aab94029520c54d71) +- Updating jscs [`9b409ba`](https://github.com/ljharb/function-bind/commit/9b409ba6118e23395a4e5d83ef39152aab9d3bfc) +- Run coverage as part of tests. [`8e1b6d4`](https://github.com/ljharb/function-bind/commit/8e1b6d459f047d1bd4fee814e01247c984c80bd0) +- Run linter as part of tests [`c1ca83f`](https://github.com/ljharb/function-bind/commit/c1ca83f832df94587d09e621beba682fabfaa987) +- Updating covert [`701e837`](https://github.com/ljharb/function-bind/commit/701e83774b57b4d3ef631e1948143f43a72f4bb9) + +## [v1.0.0](https://github.com/ljharb/function-bind/compare/v0.2.0...v1.0.0) - 2014-08-09 + +### Commits + +- Make sure old and unstable nodes don't fail Travis [`27adca3`](https://github.com/ljharb/function-bind/commit/27adca34a4ab6ad67b6dfde43942a1b103ce4d75) +- Fixing an issue when the bound function is called as a constructor in ES3. [`e20122d`](https://github.com/ljharb/function-bind/commit/e20122d267d92ce553859b280cbbea5d27c07731) +- Adding `npm run coverage` [`a2e29c4`](https://github.com/ljharb/function-bind/commit/a2e29c4ecaef9e2f6cd1603e868c139073375502) +- Updating tape [`b741168`](https://github.com/ljharb/function-bind/commit/b741168b12b235b1717ff696087645526b69213c) +- Upgrading tape [`63631a0`](https://github.com/ljharb/function-bind/commit/63631a04c7fbe97cc2fa61829cc27246d6986f74) +- Updating tape [`363cb46`](https://github.com/ljharb/function-bind/commit/363cb46dafb23cb3e347729a22f9448051d78464) + +## v0.2.0 - 2014-03-23 + +### Commits + +- Updating test coverage to match es5-shim. [`aa94d44`](https://github.com/ljharb/function-bind/commit/aa94d44b8f9d7f69f10e060db7709aa7a694e5d4) +- initial [`942ee07`](https://github.com/ljharb/function-bind/commit/942ee07e94e542d91798137bc4b80b926137e066) +- Setting the bound function's length properly. [`079f46a`](https://github.com/ljharb/function-bind/commit/079f46a2d3515b7c0b308c2c13fceb641f97ca25) +- Ensuring that some older browsers will throw when given a regex. [`36ac55b`](https://github.com/ljharb/function-bind/commit/36ac55b87f460d4330253c92870aa26fbfe8227f) +- Removing npm scripts that don't have dependencies [`9d2be60`](https://github.com/ljharb/function-bind/commit/9d2be600002cb8bc8606f8f3585ad3e05868c750) +- Updating tape [`297a4ac`](https://github.com/ljharb/function-bind/commit/297a4acc5464db381940aafb194d1c88f4e678f3) +- Skipping length tests for now. [`d9891ea`](https://github.com/ljharb/function-bind/commit/d9891ea4d2aaffa69f408339cdd61ff740f70565) +- don't take my tea [`dccd930`](https://github.com/ljharb/function-bind/commit/dccd930bfd60ea10cb178d28c97550c3bc8c1e07) diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/LICENSE b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/LICENSE new file mode 100644 index 0000000..62d6d23 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 Raynos. + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. + diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/README.md b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/README.md new file mode 100644 index 0000000..814c20b --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/README.md @@ -0,0 +1,46 @@ +# function-bind [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] + +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Implementation of function.prototype.bind + +Old versions of phantomjs, Internet Explorer < 9, and node < 0.6 don't support `Function.prototype.bind`. + +## Example + +```js +Function.prototype.bind = require("function-bind") +``` + +## Installation + +`npm install function-bind` + +## Contributors + + - Raynos + +## MIT Licenced + +[package-url]: https://npmjs.org/package/function-bind +[npm-version-svg]: https://versionbadg.es/Raynos/function-bind.svg +[deps-svg]: https://david-dm.org/Raynos/function-bind.svg +[deps-url]: https://david-dm.org/Raynos/function-bind +[dev-deps-svg]: https://david-dm.org/Raynos/function-bind/dev-status.svg +[dev-deps-url]: https://david-dm.org/Raynos/function-bind#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/function-bind.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/function-bind.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/function-bind.svg +[downloads-url]: https://npm-stat.com/charts.html?package=function-bind +[codecov-image]: https://codecov.io/gh/Raynos/function-bind/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/Raynos/function-bind/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/Raynos/function-bind +[actions-url]: https://github.com/Raynos/function-bind/actions diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js new file mode 100644 index 0000000..fd4384c --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js @@ -0,0 +1,84 @@ +'use strict'; + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var toStr = Object.prototype.toString; +var max = Math.max; +var funcType = '[object Function]'; + +var concatty = function concatty(a, b) { + var arr = []; + + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + + return arr; +}; + +var slicy = function slicy(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; +}; + +var joiny = function (arr, joiner) { + var str = ''; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; +}; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + + }; + + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = '$' + i; + } + + bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js new file mode 100644 index 0000000..3bb6b96 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js @@ -0,0 +1,5 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = Function.prototype.bind || implementation; diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/package.json b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/package.json new file mode 100644 index 0000000..6185963 --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/package.json @@ -0,0 +1,87 @@ +{ + "name": "function-bind", + "version": "1.1.2", + "description": "Implementation of Function.prototype.bind", + "keywords": [ + "function", + "bind", + "shim", + "es5" + ], + "author": "Raynos ", + "repository": { + "type": "git", + "url": "https://github.com/Raynos/function-bind.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "main": "index", + "homepage": "https://github.com/Raynos/function-bind", + "contributors": [ + { + "name": "Raynos" + }, + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "bugs": { + "url": "https://github.com/Raynos/function-bind/issues", + "email": "raynos2@gmail.com" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.1" + }, + "license": "MIT", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepack": "npmignore --auto --commentLines=autogenerated", + "pretest": "npm run lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "nyc tape 'test/**/*.js'", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "ie/8..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/.eslintrc b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/.eslintrc new file mode 100644 index 0000000..8a56d5b --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/.eslintrc @@ -0,0 +1,9 @@ +{ + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "max-statements-per-line": [2, { "max": 2 }], + "no-invalid-this": 0, + "no-magic-numbers": 0, + } +} diff --git a/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/index.js b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/index.js new file mode 100644 index 0000000..2edecce --- /dev/null +++ b/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/test/index.js @@ -0,0 +1,252 @@ +// jscs:disable requireUseStrict + +var test = require('tape'); + +var functionBind = require('../implementation'); +var getCurrentContext = function () { return this; }; + +test('functionBind is a function', function (t) { + t.equal(typeof functionBind, 'function'); + t.end(); +}); + +test('non-functions', function (t) { + var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g]; + t.plan(nonFunctions.length); + for (var i = 0; i < nonFunctions.length; ++i) { + try { functionBind.call(nonFunctions[i]); } catch (ex) { + t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i])); + } + } + t.end(); +}); + +test('without a context', function (t) { + t.test('binds properly', function (st) { + var args, context; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }) + }; + namespace.func(1, 2, 3); + st.deepEqual(args, [1, 2, 3]); + st.equal(context, getCurrentContext.call()); + st.end(); + }); + + t.test('binds properly, and still supplies bound arguments', function (st) { + var args, context; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, undefined, 1, 2, 3) + }; + namespace.func(4, 5, 6); + st.deepEqual(args, [1, 2, 3, 4, 5, 6]); + st.equal(context, getCurrentContext.call()); + st.end(); + }); + + t.test('returns properly', function (st) { + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, null) + }; + var context = namespace.func(1, 2, 3); + st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); + st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); + st.end(); + }); + + t.test('returns properly with bound arguments', function (st) { + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, null, 1, 2, 3) + }; + var context = namespace.func(4, 5, 6); + st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); + st.end(); + }); + + t.test('called as a constructor', function (st) { + var thunkify = function (value) { + return function () { return value; }; + }; + st.test('returns object value', function (sst) { + var expectedReturnValue = [1, 2, 3]; + var Constructor = functionBind.call(thunkify(expectedReturnValue), null); + var result = new Constructor(); + sst.equal(result, expectedReturnValue); + sst.end(); + }); + + st.test('does not return primitive value', function (sst) { + var Constructor = functionBind.call(thunkify(42), null); + var result = new Constructor(); + sst.notEqual(result, 42); + sst.end(); + }); + + st.test('object from bound constructor is instance of original and bound constructor', function (sst) { + var A = function (x) { + this.name = x || 'A'; + }; + var B = functionBind.call(A, null, 'B'); + + var result = new B(); + sst.ok(result instanceof B, 'result is instance of bound constructor'); + sst.ok(result instanceof A, 'result is instance of original constructor'); + sst.end(); + }); + + st.end(); + }); + + t.end(); +}); + +test('with a context', function (t) { + t.test('with no bound arguments', function (st) { + var args, context; + var boundContext = {}; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, boundContext) + }; + namespace.func(1, 2, 3); + st.equal(context, boundContext, 'binds a context properly'); + st.deepEqual(args, [1, 2, 3], 'supplies passed arguments'); + st.end(); + }); + + t.test('with bound arguments', function (st) { + var args, context; + var boundContext = {}; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + context = this; + }, boundContext, 1, 2, 3) + }; + namespace.func(4, 5, 6); + st.equal(context, boundContext, 'binds a context properly'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments'); + st.end(); + }); + + t.test('returns properly', function (st) { + var boundContext = {}; + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, boundContext) + }; + var context = namespace.func(1, 2, 3); + st.equal(context, boundContext, 'returned context is bound context'); + st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); + st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); + st.end(); + }); + + t.test('returns properly with bound arguments', function (st) { + var boundContext = {}; + var args; + var namespace = { + func: functionBind.call(function () { + args = Array.prototype.slice.call(arguments); + return this; + }, boundContext, 1, 2, 3) + }; + var context = namespace.func(4, 5, 6); + st.equal(context, boundContext, 'returned context is bound context'); + st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); + st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); + st.end(); + }); + + t.test('passes the correct arguments when called as a constructor', function (st) { + var expected = { name: 'Correct' }; + var namespace = { + Func: functionBind.call(function (arg) { + return arg; + }, { name: 'Incorrect' }) + }; + var returned = new namespace.Func(expected); + st.equal(returned, expected, 'returns the right arg when called as a constructor'); + st.end(); + }); + + t.test('has the new instance\'s context when called as a constructor', function (st) { + var actualContext; + var expectedContext = { foo: 'bar' }; + var namespace = { + Func: functionBind.call(function () { + actualContext = this; + }, expectedContext) + }; + var result = new namespace.Func(); + st.equal(result instanceof namespace.Func, true); + st.notEqual(actualContext, expectedContext); + st.end(); + }); + + t.end(); +}); + +test('bound function length', function (t) { + t.test('sets a correct length without thisArg', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }); + st.equal(subject.length, 3); + st.equal(subject(1, 2, 3), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}); + st.equal(subject.length, 3); + st.equal(subject(1, 2, 3), 6); + st.end(); + }); + + t.test('sets a correct length without thisArg and first argument', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1); + st.equal(subject.length, 2); + st.equal(subject(2, 3), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg and first argument', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1); + st.equal(subject.length, 2); + st.equal(subject(2, 3), 6); + st.end(); + }); + + t.test('sets a correct length without thisArg and too many arguments', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4); + st.equal(subject.length, 0); + st.equal(subject(), 6); + st.end(); + }); + + t.test('sets a correct length with thisArg and too many arguments', function (st) { + var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4); + st.equal(subject.length, 0); + st.equal(subject(), 6); + st.end(); + }); +}); diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/es-errors b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/es-errors new file mode 120000 index 0000000..fccce4e --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/es-errors @@ -0,0 +1 @@ +../../es-errors@1.3.0/node_modules/es-errors \ No newline at end of file diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/function-bind b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/function-bind new file mode 120000 index 0000000..62a99de --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/function-bind @@ -0,0 +1 @@ +../../function-bind@1.1.2/node_modules/function-bind \ No newline at end of file diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.eslintrc b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.eslintrc new file mode 100644 index 0000000..8376636 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.eslintrc @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "env": { + "es6": true, + "es2017": true, + "es2020": true, + "es2021": true, + "es2022": true, + }, + + "rules": { + "array-bracket-newline": 0, + "complexity": 0, + "eqeqeq": [2, "allow-null"], + "func-name-matching": 0, + "id-length": 0, + "max-lines": 0, + "max-lines-per-function": [2, 90], + "max-params": [2, 4], + "max-statements": 0, + "max-statements-per-line": [2, { "max": 2 }], + "multiline-comment-style": 0, + "no-magic-numbers": 0, + "sort-keys": 0, + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "new-cap": 0, + }, + }, + ], +} diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.github/FUNDING.yml b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.github/FUNDING.yml new file mode 100644 index 0000000..8e8da0d --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/get-intrinsic +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.nycrc b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/CHANGELOG.md new file mode 100644 index 0000000..96d5397 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/CHANGELOG.md @@ -0,0 +1,143 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.4](https://github.com/ljharb/get-intrinsic/compare/v1.2.3...v1.2.4) - 2024-02-05 + +### Commits + +- [Refactor] use all 7 <+ ES6 Errors from `es-errors` [`bcac811`](https://github.com/ljharb/get-intrinsic/commit/bcac811abdc1c982e12abf848a410d6aae148d14) + +## [v1.2.3](https://github.com/ljharb/get-intrinsic/compare/v1.2.2...v1.2.3) - 2024-02-03 + +### Commits + +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`f11db9c`](https://github.com/ljharb/get-intrinsic/commit/f11db9c4fb97d87bbd53d3c73ac6b3db3613ad3b) +- [Dev Deps] update `aud`, `es-abstract`, `mock-property`, `npmignore` [`b7ac7d1`](https://github.com/ljharb/get-intrinsic/commit/b7ac7d1616fefb03877b1aed0c8f8d61aad32b6c) +- [meta] simplify `exports` [`faa0cc6`](https://github.com/ljharb/get-intrinsic/commit/faa0cc618e2830ffb51a8202490b0c215d965cbc) +- [meta] add missing `engines.node` [`774dd0b`](https://github.com/ljharb/get-intrinsic/commit/774dd0b3e8f741c3f05a6322d124d6087f146af1) +- [Dev Deps] update `tape` [`5828e8e`](https://github.com/ljharb/get-intrinsic/commit/5828e8e4a04e69312e87a36c0ea39428a7a4c3d8) +- [Robustness] use null objects for lookups [`eb9a11f`](https://github.com/ljharb/get-intrinsic/commit/eb9a11fa9eb3e13b193fcc05a7fb814341b1a7b7) +- [meta] add `sideEffects` flag [`89bcc7a`](https://github.com/ljharb/get-intrinsic/commit/89bcc7a42e19bf07b7c21e3094d5ab177109e6d2) + +## [v1.2.2](https://github.com/ljharb/get-intrinsic/compare/v1.2.1...v1.2.2) - 2023-10-20 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `call-bind`, `es-abstract`, `mock-property`, `object-inspect`, `tape` [`f51bcf2`](https://github.com/ljharb/get-intrinsic/commit/f51bcf26412d58d17ce17c91c9afd0ad271f0762) +- [Refactor] use `hasown` instead of `has` [`18d14b7`](https://github.com/ljharb/get-intrinsic/commit/18d14b799bea6b5765e1cec91890830cbcdb0587) +- [Deps] update `function-bind` [`6e109c8`](https://github.com/ljharb/get-intrinsic/commit/6e109c81e03804cc5e7824fb64353cdc3d8ee2c7) + +## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13 + +### Commits + +- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64) +- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5) + +## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19 + +### Commits + +- [actions] update checkout action [`ca6b12f`](https://github.com/ljharb/get-intrinsic/commit/ca6b12f31eaacea4ea3b055e744cd61623385ffb) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `tape` [`41a3727`](https://github.com/ljharb/get-intrinsic/commit/41a3727d0026fa04273ae216a5f8e12eefd72da8) +- [Fix] ensure `Error.prototype` is undeniable [`c511e97`](https://github.com/ljharb/get-intrinsic/commit/c511e97ae99c764c4524b540dee7a70757af8da3) +- [Dev Deps] update `aud`, `es-abstract`, `tape` [`1bef8a8`](https://github.com/ljharb/get-intrinsic/commit/1bef8a8fd439ebb80863199b6189199e0851ac67) +- [Dev Deps] update `aud`, `es-abstract` [`0d41f16`](https://github.com/ljharb/get-intrinsic/commit/0d41f16bcd500bc28b7bfc98043ebf61ea081c26) +- [New] add `BigInt64Array` and `BigUint64Array` [`a6cca25`](https://github.com/ljharb/get-intrinsic/commit/a6cca25f29635889b7e9bd669baf9e04be90e48c) +- [Tests] use `gopd` [`ecf7722`](https://github.com/ljharb/get-intrinsic/commit/ecf7722240d15cfd16edda06acf63359c10fb9bd) + +## [v1.1.3](https://github.com/ljharb/get-intrinsic/compare/v1.1.2...v1.1.3) - 2022-09-12 + +### Commits + +- [Dev Deps] update `es-abstract`, `es-value-fixtures`, `tape` [`07ff291`](https://github.com/ljharb/get-intrinsic/commit/07ff291816406ebe5a12d7f16965bde0942dd688) +- [Fix] properly check for % signs [`50ac176`](https://github.com/ljharb/get-intrinsic/commit/50ac1760fe99c227e64eabde76e9c0e44cd881b5) + +## [v1.1.2](https://github.com/ljharb/get-intrinsic/compare/v1.1.1...v1.1.2) - 2022-06-08 + +### Fixed + +- [Fix] properly validate against extra % signs [`#16`](https://github.com/ljharb/get-intrinsic/issues/16) + +### Commits + +- [actions] reuse common workflows [`0972547`](https://github.com/ljharb/get-intrinsic/commit/0972547efd0abc863fe4c445a6ca7eb4f8c6901d) +- [meta] use `npmignore` to autogenerate an npmignore file [`5ba0b51`](https://github.com/ljharb/get-intrinsic/commit/5ba0b51d8d8d4f1c31d426d74abc0770fd106bad) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c364492`](https://github.com/ljharb/get-intrinsic/commit/c364492af4af51333e6f81c0bf21fd3d602c3661) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es-abstract`, `object-inspect`, `tape` [`dc04dad`](https://github.com/ljharb/get-intrinsic/commit/dc04dad86f6e5608775a2640cb0db5927ae29ed9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `safe-publish-latest`, `tape` [`1c14059`](https://github.com/ljharb/get-intrinsic/commit/1c1405984e86dd2dc9366c15d8a0294a96a146a5) +- [Tests] use `mock-property` [`b396ef0`](https://github.com/ljharb/get-intrinsic/commit/b396ef05bb73b1d699811abd64b0d9b97997fdda) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c2c758d`](https://github.com/ljharb/get-intrinsic/commit/c2c758d3b90af4fef0a76910d8d3c292ec8d1d3e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`29e3c09`](https://github.com/ljharb/get-intrinsic/commit/29e3c091c2bf3e17099969847e8729d0e46896de) +- [actions] update codecov uploader [`8cbc141`](https://github.com/ljharb/get-intrinsic/commit/8cbc1418940d7a8941f3a7985cbc4ac095c5e13d) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`10b6f5c`](https://github.com/ljharb/get-intrinsic/commit/10b6f5c02593fb3680c581d696ac124e30652932) +- [readme] add github actions/codecov badges [`4e25400`](https://github.com/ljharb/get-intrinsic/commit/4e25400d9f51ae9eb059cbe22d9144e70ea214e8) +- [Tests] use `for-each` instead of `foreach` [`c05b957`](https://github.com/ljharb/get-intrinsic/commit/c05b957ad9a7bc7721af7cc9e9be1edbfe057496) +- [Dev Deps] update `es-abstract` [`29b05ae`](https://github.com/ljharb/get-intrinsic/commit/29b05aec3e7330e9ad0b8e0f685a9112c20cdd97) +- [meta] use `prepublishOnly` script for npm 7+ [`95c285d`](https://github.com/ljharb/get-intrinsic/commit/95c285da810516057d3bbfa871176031af38f05d) +- [Deps] update `has-symbols` [`593cb4f`](https://github.com/ljharb/get-intrinsic/commit/593cb4fb38e7922e40e42c183f45274b636424cd) +- [readme] fix repo URLs [`1c8305b`](https://github.com/ljharb/get-intrinsic/commit/1c8305b5365827c9b6fc785434aac0e1328ff2f5) +- [Deps] update `has-symbols` [`c7138b6`](https://github.com/ljharb/get-intrinsic/commit/c7138b6c6d73132d859471fb8c13304e1e7c8b20) +- [Dev Deps] remove unused `has-bigints` [`bd63aff`](https://github.com/ljharb/get-intrinsic/commit/bd63aff6ad8f3a986c557fcda2914187bdaab359) + +## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03 + +### Fixed + +- [meta] export `./package.json` [`#9`](https://github.com/ljharb/get-intrinsic/issues/9) + +### Commits + +- [readme] flesh out the readme; use `evalmd` [`d12f12c`](https://github.com/ljharb/get-intrinsic/commit/d12f12c15345a0a0772cc65a7c64369529abd614) +- [eslint] set up proper globals config [`5a8c098`](https://github.com/ljharb/get-intrinsic/commit/5a8c0984e3319d1ac0e64b102f8ec18b64e79f36) +- [Dev Deps] update `eslint` [`7b9a5c0`](https://github.com/ljharb/get-intrinsic/commit/7b9a5c0d31a90ca1a1234181c74988fb046701cd) + +## [v1.1.0](https://github.com/ljharb/get-intrinsic/compare/v1.0.2...v1.1.0) - 2021-01-25 + +### Fixed + +- [Refactor] delay `Function` eval until syntax-derived values are requested [`#3`](https://github.com/ljharb/get-intrinsic/issues/3) + +### Commits + +- [Tests] migrate tests to Github Actions [`2ab762b`](https://github.com/ljharb/get-intrinsic/commit/2ab762b48164aea8af37a40ba105bbc8246ab8c4) +- [meta] do not publish github action workflow files [`5e7108e`](https://github.com/ljharb/get-intrinsic/commit/5e7108e4768b244d48d9567ba4f8a6cab9c65b8e) +- [Tests] add some coverage [`01ac7a8`](https://github.com/ljharb/get-intrinsic/commit/01ac7a87ac29738567e8524cd8c9e026b1fa8cb3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `call-bind`, `es-abstract`, `tape`; add `call-bind` [`911b672`](https://github.com/ljharb/get-intrinsic/commit/911b672fbffae433a96924c6ce013585e425f4b7) +- [Refactor] rearrange evalled constructors a bit [`7e7e4bf`](https://github.com/ljharb/get-intrinsic/commit/7e7e4bf583f3799c8ac1c6c5e10d2cb553957347) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`0199968`](https://github.com/ljharb/get-intrinsic/commit/01999687a263ffce0a3cb011dfbcb761754aedbc) + +## [v1.0.2](https://github.com/ljharb/get-intrinsic/compare/v1.0.1...v1.0.2) - 2020-12-17 + +### Commits + +- [Fix] Throw for non‑existent intrinsics [`68f873b`](https://github.com/ljharb/get-intrinsic/commit/68f873b013c732a05ad6f5fc54f697e55515461b) +- [Fix] Throw for non‑existent segments in the intrinsic path [`8325dee`](https://github.com/ljharb/get-intrinsic/commit/8325deee43128f3654d3399aa9591741ebe17b21) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-bigints`, `object-inspect` [`0c227a7`](https://github.com/ljharb/get-intrinsic/commit/0c227a7d8b629166f25715fd242553892e458525) +- [meta] do not lint coverage output [`70d2419`](https://github.com/ljharb/get-intrinsic/commit/70d24199b620043cd9110fc5f426d214ebe21dc9) + +## [v1.0.1](https://github.com/ljharb/get-intrinsic/compare/v1.0.0...v1.0.1) - 2020-10-30 + +### Commits + +- [Tests] gather coverage data on every job [`d1d280d`](https://github.com/ljharb/get-intrinsic/commit/d1d280dec714e3f0519cc877dbcb193057d9cac6) +- [Fix] add missing dependencies [`5031771`](https://github.com/ljharb/get-intrinsic/commit/5031771bb1095b38be88ce7c41d5de88718e432e) +- [Tests] use `es-value-fixtures` [`af48765`](https://github.com/ljharb/get-intrinsic/commit/af48765a23c5323fb0b6b38dbf00eb5099c7bebc) + +## v1.0.0 - 2020-10-29 + +### Commits + +- Implementation [`bbce57c`](https://github.com/ljharb/get-intrinsic/commit/bbce57c6f33d05b2d8d3efa273ceeb3ee01127bb) +- Tests [`17b4f0d`](https://github.com/ljharb/get-intrinsic/commit/17b4f0d56dea6b4059b56fc30ef3ee4d9500ebc2) +- Initial commit [`3153294`](https://github.com/ljharb/get-intrinsic/commit/31532948de363b0a27dd9fd4649e7b7028ec4b44) +- npm init [`fb326c4`](https://github.com/ljharb/get-intrinsic/commit/fb326c4d2817c8419ec31de1295f06bb268a7902) +- [meta] add Automatic Rebase and Require Allow Edits workflows [`48862fb`](https://github.com/ljharb/get-intrinsic/commit/48862fb2508c8f6a57968e6d08b7c883afc9d550) +- [meta] add `auto-changelog` [`5f28ad0`](https://github.com/ljharb/get-intrinsic/commit/5f28ad019e060a353d8028f9f2591a9cc93074a1) +- [meta] add "funding"; create `FUNDING.yml` [`c2bbdde`](https://github.com/ljharb/get-intrinsic/commit/c2bbddeba73a875be61484ee4680b129a6d4e0a1) +- [Tests] add `npm run lint` [`0a84b98`](https://github.com/ljharb/get-intrinsic/commit/0a84b98b22b7cf7a748666f705b0003a493c35fd) +- Only apps should have lockfiles [`9586c75`](https://github.com/ljharb/get-intrinsic/commit/9586c75866c1ee678e4d5d4dbbdef6997e511b05) diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/LICENSE b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/LICENSE new file mode 100644 index 0000000..48f05d0 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/README.md b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/README.md new file mode 100644 index 0000000..3aa0bba --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/README.md @@ -0,0 +1,71 @@ +# get-intrinsic [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Get and robustly cache all JS language-level intrinsics at first require time. + +See the syntax described [in the JS spec](https://tc39.es/ecma262/#sec-well-known-intrinsic-objects) for reference. + +## Example + +```js +var GetIntrinsic = require('get-intrinsic'); +var assert = require('assert'); + +// static methods +assert.equal(GetIntrinsic('%Math.pow%'), Math.pow); +assert.equal(Math.pow(2, 3), 8); +assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); +delete Math.pow; +assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8); + +// instance methods +var arr = [1]; +assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push); +assert.deepEqual(arr, [1]); + +arr.push(2); +assert.deepEqual(arr, [1, 2]); + +GetIntrinsic('%Array.prototype.push%').call(arr, 3); +assert.deepEqual(arr, [1, 2, 3]); + +delete Array.prototype.push; +GetIntrinsic('%Array.prototype.push%').call(arr, 4); +assert.deepEqual(arr, [1, 2, 3, 4]); + +// missing features +delete JSON.parse; // to simulate a real intrinsic that is missing in the environment +assert.throws(() => GetIntrinsic('%JSON.parse%')); +assert.equal(undefined, GetIntrinsic('%JSON.parse%', true)); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +[package-url]: https://npmjs.org/package/get-intrinsic +[npm-version-svg]: https://versionbadg.es/ljharb/get-intrinsic.svg +[deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg +[deps-url]: https://david-dm.org/ljharb/get-intrinsic +[dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/get-intrinsic#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/get-intrinsic.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/get-intrinsic.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg +[downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic +[codecov-image]: https://codecov.io/gh/ljharb/get-intrinsic/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/get-intrinsic/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/get-intrinsic +[actions-url]: https://github.com/ljharb/get-intrinsic/actions diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js new file mode 100644 index 0000000..c25e2c4 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js @@ -0,0 +1,359 @@ +'use strict'; + +var undefined; + +var $Error = require('es-errors'); +var $EvalError = require('es-errors/eval'); +var $RangeError = require('es-errors/range'); +var $ReferenceError = require('es-errors/ref'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $URIError = require('es-errors/uri'); + +var $Function = Function; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = Object.getOwnPropertyDescriptor; +if ($gOPD) { + try { + $gOPD({}, ''); + } catch (e) { + $gOPD = null; // this is IE 8, which has a broken gOPD + } +} + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = require('has-symbols')(); +var hasProto = require('has-proto')(); + +var getProto = Object.getPrototypeOf || ( + hasProto + ? function (x) { return x.__proto__; } // eslint-disable-line no-proto + : null +); + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + __proto__: null, + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': $Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': $EvalError, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': Object, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': $RangeError, + '%ReferenceError%': $ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': $URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet +}; + +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + __proto__: null, + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = require('function-bind'); +var hasOwn = require('hasown'); +var $concat = bind.call(Function.call, Array.prototype.concat); +var $spliceApply = bind.call(Function.apply, Array.prototype.splice); +var $replace = bind.call(Function.call, String.prototype.replace); +var $strSlice = bind.call(Function.call, String.prototype.slice); +var $exec = bind.call(Function.call, RegExp.prototype.exec); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/package.json b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/package.json new file mode 100644 index 0000000..568dff9 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/package.json @@ -0,0 +1,93 @@ +{ + "name": "get-intrinsic", + "version": "1.2.4", + "description": "Get and robustly cache all JS language-level intrinsics at first require time", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-intrinsic.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "intrinsic", + "getintrinsic", + "es-abstract" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/get-intrinsic/issues" + }, + "homepage": "https://github.com/ljharb/get-intrinsic#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "call-bind": "^1.0.5", + "es-abstract": "^1.22.3", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "mock-property": "^1.0.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "testling": { + "files": "test/GetIntrinsic.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + } +} diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/test/GetIntrinsic.js new file mode 100644 index 0000000..1cc08e0 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/test/GetIntrinsic.js @@ -0,0 +1,274 @@ +'use strict'; + +var GetIntrinsic = require('../'); + +var test = require('tape'); +var forEach = require('for-each'); +var debug = require('object-inspect'); +var generatorFns = require('make-generator-function')(); +var asyncFns = require('make-async-function').list(); +var asyncGenFns = require('make-async-generator-function')(); +var mockProperty = require('mock-property'); + +var callBound = require('call-bind/callBound'); +var v = require('es-value-fixtures'); +var $gOPD = require('gopd'); +var DefinePropertyOrThrow = require('es-abstract/2021/DefinePropertyOrThrow'); + +var $isProto = callBound('%Object.prototype.isPrototypeOf%'); + +test('export', function (t) { + t.equal(typeof GetIntrinsic, 'function', 'it is a function'); + t.equal(GetIntrinsic.length, 2, 'function has length of 2'); + + t.end(); +}); + +test('throws', function (t) { + t['throws']( + function () { GetIntrinsic('not an intrinsic'); }, + SyntaxError, + 'nonexistent intrinsic throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic(''); }, + TypeError, + 'empty string intrinsic throws a type error' + ); + + t['throws']( + function () { GetIntrinsic('.'); }, + SyntaxError, + '"just a dot" intrinsic throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic('%String'); }, + SyntaxError, + 'Leading % without trailing % throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic('String%'); }, + SyntaxError, + 'Trailing % without leading % throws a syntax error' + ); + + t['throws']( + function () { GetIntrinsic("String['prototype]"); }, + SyntaxError, + 'Dynamic property access is disallowed for intrinsics (unterminated string)' + ); + + t['throws']( + function () { GetIntrinsic('%Proxy.prototype.undefined%'); }, + TypeError, + "Throws when middle part doesn't exist (%Proxy.prototype.undefined%)" + ); + + t['throws']( + function () { GetIntrinsic('%Array.prototype%garbage%'); }, + SyntaxError, + 'Throws with extra percent signs' + ); + + t['throws']( + function () { GetIntrinsic('%Array.prototype%push%'); }, + SyntaxError, + 'Throws with extra percent signs, even on an existing intrinsic' + ); + + forEach(v.nonStrings, function (nonString) { + t['throws']( + function () { GetIntrinsic(nonString); }, + TypeError, + debug(nonString) + ' is not a String' + ); + }); + + forEach(v.nonBooleans, function (nonBoolean) { + t['throws']( + function () { GetIntrinsic('%', nonBoolean); }, + TypeError, + debug(nonBoolean) + ' is not a Boolean' + ); + }); + + forEach([ + 'toString', + 'propertyIsEnumerable', + 'hasOwnProperty' + ], function (objectProtoMember) { + t['throws']( + function () { GetIntrinsic(objectProtoMember); }, + SyntaxError, + debug(objectProtoMember) + ' is not an intrinsic' + ); + }); + + t.end(); +}); + +test('base intrinsics', function (t) { + t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object'); + t.equal(GetIntrinsic('Object'), Object, 'Object yields Object'); + t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array'); + t.equal(GetIntrinsic('Array'), Array, 'Array yields Array'); + + t.end(); +}); + +test('dotted paths', function (t) { + t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString'); + t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString'); + t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push'); + t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push'); + + test('underscore paths are aliases for dotted paths', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { + var original = GetIntrinsic('%ObjProto_toString%'); + + forEach([ + '%Object.prototype.toString%', + 'Object.prototype.toString', + '%ObjectPrototype.toString%', + 'ObjectPrototype.toString', + '%ObjProto_toString%', + 'ObjProto_toString' + ], function (name) { + DefinePropertyOrThrow(Object.prototype, 'toString', { + '[[Value]]': function toString() { + return original.apply(this, arguments); + } + }); + st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString'); + }); + + DefinePropertyOrThrow(Object.prototype, 'toString', { '[[Value]]': original }); + st.end(); + }); + + test('dotted paths cache', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { + var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%'); + + forEach([ + '%Object.prototype.propertyIsEnumerable%', + 'Object.prototype.propertyIsEnumerable', + '%ObjectPrototype.propertyIsEnumerable%', + 'ObjectPrototype.propertyIsEnumerable' + ], function (name) { + var restore = mockProperty(Object.prototype, 'propertyIsEnumerable', { + value: function propertyIsEnumerable() { + return original.apply(this, arguments); + } + }); + st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable'); + + restore(); + }); + + st.end(); + }); + + test('dotted path reports correct error', function (st) { + st['throws'](function () { + GetIntrinsic('%NonExistentIntrinsic.prototype.property%'); + }, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%'); + + st['throws'](function () { + GetIntrinsic('%NonExistentIntrinsicPrototype.property%'); + }, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%'); + + st.end(); + }); + + t.end(); +}); + +test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) { + var actual = $gOPD(Map.prototype, 'size'); + t.ok(actual, 'Map.prototype.size has a descriptor'); + t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function'); + t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it'); + t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it'); + + t.end(); +}); + +test('generator functions', { skip: !generatorFns.length }, function (t) { + var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%'); + var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%'); + var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%'); + + forEach(generatorFns, function (genFn) { + var fnName = genFn.name; + fnName = fnName ? "'" + fnName + "'" : 'genFn'; + + t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%'); + t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName); + t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype'); + }); + + t.end(); +}); + +test('async functions', { skip: !asyncFns.length }, function (t) { + var $AsyncFunction = GetIntrinsic('%AsyncFunction%'); + var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%'); + + forEach(asyncFns, function (asyncFn) { + var fnName = asyncFn.name; + fnName = fnName ? "'" + fnName + "'" : 'asyncFn'; + + t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%'); + t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName); + }); + + t.end(); +}); + +test('async generator functions', { skip: asyncGenFns.length === 0 }, function (t) { + var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%'); + var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%'); + var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%'); + + forEach(asyncGenFns, function (asyncGenFn) { + var fnName = asyncGenFn.name; + fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn'; + + t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%'); + t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName); + t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype'); + }); + + t.end(); +}); + +test('%ThrowTypeError%', function (t) { + var $ThrowTypeError = GetIntrinsic('%ThrowTypeError%'); + + t.equal(typeof $ThrowTypeError, 'function', 'is a function'); + t['throws']( + $ThrowTypeError, + TypeError, + '%ThrowTypeError% throws a TypeError' + ); + + t.end(); +}); + +test('allowMissing', { skip: asyncGenFns.length > 0 }, function (t) { + t['throws']( + function () { GetIntrinsic('%AsyncGeneratorPrototype%'); }, + TypeError, + 'throws when missing' + ); + + t.equal( + GetIntrinsic('%AsyncGeneratorPrototype%', true), + undefined, + 'does not throw when allowMissing' + ); + + t.end(); +}); diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-proto b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-proto new file mode 120000 index 0000000..150bb15 --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-proto @@ -0,0 +1 @@ +../../has-proto@1.0.3/node_modules/has-proto \ No newline at end of file diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-symbols b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-symbols new file mode 120000 index 0000000..15f777f --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/has-symbols @@ -0,0 +1 @@ +../../has-symbols@1.0.3/node_modules/has-symbols \ No newline at end of file diff --git a/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/hasown b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/hasown new file mode 120000 index 0000000..22d6cee --- /dev/null +++ b/node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/hasown @@ -0,0 +1 @@ +../../hasown@2.0.2/node_modules/hasown \ No newline at end of file diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/get-intrinsic b/node_modules/.pnpm/gopd@1.0.1/node_modules/get-intrinsic new file mode 120000 index 0000000..ae6df74 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/get-intrinsic @@ -0,0 +1 @@ +../../get-intrinsic@1.2.4/node_modules/get-intrinsic \ No newline at end of file diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.eslintrc b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.eslintrc new file mode 100644 index 0000000..e2550c0 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-style": [2, "declaration"], + "id-length": 0, + "multiline-comment-style": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.github/FUNDING.yml b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.github/FUNDING.yml new file mode 100644 index 0000000..94a44a8 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/gopd +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/CHANGELOG.md b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/CHANGELOG.md new file mode 100644 index 0000000..f111eb1 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/CHANGELOG.md @@ -0,0 +1,25 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/gopd/compare/v1.0.0...v1.0.1) - 2022-11-01 + +### Commits + +- [Fix] actually export gOPD instead of dP [`4b624bf`](https://github.com/ljharb/gopd/commit/4b624bfbeff788c5e3ff16d9443a83627847234f) + +## v1.0.0 - 2022-11-01 + +### Commits + +- Initial implementation, tests, readme [`0911e01`](https://github.com/ljharb/gopd/commit/0911e012cd642092bd88b732c161c58bf4f20bea) +- Initial commit [`b84e33f`](https://github.com/ljharb/gopd/commit/b84e33f5808a805ac57ff88d4247ad935569acbe) +- [actions] add reusable workflows [`12ae28a`](https://github.com/ljharb/gopd/commit/12ae28ae5f50f86e750215b6e2188901646d0119) +- npm init [`280118b`](https://github.com/ljharb/gopd/commit/280118badb45c80b4483836b5cb5315bddf6e582) +- [meta] add `auto-changelog` [`bb78de5`](https://github.com/ljharb/gopd/commit/bb78de5639a180747fb290c28912beaaf1615709) +- [meta] create FUNDING.yml; add `funding` in package.json [`11c22e6`](https://github.com/ljharb/gopd/commit/11c22e6355bb01f24e7fac4c9bb3055eb5b25002) +- [meta] use `npmignore` to autogenerate an npmignore file [`4f4537a`](https://github.com/ljharb/gopd/commit/4f4537a843b39f698c52f072845092e6fca345bb) +- Only apps should have lockfiles [`c567022`](https://github.com/ljharb/gopd/commit/c567022a18573aa7951cf5399445d9840e23e98b) diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/LICENSE b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/LICENSE new file mode 100644 index 0000000..6abfe14 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/README.md b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/README.md new file mode 100644 index 0000000..784e56a --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/README.md @@ -0,0 +1,40 @@ +# gopd [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation. + +## Usage + +```javascript +var gOPD = require('gopd'); +var assert = require('assert'); + +if (gOPD) { + assert.equal(typeof gOPD, 'function', 'descriptors supported'); + // use gOPD like Object.getOwnPropertyDescriptor here +} else { + assert.ok(!gOPD, 'descriptors not supported'); +} +``` + +[package-url]: https://npmjs.org/package/gopd +[npm-version-svg]: https://versionbadg.es/ljharb/gopd.svg +[deps-svg]: https://david-dm.org/ljharb/gopd.svg +[deps-url]: https://david-dm.org/ljharb/gopd +[dev-deps-svg]: https://david-dm.org/ljharb/gopd/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/gopd#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/gopd.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/gopd.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/gopd.svg +[downloads-url]: https://npm-stat.com/charts.html?package=gopd +[codecov-image]: https://codecov.io/gh/ljharb/gopd/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/gopd/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/gopd +[actions-url]: https://github.com/ljharb/gopd/actions diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js new file mode 100644 index 0000000..fb6d3bb --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); + +if ($gOPD) { + try { + $gOPD([], 'length'); + } catch (e) { + // IE 8 has a broken gOPD + $gOPD = null; + } +} + +module.exports = $gOPD; diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/package.json b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/package.json new file mode 100644 index 0000000..d5e1fa4 --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/package.json @@ -0,0 +1,71 @@ +{ + "name": "gopd", + "version": "1.0.1", + "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "lint": "eslint --ext=js,mjs .", + "postlint": "evalmd README.md", + "pretest": "npm run lint", + "tests-only": "tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/gopd.git" + }, + "keywords": [ + "ecmascript", + "javascript", + "getownpropertydescriptor", + "property", + "descriptor" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/gopd/issues" + }, + "homepage": "https://github.com/ljharb/gopd#readme", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.1", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.1" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/test/index.js b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/test/index.js new file mode 100644 index 0000000..0376bfb --- /dev/null +++ b/node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/test/index.js @@ -0,0 +1,35 @@ +'use strict'; + +var test = require('tape'); +var gOPD = require('../'); + +test('gOPD', function (t) { + t.test('supported', { skip: !gOPD }, function (st) { + st.equal(typeof gOPD, 'function', 'is a function'); + + var obj = { x: 1 }; + st.ok('x' in obj, 'property exists'); + + var desc = gOPD(obj, 'x'); + st.deepEqual( + desc, + { + configurable: true, + enumerable: true, + value: 1, + writable: true + }, + 'descriptor is as expected' + ); + + st.end(); + }); + + t.test('not supported', { skip: gOPD }, function (st) { + st.notOk(gOPD, 'is falsy'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.d.ts b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.d.ts new file mode 100644 index 0000000..a0a48c8 --- /dev/null +++ b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.d.ts @@ -0,0 +1,39 @@ +/** +Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag. + +@param flag - CLI flag to look for. The `--` prefix is optional. +@param argv - CLI arguments. Default: `process.argv`. +@returns Whether the flag exists. + +@example +``` +// $ ts-node foo.ts -f --unicorn --foo=bar -- --rainbow + +// foo.ts +import hasFlag = require('has-flag'); + +hasFlag('unicorn'); +//=> true + +hasFlag('--unicorn'); +//=> true + +hasFlag('f'); +//=> true + +hasFlag('-f'); +//=> true + +hasFlag('foo=bar'); +//=> true + +hasFlag('foo'); +//=> false + +hasFlag('rainbow'); +//=> false +``` +*/ +declare function hasFlag(flag: string, argv?: string[]): boolean; + +export = hasFlag; diff --git a/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js new file mode 100644 index 0000000..b6f80b1 --- /dev/null +++ b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +}; diff --git a/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/license b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json new file mode 100644 index 0000000..a9cba4b --- /dev/null +++ b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json @@ -0,0 +1,46 @@ +{ + "name": "has-flag", + "version": "4.0.0", + "description": "Check if argv has a specific flag", + "license": "MIT", + "repository": "sindresorhus/has-flag", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "has", + "check", + "detect", + "contains", + "find", + "flag", + "cli", + "command-line", + "argv", + "process", + "arg", + "args", + "argument", + "arguments", + "getopt", + "minimist", + "optimist" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/readme.md b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/readme.md new file mode 100644 index 0000000..3f72dff --- /dev/null +++ b/node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/readme.md @@ -0,0 +1,89 @@ +# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag) + +> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag + +Correctly stops looking after an `--` argument terminator. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- + + +## Install + +``` +$ npm install has-flag +``` + + +## Usage + +```js +// foo.js +const hasFlag = require('has-flag'); + +hasFlag('unicorn'); +//=> true + +hasFlag('--unicorn'); +//=> true + +hasFlag('f'); +//=> true + +hasFlag('-f'); +//=> true + +hasFlag('foo=bar'); +//=> true + +hasFlag('foo'); +//=> false + +hasFlag('rainbow'); +//=> false +``` + +``` +$ node foo.js -f --unicorn --foo=bar -- --rainbow +``` + + +## API + +### hasFlag(flag, [argv]) + +Returns a boolean for whether the flag exists. + +#### flag + +Type: `string` + +CLI flag to look for. The `--` prefix is optional. + +#### argv + +Type: `string[]`
+Default: `process.argv` + +CLI arguments. + + +## Security + +To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/es-define-property b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/es-define-property new file mode 120000 index 0000000..9d79135 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/es-define-property @@ -0,0 +1 @@ +../../es-define-property@1.0.0/node_modules/es-define-property \ No newline at end of file diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.eslintrc b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.eslintrc new file mode 100644 index 0000000..2fcc002 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.eslintrc @@ -0,0 +1,13 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "id-length": 0, + "new-cap": [2, { + "capIsNewExceptions": ["GetIntrinsic"], + }], + }, +} diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.github/FUNDING.yml b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.github/FUNDING.yml new file mode 100644 index 0000000..817aacf --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-property-descriptors +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.nycrc b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/CHANGELOG.md b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/CHANGELOG.md new file mode 100644 index 0000000..19c8a95 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/CHANGELOG.md @@ -0,0 +1,35 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/inspect-js/has-property-descriptors/compare/v1.0.1...v1.0.2) - 2024-02-12 + +### Commits + +- [Refactor] use `es-define-property` [`f93a8c8`](https://github.com/inspect-js/has-property-descriptors/commit/f93a8c85eba70cbceab500f2619fb5cce73a1805) +- [Dev Deps] update `aud`, `npmignore`, `tape` [`42b0c9d`](https://github.com/inspect-js/has-property-descriptors/commit/42b0c9d1c23e747755f0f2924923c418ea34a9ee) +- [Deps] update `get-intrinsic` [`35e9b46`](https://github.com/inspect-js/has-property-descriptors/commit/35e9b46a7f14331bf0de98b644dd803676746037) + +## [v1.0.1](https://github.com/inspect-js/has-property-descriptors/compare/v1.0.0...v1.0.1) - 2023-10-20 + +### Commits + +- [meta] use `npmignore` to autogenerate an npmignore file [`5bbf4da`](https://github.com/inspect-js/has-property-descriptors/commit/5bbf4dae1b58950d87bb3af508bee7513e640868) +- [actions] update rebase action to use reusable workflow [`3a5585b`](https://github.com/inspect-js/has-property-descriptors/commit/3a5585bf74988f71a8f59e67a07d594e62c51fd8) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`e5c1212`](https://github.com/inspect-js/has-property-descriptors/commit/e5c1212048a8fda549794c47863724ca60b89cae) +- [Dev Deps] update `aud`, `tape` [`e942917`](https://github.com/inspect-js/has-property-descriptors/commit/e942917b6c2f7c090d5623048989cf20d0834ebf) +- [Deps] update `get-intrinsic` [`f4a44ec`](https://github.com/inspect-js/has-property-descriptors/commit/f4a44ec6d94146fa6c550d3c15c31a2062c83ef4) +- [Deps] update `get-intrinsic` [`eeb275b`](https://github.com/inspect-js/has-property-descriptors/commit/eeb275b473e5d72ca843b61ca25cfcb06a5d4300) + +## v1.0.0 - 2022-04-14 + +### Commits + +- Initial implementation, tests [`303559f`](https://github.com/inspect-js/has-property-descriptors/commit/303559f2a72dfe7111573a1aec475ed4a184c35a) +- Initial commit [`3a7ca2d`](https://github.com/inspect-js/has-property-descriptors/commit/3a7ca2dc49f1fff0279a28bb16265e7615e14749) +- read me [`dd73dce`](https://github.com/inspect-js/has-property-descriptors/commit/dd73dce09d89d0f7a4a6e3b1e562a506f979a767) +- npm init [`c1e6557`](https://github.com/inspect-js/has-property-descriptors/commit/c1e655779de632d68cb944c50da6b71bcb7b8c85) +- Only apps should have lockfiles [`e72f7c6`](https://github.com/inspect-js/has-property-descriptors/commit/e72f7c68de534b2d273ee665f8b18d4ecc7f70b0) diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/LICENSE b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/LICENSE new file mode 100644 index 0000000..2e7b9a3 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Inspect JS + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/README.md b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/README.md new file mode 100644 index 0000000..d81fbd9 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/README.md @@ -0,0 +1,43 @@ +# has-property-descriptors [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD. + +## Example + +```js +var hasPropertyDescriptors = require('has-property-descriptors'); +var assert = require('assert'); + +assert.equal(hasPropertyDescriptors(), true); // will be `false` in IE 6-8, and ES5 engines + +// Arrays can not have their length `[[Defined]]` in some engines +assert.equal(hasPropertyDescriptors.hasArrayLengthDefineBug(), false); // will be `true` in Firefox 4-22, and node v0.6 +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/has-property-descriptors +[npm-version-svg]: https://versionbadg.es/inspect-js/has-property-descriptors.svg +[deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors.svg +[deps-url]: https://david-dm.org/inspect-js/has-property-descriptors +[dev-deps-svg]: https://david-dm.org/inspect-js/has-property-descriptors/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/has-property-descriptors#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/has-property-descriptors.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-property-descriptors.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-property-descriptors.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-property-descriptors +[codecov-image]: https://codecov.io/gh/inspect-js/has-property-descriptors/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-property-descriptors/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-property-descriptors +[actions-url]: https://github.com/inspect-js/has-property-descriptors/actions diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js new file mode 100644 index 0000000..0480437 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js @@ -0,0 +1,22 @@ +'use strict'; + +var $defineProperty = require('es-define-property'); + +var hasPropertyDescriptors = function hasPropertyDescriptors() { + return !!$defineProperty; +}; + +hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + // node v0.6 has a bug where array lengths can be Set but not Defined + if (!$defineProperty) { + return null; + } + try { + return $defineProperty([], 'length', { value: 1 }).length !== 1; + } catch (e) { + // In Firefox 4-22, defining length on an array throws an exception. + return true; + } +}; + +module.exports = hasPropertyDescriptors; diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/package.json b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/package.json new file mode 100644 index 0000000..7e70218 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/package.json @@ -0,0 +1,77 @@ +{ + "name": "has-property-descriptors", + "version": "1.0.2", + "description": "Does the environment have full property descriptor support? Handles IE 8's broken defineProperty/gOPD.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/has-property-descriptors.git" + }, + "keywords": [ + "property", + "descriptors", + "has", + "environment", + "env", + "defineProperty", + "getOwnPropertyDescriptor" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/has-property-descriptors/issues" + }, + "homepage": "https://github.com/inspect-js/has-property-descriptors#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4" + }, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/test/index.js b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/test/index.js new file mode 100644 index 0000000..7f02bd3 --- /dev/null +++ b/node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/test/index.js @@ -0,0 +1,57 @@ +'use strict'; + +var test = require('tape'); + +var hasPropertyDescriptors = require('../'); + +var sentinel = {}; + +test('hasPropertyDescriptors', function (t) { + t.equal(typeof hasPropertyDescriptors, 'function', 'is a function'); + t.equal(typeof hasPropertyDescriptors.hasArrayLengthDefineBug, 'function', '`hasArrayLengthDefineBug` property is a function'); + + var yes = hasPropertyDescriptors(); + t.test('property descriptors', { skip: !yes }, function (st) { + var o = { a: sentinel }; + + st.deepEqual( + Object.getOwnPropertyDescriptor(o, 'a'), + { + configurable: true, + enumerable: true, + value: sentinel, + writable: true + }, + 'has expected property descriptor' + ); + + Object.defineProperty(o, 'a', { enumerable: false, writable: false }); + + st.deepEqual( + Object.getOwnPropertyDescriptor(o, 'a'), + { + configurable: true, + enumerable: false, + value: sentinel, + writable: false + }, + 'has expected property descriptor after [[Define]]' + ); + + st.end(); + }); + + var arrayBug = hasPropertyDescriptors.hasArrayLengthDefineBug(); + t.test('defining array lengths', { skip: !yes || arrayBug }, function (st) { + var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays + st.equal(arr.length, 3, 'array starts with length 3'); + + Object.defineProperty(arr, 'length', { value: 5 }); + + st.equal(arr.length, 5, 'array ends with length 5'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.eslintrc b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.github/FUNDING.yml b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.github/FUNDING.yml new file mode 100644 index 0000000..613705c --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-proto +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/CHANGELOG.md b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/CHANGELOG.md new file mode 100644 index 0000000..6690f28 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/CHANGELOG.md @@ -0,0 +1,38 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.3](https://github.com/inspect-js/has-proto/compare/v1.0.2...v1.0.3) - 2024-02-19 + +### Commits + +- [types] add missing declaration file [`26ecade`](https://github.com/inspect-js/has-proto/commit/26ecade05d253bb5dc376945ee3186d1fbe334f8) + +## [v1.0.2](https://github.com/inspect-js/has-proto/compare/v1.0.1...v1.0.2) - 2024-02-19 + +### Commits + +- add types [`6435262`](https://github.com/inspect-js/has-proto/commit/64352626cf511c0276d5f4bb6be770a0bf0f8524) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`f16a5e4`](https://github.com/inspect-js/has-proto/commit/f16a5e4121651e551271419f9d60fdd3561fd82c) +- [Refactor] tiny cleanup [`d1f1a4b`](https://github.com/inspect-js/has-proto/commit/d1f1a4bdc135f115a10f148ce302676224534702) +- [meta] add `sideEffects` flag [`e7ab1a6`](https://github.com/inspect-js/has-proto/commit/e7ab1a6f153b3e80dee68d1748b71e46767a0531) + +## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21 + +### Commits + +- [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc) +- [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f) +- [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f) + +## v1.0.0 - 2022-12-12 + +### Commits + +- Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc) +- Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f) +- npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10) +- Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a) diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/LICENSE b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/LICENSE new file mode 100644 index 0000000..2e7b9a3 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Inspect JS + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/README.md b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/README.md new file mode 100644 index 0000000..1456765 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/README.md @@ -0,0 +1,38 @@ +# has-proto [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`? + +## Example + +```js +var hasProto = require('has-proto'); +var assert = require('assert'); + +assert.equal(typeof hasProto(), 'boolean'); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/has-proto +[npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg +[deps-svg]: https://david-dm.org/inspect-js/has-proto.svg +[deps-url]: https://david-dm.org/inspect-js/has-proto +[dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-proto.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-proto.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-proto +[codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto +[actions-url]: https://github.com/inspect-js/has-proto/actions diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.d.ts b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.d.ts new file mode 100644 index 0000000..cfed695 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.d.ts @@ -0,0 +1,3 @@ +declare function hasProto(): boolean; + +export = hasProto; \ No newline at end of file diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js new file mode 100644 index 0000000..d3c8a0a --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var test = { + __proto__: null, + foo: {} +}; + +var $Object = Object; + +/** @type {import('.')} */ +module.exports = function hasProto() { + // @ts-expect-error: TS errors on an inherited property for some reason + return { __proto__: test }.foo === test.foo + && !(test instanceof $Object); +}; diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/package.json b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/package.json new file mode 100644 index 0000000..9d37e4e --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/package.json @@ -0,0 +1,78 @@ +{ + "name": "has-proto", + "version": "1.0.3", + "description": "Does this environment have the ability to get the [[Prototype]] of an object on creation with `__proto__`?", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p .", + "pretest": "npm run lint", + "tests-only": "tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/has-proto.git" + }, + "keywords": [ + "prototype", + "proto", + "set", + "get", + "__proto__", + "getPrototypeOf", + "setPrototypeOf", + "has" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/has-proto/issues" + }, + "homepage": "https://github.com/inspect-js/has-proto#readme", + "testling": { + "files": "test/index.js" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.5", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/test/index.js b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/test/index.js new file mode 100644 index 0000000..5da1a3a --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/test/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var test = require('tape'); +var hasProto = require('../'); + +test('hasProto', function (t) { + var result = hasProto(); + t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')'); + + var obj = { __proto__: null }; + if (result) { + t.notOk('toString' in obj, 'null object lacks toString'); + } else { + t.ok('toString' in obj, 'without proto, null object has toString'); + t.equal(obj.__proto__, null); // eslint-disable-line no-proto + } + + t.end(); +}); diff --git a/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/tsconfig.json b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/tsconfig.json new file mode 100644 index 0000000..2002ce5 --- /dev/null +++ b/node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + //"skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage" + ] +} diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.eslintrc b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.eslintrc new file mode 100644 index 0000000..2d9a66a --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-statements-per-line": [2, { "max": 2 }], + "no-magic-numbers": 0, + "multiline-comment-style": 0, + } +} diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.github/FUNDING.yml b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.github/FUNDING.yml new file mode 100644 index 0000000..04cf87e --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-symbols +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.nycrc b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/CHANGELOG.md b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/CHANGELOG.md new file mode 100644 index 0000000..cd532a2 --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/CHANGELOG.md @@ -0,0 +1,75 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.3](https://github.com/inspect-js/has-symbols/compare/v1.0.2...v1.0.3) - 2022-03-01 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`518b28f`](https://github.com/inspect-js/has-symbols/commit/518b28f6c5a516cbccae30794e40aa9f738b1693) +- [meta] add `bugs` and `homepage` fields; reorder package.json [`c480b13`](https://github.com/inspect-js/has-symbols/commit/c480b13fd6802b557e1cef9749872cb5fdeef744) +- [actions] reuse common workflows [`01d0ee0`](https://github.com/inspect-js/has-symbols/commit/01d0ee0a8d97c0947f5edb73eb722027a77b2b07) +- [actions] update codecov uploader [`6424ebe`](https://github.com/inspect-js/has-symbols/commit/6424ebe86b2c9c7c3d2e9bd4413a4e4f168cb275) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`dfa7e7f`](https://github.com/inspect-js/has-symbols/commit/dfa7e7ff38b594645d8c8222aab895157fa7e282) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0c8d436`](https://github.com/inspect-js/has-symbols/commit/0c8d43685c45189cea9018191d4fd7eca91c9d02) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`9026554`](https://github.com/inspect-js/has-symbols/commit/902655442a1bf88e72b42345494ef0c60f5d36ab) +- [readme] add actions and codecov badges [`eaa9682`](https://github.com/inspect-js/has-symbols/commit/eaa9682f990f481d3acf7a1c7600bec36f7b3adc) +- [Dev Deps] update `eslint`, `tape` [`bc7a3ba`](https://github.com/inspect-js/has-symbols/commit/bc7a3ba46f27b7743f8a2579732d59d1b9ac791e) +- [Dev Deps] update `eslint`, `auto-changelog` [`0ace00a`](https://github.com/inspect-js/has-symbols/commit/0ace00af08a88cdd1e6ce0d60357d941c60c2d9f) +- [meta] use `prepublishOnly` script for npm 7+ [`093f72b`](https://github.com/inspect-js/has-symbols/commit/093f72bc2b0ed00c781f444922a5034257bf561d) +- [Tests] test on all 16 minors [`9b80d3d`](https://github.com/inspect-js/has-symbols/commit/9b80d3d9102529f04c20ec5b1fcc6e38426c6b03) + +## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27 + +### Fixed + +- [Fix] use a universal way to get the original Symbol [`#11`](https://github.com/inspect-js/has-symbols/issues/11) + +### Commits + +- [Tests] migrate tests to Github Actions [`90ae798`](https://github.com/inspect-js/has-symbols/commit/90ae79820bdfe7bc703d67f5f3c5e205f98556d3) +- [meta] do not publish github action workflow files [`29e60a1`](https://github.com/inspect-js/has-symbols/commit/29e60a1b7c25c7f1acf7acff4a9320d0d10c49b4) +- [Tests] run `nyc` on all tests [`8476b91`](https://github.com/inspect-js/has-symbols/commit/8476b915650d360915abe2522505abf4b0e8f0ae) +- [readme] fix repo URLs, remove defunct badges [`126288e`](https://github.com/inspect-js/has-symbols/commit/126288ecc1797c0a40247a6b78bcb2e0bc5d7036) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `core-js`, `get-own-property-symbols` [`d84bdfa`](https://github.com/inspect-js/has-symbols/commit/d84bdfa48ac5188abbb4904b42614cd6c030940a) +- [Tests] fix linting errors [`0df3070`](https://github.com/inspect-js/has-symbols/commit/0df3070b981b6c9f2ee530c09189a7f5c6def839) +- [actions] add "Allow Edits" workflow [`1e6bc29`](https://github.com/inspect-js/has-symbols/commit/1e6bc29b188f32b9648657b07eda08504be5aa9c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`36cea2a`](https://github.com/inspect-js/has-symbols/commit/36cea2addd4e6ec435f35a2656b4e9ef82498e9b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1278338`](https://github.com/inspect-js/has-symbols/commit/127833801865fbc2cc8979beb9ca869c7bfe8222) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1493254`](https://github.com/inspect-js/has-symbols/commit/1493254eda13db5fb8fc5e4a3e8324b3d196029d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js` [`b090bf2`](https://github.com/inspect-js/has-symbols/commit/b090bf214d3679a30edc1e2d729d466ab5183e1d) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`4addb7a`](https://github.com/inspect-js/has-symbols/commit/4addb7ab4dc73f927ae99928d68817554fc21dc0) +- [Dev Deps] update `auto-changelog`, `tape` [`81d0baf`](https://github.com/inspect-js/has-symbols/commit/81d0baf3816096a89a8558e8043895f7a7d10d8b) +- [Dev Deps] update `auto-changelog`; add `aud` [`1a4e561`](https://github.com/inspect-js/has-symbols/commit/1a4e5612c25d91c3a03d509721d02630bc4fe3da) +- [readme] remove unused testling URLs [`3000941`](https://github.com/inspect-js/has-symbols/commit/3000941f958046e923ed8152edb1ef4a599e6fcc) +- [Tests] only audit prod deps [`692e974`](https://github.com/inspect-js/has-symbols/commit/692e9743c912410e9440207631a643a34b4741a1) +- [Dev Deps] update `@ljharb/eslint-config` [`51c946c`](https://github.com/inspect-js/has-symbols/commit/51c946c7f6baa793ec5390bb5a45cdce16b4ba76) + +## [v1.0.1](https://github.com/inspect-js/has-symbols/compare/v1.0.0...v1.0.1) - 2019-11-16 + +### Commits + +- [Tests] use shared travis-ci configs [`ce396c9`](https://github.com/inspect-js/has-symbols/commit/ce396c9419ff11c43d0da5d05cdbb79f7fb42229) +- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v4.9`; use `nvm install-latest-npm` [`0690732`](https://github.com/inspect-js/has-symbols/commit/0690732801f47ab429f39ba1962f522d5c462d6b) +- [meta] add `auto-changelog` [`2163d0b`](https://github.com/inspect-js/has-symbols/commit/2163d0b7f36343076b8f947cd1667dd1750f26fc) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `safe-publish-latest`, `tape` [`8e0951f`](https://github.com/inspect-js/has-symbols/commit/8e0951f1a7a2e52068222b7bb73511761e6e4d9c) +- [actions] add automatic rebasing / merge commit blocking [`b09cdb7`](https://github.com/inspect-js/has-symbols/commit/b09cdb7cd7ee39e7a769878f56e2d6066f5ccd1d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `core-js`, `get-own-property-symbols`, `tape` [`1dd42cd`](https://github.com/inspect-js/has-symbols/commit/1dd42cd86183ed0c50f99b1062345c458babca91) +- [meta] create FUNDING.yml [`aa57a17`](https://github.com/inspect-js/has-symbols/commit/aa57a17b19708906d1927f821ea8e73394d84ca4) +- Only apps should have lockfiles [`a2d8bea`](https://github.com/inspect-js/has-symbols/commit/a2d8bea23a97d15c09eaf60f5b107fcf9a4d57aa) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`9e96cb7`](https://github.com/inspect-js/has-symbols/commit/9e96cb783746cbed0c10ef78e599a8eaa7ebe193) +- [meta] add `funding` field [`a0b32cf`](https://github.com/inspect-js/has-symbols/commit/a0b32cf68e803f963c1639b6d47b0a9d6440bab0) +- [Dev Deps] update `safe-publish-latest` [`cb9f0a5`](https://github.com/inspect-js/has-symbols/commit/cb9f0a521a3a1790f1064d437edd33bb6c3d6af0) + +## v1.0.0 - 2016-09-19 + +### Commits + +- Tests. [`ecb6eb9`](https://github.com/inspect-js/has-symbols/commit/ecb6eb934e4883137f3f93b965ba5e0a98df430d) +- package.json [`88a337c`](https://github.com/inspect-js/has-symbols/commit/88a337cee0864a0da35f5d19e69ff0ef0150e46a) +- Initial commit [`42e1e55`](https://github.com/inspect-js/has-symbols/commit/42e1e5502536a2b8ac529c9443984acd14836b1c) +- Initial implementation. [`33f5cc6`](https://github.com/inspect-js/has-symbols/commit/33f5cc6cdff86e2194b081ee842bfdc63caf43fb) +- read me [`01f1170`](https://github.com/inspect-js/has-symbols/commit/01f1170188ff7cb1558aa297f6ba5b516c6d7b0c) diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/LICENSE b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/LICENSE new file mode 100644 index 0000000..df31cbf --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/README.md b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/README.md new file mode 100644 index 0000000..33905f0 --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/README.md @@ -0,0 +1,46 @@ +# has-symbols [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has Symbol support. Supports spec, or shams. + +## Example + +```js +var hasSymbols = require('has-symbols'); + +hasSymbols() === true; // if the environment has native Symbol support. Not polyfillable, not forgeable. + +var hasSymbolsKinda = require('has-symbols/shams'); +hasSymbolsKinda() === true; // if the environment has a Symbol sham that mostly follows the spec. +``` + +## Supported Symbol shams + - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) + - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-symbols +[2]: https://versionbadg.es/inspect-js/has-symbols.svg +[5]: https://david-dm.org/inspect-js/has-symbols.svg +[6]: https://david-dm.org/inspect-js/has-symbols +[7]: https://david-dm.org/inspect-js/has-symbols/dev-status.svg +[8]: https://david-dm.org/inspect-js/has-symbols#info=devDependencies +[11]: https://nodei.co/npm/has-symbols.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-symbols.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-symbols +[codecov-image]: https://codecov.io/gh/inspect-js/has-symbols/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-symbols/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-symbols +[actions-url]: https://github.com/inspect-js/has-symbols/actions diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js new file mode 100644 index 0000000..17044fa --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js @@ -0,0 +1,13 @@ +'use strict'; + +var origSymbol = typeof Symbol !== 'undefined' && Symbol; +var hasSymbolSham = require('./shams'); + +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/package.json b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/package.json new file mode 100644 index 0000000..fe7004a --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/package.json @@ -0,0 +1,101 @@ +{ + "name": "has-symbols", + "version": "1.0.3", + "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "npm run test:stock && npm run test:staging && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/has-symbols.git" + }, + "keywords": [ + "Symbol", + "symbols", + "typeof", + "sham", + "polyfill", + "native", + "core-js", + "ES6" + ], + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/has-symbols/issues" + }, + "homepage": "https://github.com/ljharb/has-symbols#readme", + "devDependencies": { + "@ljharb/eslint-config": "^20.2.3", + "aud": "^2.0.0", + "auto-changelog": "^2.4.0", + "core-js": "^2.6.12", + "eslint": "=8.8.0", + "get-own-property-symbols": "^0.9.5", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.5.2" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "greenkeeper": { + "ignore": [ + "core-js" + ] + } +} diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js new file mode 100644 index 0000000..1285210 --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js @@ -0,0 +1,42 @@ +'use strict'; + +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/index.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/index.js new file mode 100644 index 0000000..352129c --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/index.js @@ -0,0 +1,22 @@ +'use strict'; + +var test = require('tape'); +var hasSymbols = require('../'); +var runSymbolTests = require('./tests'); + +test('interface', function (t) { + t.equal(typeof hasSymbols, 'function', 'is a function'); + t.equal(typeof hasSymbols(), 'boolean', 'returns a boolean'); + t.end(); +}); + +test('Symbols are supported', { skip: !hasSymbols() }, function (t) { + runSymbolTests(t); + t.end(); +}); + +test('Symbols are not supported', { skip: hasSymbols() }, function (t) { + t.equal(typeof Symbol, 'undefined', 'global Symbol is undefined'); + t.equal(typeof Object.getOwnPropertySymbols, 'undefined', 'Object.getOwnPropertySymbols does not exist'); + t.end(); +}); diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/core-js.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/core-js.js new file mode 100644 index 0000000..df5365c --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/core-js.js @@ -0,0 +1,28 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + return; +} + +var hasSymbols = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); + require('core-js/fn/symbol'); + require('core-js/fn/symbol/to-string-tag'); + + require('../tests')(t); + + var hasSymbolsAfter = hasSymbols(); + t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/get-own-property-symbols.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/get-own-property-symbols.js new file mode 100644 index 0000000..9191b24 --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/shams/get-own-property-symbols.js @@ -0,0 +1,28 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + return; +} + +var hasSymbols = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbols(), false, 'hasSymbols is false before polyfilling'); + + require('get-own-property-symbols'); + + require('../tests')(t); + + var hasSymbolsAfter = hasSymbols(); + t.equal(hasSymbolsAfter, true, 'hasSymbols is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/tests.js b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/tests.js new file mode 100644 index 0000000..89edd12 --- /dev/null +++ b/node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/test/tests.js @@ -0,0 +1,56 @@ +'use strict'; + +// eslint-disable-next-line consistent-return +module.exports = function runSymbolTests(t) { + t.equal(typeof Symbol, 'function', 'global Symbol is a function'); + + if (typeof Symbol !== 'function') { return false; } + + t.notEqual(Symbol(), Symbol(), 'two symbols are not equal'); + + /* + t.equal( + Symbol.prototype.toString.call(Symbol('foo')), + Symbol.prototype.toString.call(Symbol('foo')), + 'two symbols with the same description stringify the same' + ); + */ + + /* + var foo = Symbol('foo'); + + t.notEqual( + String(foo), + String(Symbol('bar')), + 'two symbols with different descriptions do not stringify the same' + ); + */ + + t.equal(typeof Symbol.prototype.toString, 'function', 'Symbol#toString is a function'); + // t.equal(String(foo), Symbol.prototype.toString.call(foo), 'Symbol#toString equals String of the same symbol'); + + t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function'); + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + t.notEqual(typeof sym, 'string', 'Symbol is not a string'); + t.equal(Object.prototype.toString.call(sym), '[object Symbol]', 'symbol primitive Object#toStrings properly'); + t.equal(Object.prototype.toString.call(symObj), '[object Symbol]', 'symbol primitive Object#toStrings properly'); + + var symVal = 42; + obj[sym] = symVal; + // eslint-disable-next-line no-restricted-syntax + for (sym in obj) { t.fail('symbol property key was found in for..in of object'); } + + t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object'); + t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object'); + t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'one own symbol on symbol-valued object'); + t.equal(Object.prototype.propertyIsEnumerable.call(obj, sym), true, 'symbol is enumerable'); + t.deepEqual(Object.getOwnPropertyDescriptor(obj, sym), { + configurable: true, + enumerable: true, + value: 42, + writable: true + }, 'property descriptor is correct'); +}; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-symbols b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-symbols new file mode 120000 index 0000000..15f777f --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-symbols @@ -0,0 +1 @@ +../../has-symbols@1.0.3/node_modules/has-symbols \ No newline at end of file diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.eslintrc b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.github/FUNDING.yml b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.github/FUNDING.yml new file mode 100644 index 0000000..7a450e7 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-tostringtag +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.nycrc b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/CHANGELOG.md b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/CHANGELOG.md new file mode 100644 index 0000000..eb186ec --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.2](https://github.com/inspect-js/has-tostringtag/compare/v1.0.1...v1.0.2) - 2024-02-01 + +### Fixed + +- [Fix] move `has-symbols` back to prod deps [`#3`](https://github.com/inspect-js/has-tostringtag/issues/3) + +## [v1.0.1](https://github.com/inspect-js/has-tostringtag/compare/v1.0.0...v1.0.1) - 2024-02-01 + +### Commits + +- [patch] add types [`9276414`](https://github.com/inspect-js/has-tostringtag/commit/9276414b22fab3eeb234688841722c4be113201f) +- [meta] use `npmignore` to autogenerate an npmignore file [`5c0dcd1`](https://github.com/inspect-js/has-tostringtag/commit/5c0dcd1ff66419562a30d1fd88b966cc36bce5fc) +- [actions] reuse common workflows [`dee9509`](https://github.com/inspect-js/has-tostringtag/commit/dee950904ab5719b62cf8d73d2ac950b09093266) +- [actions] update codecov uploader [`b8cb3a0`](https://github.com/inspect-js/has-tostringtag/commit/b8cb3a0b8ffbb1593012c4c2daa45fb25642825d) +- [Tests] generate coverage [`be5b288`](https://github.com/inspect-js/has-tostringtag/commit/be5b28889e2735cdbcef387f84c2829995f2f05e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`69a0827`](https://github.com/inspect-js/has-tostringtag/commit/69a0827974e9b877b2c75b70b057555da8f25a65) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`4c9e210`](https://github.com/inspect-js/has-tostringtag/commit/4c9e210a5682f0557a3235d36b68ce809d7fb825) +- [actions] update rebase action to use reusable workflow [`ca8dcd3`](https://github.com/inspect-js/has-tostringtag/commit/ca8dcd3a6f3f5805d7e3fd461b654aedba0946e7) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`07f3eaf`](https://github.com/inspect-js/has-tostringtag/commit/07f3eafa45dd98208c94479737da77f9a69b94c4) +- [Deps] update `has-symbols` [`999e009`](https://github.com/inspect-js/has-tostringtag/commit/999e0095a7d1749a58f55472ec8bf8108cdfdcf3) +- [Tests] remove staging tests since they fail on modern node [`9d9526b`](https://github.com/inspect-js/has-tostringtag/commit/9d9526b1dc1ca7f2292b52efda4c3d857b0e39bd) + +## v1.0.0 - 2021-08-05 + +### Commits + +- Tests [`6b6f573`](https://github.com/inspect-js/has-tostringtag/commit/6b6f5734dc2058badb300ff0783efdad95fe1a65) +- Initial commit [`2f8190e`](https://github.com/inspect-js/has-tostringtag/commit/2f8190e799fac32ba9b95a076c0255e01d7ce475) +- [meta] do not publish github action workflow files [`6e08cc4`](https://github.com/inspect-js/has-tostringtag/commit/6e08cc4e0fea7ec71ef66e70734b2af2c4a8b71b) +- readme [`94bed6c`](https://github.com/inspect-js/has-tostringtag/commit/94bed6c9560cbbfda034f8d6c260bb7b0db33c1a) +- npm init [`be67840`](https://github.com/inspect-js/has-tostringtag/commit/be67840ab92ee7adb98bcc65261975543f815fa5) +- Implementation [`c4914ec`](https://github.com/inspect-js/has-tostringtag/commit/c4914ecc51ddee692c85b471ae0a5d8123030fbf) +- [meta] use `auto-changelog` [`4aaf768`](https://github.com/inspect-js/has-tostringtag/commit/4aaf76895ae01d7b739f2b19f967ef2372506cd7) +- Only apps should have lockfiles [`bc4d99e`](https://github.com/inspect-js/has-tostringtag/commit/bc4d99e4bf494afbaa235c5f098df6e642edf724) +- [meta] add `safe-publish-latest` [`6523c05`](https://github.com/inspect-js/has-tostringtag/commit/6523c05c9b87140f3ae74c9daf91633dd9ff4e1f) diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/LICENSE b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/LICENSE new file mode 100644 index 0000000..7948bc0 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Inspect JS + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/README.md b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/README.md new file mode 100644 index 0000000..67a5e92 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/README.md @@ -0,0 +1,46 @@ +# has-tostringtag [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has `Symbol.toStringTag` support. Supports spec, or shams. + +## Example + +```js +var hasSymbolToStringTag = require('has-tostringtag'); + +hasSymbolToStringTag() === true; // if the environment has native Symbol.toStringTag support. Not polyfillable, not forgeable. + +var hasSymbolToStringTagKinda = require('has-tostringtag/shams'); +hasSymbolToStringTagKinda() === true; // if the environment has a Symbol.toStringTag sham that mostly follows the spec. +``` + +## Supported Symbol shams + - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) + - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-tostringtag +[2]: https://versionbadg.es/inspect-js/has-tostringtag.svg +[5]: https://david-dm.org/inspect-js/has-tostringtag.svg +[6]: https://david-dm.org/inspect-js/has-tostringtag +[7]: https://david-dm.org/inspect-js/has-tostringtag/dev-status.svg +[8]: https://david-dm.org/inspect-js/has-tostringtag#info=devDependencies +[11]: https://nodei.co/npm/has-tostringtag.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-tostringtag.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-tostringtag.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-tostringtag +[codecov-image]: https://codecov.io/gh/inspect-js/has-tostringtag/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-tostringtag/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-tostringtag +[actions-url]: https://github.com/inspect-js/has-tostringtag/actions diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.d.ts b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.d.ts new file mode 100644 index 0000000..a61bc60 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.d.ts @@ -0,0 +1,3 @@ +declare function hasToStringTag(): boolean; + +export = hasToStringTag; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.js new file mode 100644 index 0000000..77bfa00 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/index.js @@ -0,0 +1,8 @@ +'use strict'; + +var hasSymbols = require('has-symbols'); + +/** @type {import('.')} */ +module.exports = function hasToStringTag() { + return hasSymbols() && typeof Symbol.toStringTag === 'symbol'; +}; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/package.json b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/package.json new file mode 100644 index 0000000..e5b0300 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/package.json @@ -0,0 +1,108 @@ +{ + "name": "has-tostringtag", + "version": "1.0.2", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "description": "Determine if the JS environment has `Symbol.toStringTag` support. Supports spec, or shams.", + "license": "MIT", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": [ + { + "types": "./index.d.ts", + "default": "./index.js" + }, + "./index.js" + ], + "./shams": [ + { + "types": "./shams.d.ts", + "default": "./shams.js" + }, + "./shams.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "npm run test:stock && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/has-tostringtag.git" + }, + "bugs": { + "url": "https://github.com/inspect-js/has-tostringtag/issues" + }, + "homepage": "https://github.com/inspect-js/has-tostringtag#readme", + "keywords": [ + "javascript", + "ecmascript", + "symbol", + "symbols", + "tostringtag", + "Symbol.toStringTag" + ], + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/has-symbols": "^1.0.2", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "core-js": "^2.6.12", + "eslint": "=8.8.0", + "get-own-property-symbols": "^0.9.5", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "dependencies": { + "has-symbols": "^1.0.3" + } +} diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.d.ts b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.d.ts new file mode 100644 index 0000000..ea4aeec --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.d.ts @@ -0,0 +1,3 @@ +declare function hasToStringTagShams(): boolean; + +export = hasToStringTagShams; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js new file mode 100644 index 0000000..809580d --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js @@ -0,0 +1,8 @@ +'use strict'; + +var hasSymbols = require('has-symbols/shams'); + +/** @type {import('.')} */ +module.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; +}; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/index.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/index.js new file mode 100644 index 0000000..0679afd --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/index.js @@ -0,0 +1,21 @@ +'use strict'; + +var test = require('tape'); +var hasSymbolToStringTag = require('../'); +var runSymbolTests = require('./tests'); + +test('interface', function (t) { + t.equal(typeof hasSymbolToStringTag, 'function', 'is a function'); + t.equal(typeof hasSymbolToStringTag(), 'boolean', 'returns a boolean'); + t.end(); +}); + +test('Symbol.toStringTag exists', { skip: !hasSymbolToStringTag() }, function (t) { + runSymbolTests(t); + t.end(); +}); + +test('Symbol.toStringTag does not exist', { skip: hasSymbolToStringTag() }, function (t) { + t.equal(typeof Symbol === 'undefined' ? 'undefined' : typeof Symbol.toStringTag, 'undefined', 'global Symbol.toStringTag is undefined'); + t.end(); +}); diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/core-js.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/core-js.js new file mode 100644 index 0000000..7ab214d --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/core-js.js @@ -0,0 +1,31 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol') { + test('has native Symbol.toStringTag support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol.toStringTag, 'symbol'); + t.end(); + }); + // @ts-expect-error CJS has top-level return + return; +} + +var hasSymbolToStringTag = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbolToStringTag(), false, 'hasSymbolToStringTag is false before polyfilling'); + // @ts-expect-error no types defined + require('core-js/fn/symbol'); + // @ts-expect-error no types defined + require('core-js/fn/symbol/to-string-tag'); + + require('../tests')(t); + + var hasToStringTagAfter = hasSymbolToStringTag(); + t.equal(hasToStringTagAfter, true, 'hasSymbolToStringTag is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js new file mode 100644 index 0000000..c8af44c --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js @@ -0,0 +1,30 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + // @ts-expect-error CJS has top-level return + return; +} + +var hasSymbolToStringTag = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbolToStringTag(), false, 'hasSymbolToStringTag is false before polyfilling'); + + // @ts-expect-error no types defined + require('get-own-property-symbols'); + + require('../tests')(t); + + var hasToStringTagAfter = hasSymbolToStringTag(); + t.equal(hasToStringTagAfter, true, 'hasSymbolToStringTag is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/tests.js b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/tests.js new file mode 100644 index 0000000..2aa0d48 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/test/tests.js @@ -0,0 +1,15 @@ +'use strict'; + +// eslint-disable-next-line consistent-return +module.exports = /** @type {(t: import('tape').Test) => void | false} */ function runSymbolTests(t) { + t.equal(typeof Symbol, 'function', 'global Symbol is a function'); + t.ok(Symbol.toStringTag, 'Symbol.toStringTag exists'); + + if (typeof Symbol !== 'function' || !Symbol.toStringTag) { return false; } + + /** @type {{ [Symbol.toStringTag]?: 'test'}} */ + var obj = {}; + obj[Symbol.toStringTag] = 'test'; + + t.equal(Object.prototype.toString.call(obj), '[object test]'); +}; diff --git a/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/tsconfig.json b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/tsconfig.json new file mode 100644 index 0000000..2002ce5 --- /dev/null +++ b/node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/tsconfig.json @@ -0,0 +1,49 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + + /* Language and Environment */ + "target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + "typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + + /* JavaScript Support */ + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + "maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "noEmit": true, /* Disable emitting files from a compilation. */ + + /* Interop Constraints */ + "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + + /* Completeness */ + //"skipLibCheck": true /* Skip type checking all .d.ts files. */ + }, + "exclude": [ + "coverage" + ] +} diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/function-bind b/node_modules/.pnpm/hasown@2.0.2/node_modules/function-bind new file mode 120000 index 0000000..62a99de --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/function-bind @@ -0,0 +1 @@ +../../function-bind@1.1.2/node_modules/function-bind \ No newline at end of file diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.eslintrc b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.eslintrc new file mode 100644 index 0000000..3b5d9e9 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.eslintrc @@ -0,0 +1,5 @@ +{ + "root": true, + + "extends": "@ljharb", +} diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.github/FUNDING.yml b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.github/FUNDING.yml new file mode 100644 index 0000000..d68c8b7 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/hasown +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.nycrc b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/CHANGELOG.md b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/CHANGELOG.md new file mode 100644 index 0000000..2b0a980 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v2.0.2](https://github.com/inspect-js/hasOwn/compare/v2.0.1...v2.0.2) - 2024-03-10 + +### Commits + +- [types] use shared config [`68e9d4d`](https://github.com/inspect-js/hasOwn/commit/68e9d4dab6facb4f05f02c6baea94a3f2a4e44b2) +- [actions] remove redundant finisher; use reusable workflow [`241a68e`](https://github.com/inspect-js/hasOwn/commit/241a68e13ea1fe52bec5ba7f74144befc31fae7b) +- [Tests] increase coverage [`4125c0d`](https://github.com/inspect-js/hasOwn/commit/4125c0d6121db56ae30e38346dfb0c000b04f0a7) +- [Tests] skip `npm ls` in old node due to TS [`01b9282`](https://github.com/inspect-js/hasOwn/commit/01b92822f9971dea031eafdd14767df41d61c202) +- [types] improve predicate type [`d340f85`](https://github.com/inspect-js/hasOwn/commit/d340f85ce02e286ef61096cbbb6697081d40a12b) +- [Dev Deps] update `tape` [`70089fc`](https://github.com/inspect-js/hasOwn/commit/70089fcf544e64acc024cbe60f5a9b00acad86de) +- [Tests] use `@arethetypeswrong/cli` [`50b272c`](https://github.com/inspect-js/hasOwn/commit/50b272c829f40d053a3dd91c9796e0ac0b2af084) + +## [v2.0.1](https://github.com/inspect-js/hasOwn/compare/v2.0.0...v2.0.1) - 2024-02-10 + +### Commits + +- [types] use a handwritten d.ts file; fix exported type [`012b989`](https://github.com/inspect-js/hasOwn/commit/012b9898ccf91dc441e2ebf594ff70270a5fda58) +- [Dev Deps] update `@types/function-bind`, `@types/mock-property`, `@types/tape`, `aud`, `mock-property`, `npmignore`, `tape`, `typescript` [`977a56f`](https://github.com/inspect-js/hasOwn/commit/977a56f51a1f8b20566f3c471612137894644025) +- [meta] add `sideEffects` flag [`3a60b7b`](https://github.com/inspect-js/hasOwn/commit/3a60b7bf42fccd8c605e5f145a6fcc83b13cb46f) + +## [v2.0.0](https://github.com/inspect-js/hasOwn/compare/v1.0.1...v2.0.0) - 2023-10-19 + +### Commits + +- revamped implementation, tests, readme [`72bf8b3`](https://github.com/inspect-js/hasOwn/commit/72bf8b338e77a638f0a290c63ffaed18339c36b4) +- [meta] revamp package.json [`079775f`](https://github.com/inspect-js/hasOwn/commit/079775fb1ec72c1c6334069593617a0be3847458) +- Only apps should have lockfiles [`6640e23`](https://github.com/inspect-js/hasOwn/commit/6640e233d1bb8b65260880f90787637db157d215) + +## v1.0.1 - 2023-10-10 + +### Commits + +- Initial commit [`8dbfde6`](https://github.com/inspect-js/hasOwn/commit/8dbfde6e8fb0ebb076fab38d138f2984eb340a62) diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/LICENSE b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/LICENSE new file mode 100644 index 0000000..0314929 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Jordan Harband and contributors + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/README.md b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/README.md new file mode 100644 index 0000000..f759b8a --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/README.md @@ -0,0 +1,40 @@ +# hasown [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A robust, ES3 compatible, "has own property" predicate. + +## Example + +```js +const assert = require('assert'); +const hasOwn = require('hasown'); + +assert.equal(hasOwn({}, 'toString'), false); +assert.equal(hasOwn([], 'length'), true); +assert.equal(hasOwn({ a: 42 }, 'a'), true); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/hasown +[npm-version-svg]: https://versionbadg.es/inspect-js/hasown.svg +[deps-svg]: https://david-dm.org/inspect-js/hasOwn.svg +[deps-url]: https://david-dm.org/inspect-js/hasOwn +[dev-deps-svg]: https://david-dm.org/inspect-js/hasOwn/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/hasOwn#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/hasown.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/hasown.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/hasown.svg +[downloads-url]: https://npm-stat.com/charts.html?package=hasown +[codecov-image]: https://codecov.io/gh/inspect-js/hasOwn/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/hasOwn/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/hasOwn +[actions-url]: https://github.com/inspect-js/hasOwn/actions diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.d.ts b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.d.ts new file mode 100644 index 0000000..aafdf3b --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.d.ts @@ -0,0 +1,3 @@ +declare function hasOwn(o: O, p: K): o is O & Record; + +export = hasOwn; diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js new file mode 100644 index 0000000..34e6059 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js @@ -0,0 +1,8 @@ +'use strict'; + +var call = Function.prototype.call; +var $hasOwn = Object.prototype.hasOwnProperty; +var bind = require('function-bind'); + +/** @type {import('.')} */ +module.exports = bind.call(call, $hasOwn); diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/package.json b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/package.json new file mode 100644 index 0000000..8502e13 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/package.json @@ -0,0 +1,92 @@ +{ + "name": "hasown", + "version": "2.0.2", + "description": "A robust, ES3 compatible, \"has own property\" predicate.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "index.d.ts", + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "npm run tsc", + "pretest": "npm run lint", + "tsc": "tsc -p .", + "posttsc": "attw -P", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/hasOwn.git" + }, + "keywords": [ + "has", + "hasOwnProperty", + "hasOwn", + "has-own", + "own", + "has", + "property", + "in", + "javascript", + "ecmascript" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/hasOwn/issues" + }, + "homepage": "https://github.com/inspect-js/hasOwn#readme", + "dependencies": { + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.15.1", + "@ljharb/eslint-config": "^21.1.0", + "@ljharb/tsconfig": "^0.2.0", + "@types/function-bind": "^1.1.10", + "@types/mock-property": "^1.0.2", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "mock-property": "^1.0.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.5", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "test" + ] + } +} diff --git a/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/tsconfig.json b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/tsconfig.json new file mode 100644 index 0000000..0930c56 --- /dev/null +++ b/node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@ljharb/tsconfig", + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.d.ts b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.d.ts new file mode 100644 index 0000000..1185231 --- /dev/null +++ b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.d.ts @@ -0,0 +1,42 @@ +declare namespace indentString { + interface Options { + /** + The string to use for the indent. + + @default ' ' + */ + readonly indent?: string; + + /** + Also indent empty lines. + + @default false + */ + readonly includeEmptyLines?: boolean; + } +} + +/** +Indent each line in a string. + +@param string - The string to indent. +@param count - How many times you want `options.indent` repeated. Default: `1`. + +@example +``` +import indentString = require('indent-string'); + +indentString('Unicorns\nRainbows', 4); +//=> ' Unicorns\n Rainbows' + +indentString('Unicorns\nRainbows', 4, {indent: '♥'}); +//=> '♥♥♥♥Unicorns\n♥♥♥♥Rainbows' +``` +*/ +declare function indentString( + string: string, + count?: number, + options?: indentString.Options +): string; + +export = indentString; diff --git a/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js new file mode 100644 index 0000000..e1ab804 --- /dev/null +++ b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/index.js @@ -0,0 +1,35 @@ +'use strict'; + +module.exports = (string, count = 1, options) => { + options = { + indent: ' ', + includeEmptyLines: false, + ...options + }; + + if (typeof string !== 'string') { + throw new TypeError( + `Expected \`input\` to be a \`string\`, got \`${typeof string}\`` + ); + } + + if (typeof count !== 'number') { + throw new TypeError( + `Expected \`count\` to be a \`number\`, got \`${typeof count}\`` + ); + } + + if (typeof options.indent !== 'string') { + throw new TypeError( + `Expected \`options.indent\` to be a \`string\`, got \`${typeof options.indent}\`` + ); + } + + if (count === 0) { + return string; + } + + const regex = options.includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + + return string.replace(regex, options.indent.repeat(count)); +}; diff --git a/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/license b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/package.json b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/package.json new file mode 100644 index 0000000..497bb83 --- /dev/null +++ b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/package.json @@ -0,0 +1,37 @@ +{ + "name": "indent-string", + "version": "4.0.0", + "description": "Indent each line in a string", + "license": "MIT", + "repository": "sindresorhus/indent-string", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "indent", + "string", + "pad", + "align", + "line", + "text", + "each", + "every" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/readme.md b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/readme.md new file mode 100644 index 0000000..49967de --- /dev/null +++ b/node_modules/.pnpm/indent-string@4.0.0/node_modules/indent-string/readme.md @@ -0,0 +1,70 @@ +# indent-string [![Build Status](https://travis-ci.org/sindresorhus/indent-string.svg?branch=master)](https://travis-ci.org/sindresorhus/indent-string) + +> Indent each line in a string + + +## Install + +``` +$ npm install indent-string +``` + + +## Usage + +```js +const indentString = require('indent-string'); + +indentString('Unicorns\nRainbows', 4); +//=> ' Unicorns\n Rainbows' + +indentString('Unicorns\nRainbows', 4, {indent: '♥'}); +//=> '♥♥♥♥Unicorns\n♥♥♥♥Rainbows' +``` + + +## API + +### indentString(string, [count], [options]) + +#### string + +Type: `string` + +The string to indent. + +#### count + +Type: `number`
+Default: `1` + +How many times you want `options.indent` repeated. + +#### options + +Type: `object` + +##### indent + +Type: `string`
+Default: `' '` + +The string to use for the indent. + +##### includeEmptyLines + +Type: `boolean`
+Default: `false` + +Also indent empty lines. + + +## Related + +- [indent-string-cli](https://github.com/sindresorhus/indent-string-cli) - CLI for this module +- [strip-indent](https://github.com/sindresorhus/strip-indent) - Strip leading whitespace from every line in a string + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/call-bind b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/call-bind new file mode 120000 index 0000000..ee64c4e --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/call-bind @@ -0,0 +1 @@ +../../call-bind@1.0.7/node_modules/call-bind \ No newline at end of file diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/has-tostringtag b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/has-tostringtag new file mode 120000 index 0000000..5c739d3 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/has-tostringtag @@ -0,0 +1 @@ +../../has-tostringtag@1.0.2/node_modules/has-tostringtag \ No newline at end of file diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.editorconfig b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.editorconfig new file mode 100644 index 0000000..bc228f8 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 150 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintignore b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintignore new file mode 100644 index 0000000..404abb2 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintrc b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintrc new file mode 100644 index 0000000..6d42c6e --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.eslintrc @@ -0,0 +1,10 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "id-length": [2, { "min": 1, "max": 25 }], + "operator-linebreak": [2, "after"] + } +} diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.github/FUNDING.yml b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.github/FUNDING.yml new file mode 100644 index 0000000..d29bb40 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/is-arguments +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.nycrc b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.nycrc new file mode 100644 index 0000000..bdd626c --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/.nycrc @@ -0,0 +1,9 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/CHANGELOG.md b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/CHANGELOG.md new file mode 100644 index 0000000..a1ddafe --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/CHANGELOG.md @@ -0,0 +1,179 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.1](https://github.com/inspect-js/is-arguments/compare/v1.1.0...v1.1.1) - 2021-08-05 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`dd28b30`](https://github.com/inspect-js/is-arguments/commit/dd28b30f4237fac722f2ce05b0c1d7e63c4a81e4) +- [meta] do not publish github action workflow files [`87e489c`](https://github.com/inspect-js/is-arguments/commit/87e489cc77b709b96e73aaf9f9b2cd6da48f4960) +- [readme] fix repo URLs [`e2c2c6e`](https://github.com/inspect-js/is-arguments/commit/e2c2c6ee34ca21be4b19d282d96dd7ab75b63ae3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`b9ae62b`](https://github.com/inspect-js/is-arguments/commit/b9ae62b3a08a5fe84519865192e6287d5b6966f7) +- [readme] add github actions/codecov badges [`504c0a5`](https://github.com/inspect-js/is-arguments/commit/504c0a508dc313eae5942b1e35b2d031948de143) +- [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams [`dc29e52`](https://github.com/inspect-js/is-arguments/commit/dc29e521d71da420414110919a1e0fde8ec6eba3) +- [Dev Deps] update `auto-changelog`, `eslint`, `tape` [`a966d25`](https://github.com/inspect-js/is-arguments/commit/a966d25535c5f050ca5ce43a1559f93698a7130b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`1218944`](https://github.com/inspect-js/is-arguments/commit/12189445a195558fdccebe099c699272d2082aa8) +- [meta] use `prepublishOnly` script for npm 7+ [`757dbee`](https://github.com/inspect-js/is-arguments/commit/757dbee3ec6f6225d4c7c91582e045cc1183dbd8) +- [Deps] update `call-bind` [`b206f05`](https://github.com/inspect-js/is-arguments/commit/b206f059571c430375c632e40dd29249fa76a8fd) +- [actions] update workflows [`b89b2f1`](https://github.com/inspect-js/is-arguments/commit/b89b2f1ab98bedebdf97d2397246030a1132c84e) + +## [v1.1.0](https://github.com/inspect-js/is-arguments/compare/v1.0.4...v1.1.0) - 2020-12-04 + +### Commits + +- [Tests] use shared travis-ci configs [`fd59a37`](https://github.com/inspect-js/is-arguments/commit/fd59a3779f004f36ea8e5ac90b0de9b97ff60755) +- [Tests] migrate tests to Github Actions [`982a0d6`](https://github.com/inspect-js/is-arguments/commit/982a0d68495b68e2b6ca8f4caa9f8a909ec56755) +- [Tests] remove `jscs` [`927d4b5`](https://github.com/inspect-js/is-arguments/commit/927d4b5c17b12c40f445491e52a11d5bed311ef6) +- [meta] add `auto-changelog` [`ef0634b`](https://github.com/inspect-js/is-arguments/commit/ef0634b0c07a12d9144c4db168cb79963326ec6d) +- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`1689f8b`](https://github.com/inspect-js/is-arguments/commit/1689f8bf533c8ab8cd95caf953905e3a204c0cdc) +- [Tests] up to `node` `v11.7`, `v10.15`, `v8.15`, `v6.16` [`145aaeb`](https://github.com/inspect-js/is-arguments/commit/145aaeb5a35e7abd3a8a5c9ec87c6e37f16ed068) +- [readme] fix repo URLs, remove defunct badges [`cc484a3`](https://github.com/inspect-js/is-arguments/commit/cc484a3ae787125eccc30a05c63b7ff6a1581591) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`c888738`](https://github.com/inspect-js/is-arguments/commit/c888738ef1cf84b973169bbe6219b795de4acfc2) +- [Tests] run `nyc` on all tests [`0de8efb`](https://github.com/inspect-js/is-arguments/commit/0de8efb8091a3dd5708812cd26ad541f7dca773a) +- [actions] add automatic rebasing / merge commit blocking [`818775a`](https://github.com/inspect-js/is-arguments/commit/818775aa0c66064965517be554c3bcc57ec0d721) +- [Robustness] use `call-bind` [`31d0199`](https://github.com/inspect-js/is-arguments/commit/31d0199c1a560f113ff099a2f43068cdfe0af79e) +- [actions] add "Allow Edits" workflow [`0c55f7d`](https://github.com/inspect-js/is-arguments/commit/0c55f7d254ff335291d9cee39501b247f7248fb9) +- [meta] create FUNDING.yml [`ca7ed59`](https://github.com/inspect-js/is-arguments/commit/ca7ed597bac29790ac6233ff1bdff7704b870e96) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`1ae5053`](https://github.com/inspect-js/is-arguments/commit/1ae505390efff099c50d0bc786a3ecc8d5303b04) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`433f4a5`](https://github.com/inspect-js/is-arguments/commit/433f4a5573810fe689c5e56ad9fe69b6a2229b8c) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`78ea4e8`](https://github.com/inspect-js/is-arguments/commit/78ea4e8261bc326c1ae7e9e50bb655e8bf128c6b) +- [Tests] use `npm audit` instead of `nsp` [`07fb85b`](https://github.com/inspect-js/is-arguments/commit/07fb85bf396880648c2d4285273968d478df4711) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`2204add`](https://github.com/inspect-js/is-arguments/commit/2204add22fcc15b1ee6aaae90578595b4f6d9647) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`ce150c0`](https://github.com/inspect-js/is-arguments/commit/ce150c0c47504779ce812b1aefe044fcad1286af) +- [Tests] fix tests from 0de8efb [`ee45fc3`](https://github.com/inspect-js/is-arguments/commit/ee45fc387b655de6feac101c478af111d488e144) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`03a312c`](https://github.com/inspect-js/is-arguments/commit/03a312cdae0aa058cfd094c996acb2af4e785484) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`25d2ef8`](https://github.com/inspect-js/is-arguments/commit/25d2ef8da0b90c834d1fa6b83410205832e271d4) +- [Dev Deps] update `auto-changelog`, `tape` [`0fe60b7`](https://github.com/inspect-js/is-arguments/commit/0fe60b74b7f1254c386e14d0ea6d9cc074fdf12c) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`4a9cbd0`](https://github.com/inspect-js/is-arguments/commit/4a9cbd0c91fd945ccc97c219d34e0840b0965586) +- [Dev Deps] update `auto-changelog`; add `aud` [`d9ff7d5`](https://github.com/inspect-js/is-arguments/commit/d9ff7d5f521eec5942019b1d7b38ace475da142f) +- [meta] add `funding` field [`adec2d2`](https://github.com/inspect-js/is-arguments/commit/adec2d293022ee3ec87479eaeae81bfec1ea1b18) +- [Tests] only audit prod deps [`f474960`](https://github.com/inspect-js/is-arguments/commit/f474960795eeb6087fc79eed8b787aa067b22ab1) + +## [v1.0.4](https://github.com/inspect-js/is-arguments/compare/v1.0.3...v1.0.4) - 2018-11-05 + +### Commits + +- [Fix] Fix errors about `in` operator. [`4d12e23`](https://github.com/inspect-js/is-arguments/commit/4d12e23fab8701207b7715fe7502db35c6edd3dd) + +## [v1.0.3](https://github.com/inspect-js/is-arguments/compare/v1.0.2...v1.0.3) - 2018-11-02 + +### Fixed + +- [Fix] add awareness of Symbol.toStringTag [`#20`](https://github.com/inspect-js/is-arguments/issues/20) + +### Commits + +- [Tests] up to `node` `v8.1`; `v7.10`, `v6.11`, `v4.8`; improve matrix; newer npm fails on older node [`ea5f23c`](https://github.com/inspect-js/is-arguments/commit/ea5f23c322234e18248b0acafe0f45333d5d78ec) +- [Tests] up to `node` `v9.1`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS. [`697a0a1`](https://github.com/inspect-js/is-arguments/commit/697a0a143d3b82f84956e4cca407c7eea228526b) +- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`40045c5`](https://github.com/inspect-js/is-arguments/commit/40045c5fe6ebb86f96125da96f7bfb9637579ce4) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `jscs`, `tape` [`08abc0d`](https://github.com/inspect-js/is-arguments/commit/08abc0d2e31c34514a58711f6203e41d06c3b81f) +- [Tests] up to `node` `v11.1`, `v10.13`, `v8.12` [`bf8d275`](https://github.com/inspect-js/is-arguments/commit/bf8d275ecf855c40c9c3f9c3ccf76874d4ce2497) +- [Tests] up to `node` `v7.0`, `v6.9`, `v4.6`; improve test matrix [`f813d86`](https://github.com/inspect-js/is-arguments/commit/f813d86b38f10d2e1f495597ca2a58d25a21339e) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`e4f9aee`](https://github.com/inspect-js/is-arguments/commit/e4f9aee64f0f7f2f9d8132992b81d133b5d3c9c7) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`6c98d11`](https://github.com/inspect-js/is-arguments/commit/6c98d1171a043a4ab21d70b813379a4162ac3702) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`8e3178d`](https://github.com/inspect-js/is-arguments/commit/8e3178db172bc3ac889343aa3e38c24cc92aed08) +- package.json: use object form of "author", add "contributors" [`decc4fe`](https://github.com/inspect-js/is-arguments/commit/decc4feb9b31bd9f68b7a5f67aed39d32c9a6ab3) +- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` [`514902a`](https://github.com/inspect-js/is-arguments/commit/514902abde6b7d9397c9dbcd90f19fd78b70725a) +- [Tests] up to `node` `v5.6`, `v4.3` [`f11f47c`](https://github.com/inspect-js/is-arguments/commit/f11f47c5c1dae8adfda7ba1319de3b6e03db7925) +- [Dev Deps] add `npm run security` [`4adf82c`](https://github.com/inspect-js/is-arguments/commit/4adf82c0c9259eb81db18848a314b36db1c48d36) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`f587aeb`](https://github.com/inspect-js/is-arguments/commit/f587aeb3ec04f2d22c2a8fd7686a2153d0fd50d2) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `tape` [`4f587bb`](https://github.com/inspect-js/is-arguments/commit/4f587bb7a2c499b1aa2e2aea60da8c0ee91c9df2) +- [Tests] up to `node` `v6.2`, `v5.11` [`36939c5`](https://github.com/inspect-js/is-arguments/commit/36939c5e1d8ce56c356a3f2144983839d86b3ae8) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `tape` [`d779cc8`](https://github.com/inspect-js/is-arguments/commit/d779cc875bd6fa15d861a134065d629159051331) +- Only apps should have lockfiles [`f50ce65`](https://github.com/inspect-js/is-arguments/commit/f50ce65fe94728b6f127a0c11f2efc6473f56cf3) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`3025559`](https://github.com/inspect-js/is-arguments/commit/30255597cf578068e5a28d7a6e29076355132c87) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`3b9ddee`](https://github.com/inspect-js/is-arguments/commit/3b9ddeef740608d84d2b825b9a90e4adf049c905) +- [Tests] up to `v5.8`, `v4.4` [`d4902cf`](https://github.com/inspect-js/is-arguments/commit/d4902cfb07e0bfaa0788a7847fcaaba91c8e3435) +- [Tests] fix npm upgrades for older nodes [`c617dd3`](https://github.com/inspect-js/is-arguments/commit/c617dd3a7b6a70162cbeb985009620acd69c029d) +- [Tests] up to `node` `v5.3` [`cdd2a61`](https://github.com/inspect-js/is-arguments/commit/cdd2a617c3d1810149683596fe90024ae9dcc549) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7719172`](https://github.com/inspect-js/is-arguments/commit/77191721ef92ce9dc72fdae8e1cfdc2ec74317d9) +- [Dev Deps] update `es5-shim`, `tape`, `nsp`, `eslint` [`6a5f82b`](https://github.com/inspect-js/is-arguments/commit/6a5f82bc6d9407e64fc4c7794d546e4db8ab61ed) +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config` [`c896c1c`](https://github.com/inspect-js/is-arguments/commit/c896c1c4629ff3c8cda25e0c3e607d2950ff4ba9) +- [Tests] Use `pretest` for running the linter. [`83db117`](https://github.com/inspect-js/is-arguments/commit/83db1173fde93c2d8a490663ce850321b018eab2) +- [Dev Deps] update `@ljharb/eslint-config`, `eslint` [`57fdc63`](https://github.com/inspect-js/is-arguments/commit/57fdc636dea2f5c641e2d0c0dfbe0ac589acb69a) +- [Tests] up to `node` `v7.2` [`aa3eacf`](https://github.com/inspect-js/is-arguments/commit/aa3eacf27001a92aab4874f7d29f693ed6221b4a) +- [Tests] up to `node` `v5.10` [`94ff6d7`](https://github.com/inspect-js/is-arguments/commit/94ff6d72c095cae00a4df06043976dc3e414f49b) +- [Tests] on `node` `v4.2` [`cdb1fb5`](https://github.com/inspect-js/is-arguments/commit/cdb1fb5babe08c845570cbae218c0b96753c1152) + +## [v1.0.2](https://github.com/inspect-js/is-arguments/compare/v1.0.1...v1.0.2) - 2015-09-21 + +### Commits + +- Update `eslint`, use my personal shared config. [`8e211f4`](https://github.com/inspect-js/is-arguments/commit/8e211f46b17ae8d89aa5484b4b3b853d3d1b3fa9) +- In modern engines, only export the "is standard arguments" check. [`e8aa23f`](https://github.com/inspect-js/is-arguments/commit/e8aa23fc19f6d1c3c952174391a4903d90fcd622) +- Update `jscs`, `eslint`, `@ljharb/eslint-config` [`8a90bca`](https://github.com/inspect-js/is-arguments/commit/8a90bcad88025736a7c127123f1473af35bae6f7) +- Update `eslint` [`2214b5d`](https://github.com/inspect-js/is-arguments/commit/2214b5dac911e1eb949179f9034aa37ba7c079d7) +- Update `eslint` [`ca97c5b`](https://github.com/inspect-js/is-arguments/commit/ca97c5b22e7cf4f30d90ee1519988ecd4bf36887) +- [Dev Deps] update `jscs` [`ca6a477`](https://github.com/inspect-js/is-arguments/commit/ca6a477c16c70c0e5f29d56713237703ab610fdf) +- Update `covert`, `jscs`, `eslint` [`232d92a`](https://github.com/inspect-js/is-arguments/commit/232d92ab1dff7b0ad64024726cda437b32ce1906) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`460d700`](https://github.com/inspect-js/is-arguments/commit/460d700bdb5d8b261995e3d8f3e6b3eda4f91bcf) +- Test up to `io.js` `v2.3` [`7ef2293`](https://github.com/inspect-js/is-arguments/commit/7ef229388819ae1f1c1d55dbe741c90977cc3a3f) +- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`29f3d71`](https://github.com/inspect-js/is-arguments/commit/29f3d71eb516326409bd24bc7e6d4ebb6a872d01) +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config` [`1c79a85`](https://github.com/inspect-js/is-arguments/commit/1c79a85d670d8dc5dbb1831ee0de0c8858a94775) +- `toString` as a variable name breaks in some older browsers. [`1e59f2b`](https://github.com/inspect-js/is-arguments/commit/1e59f2bf79454188145de5275a64996eafc94420) +- Update `tape`, `eslint` [`1efbefd`](https://github.com/inspect-js/is-arguments/commit/1efbefd84df6ae802245ebe6371cd15255ee23e7) +- Test up to `io.js` `v2.5` [`0760acc`](https://github.com/inspect-js/is-arguments/commit/0760acc3139d1930efebc4321c1f96ba1406e2de) +- Test up to `io.js` `v2.1` [`4c2245f`](https://github.com/inspect-js/is-arguments/commit/4c2245f3deccdb3ec70e4f79e5e8aac697f35d08) +- [Dev Deps] update `tape` [`348980e`](https://github.com/inspect-js/is-arguments/commit/348980e1666b66724e37c9df63d18d540a51d5fe) +- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`91d8c4f`](https://github.com/inspect-js/is-arguments/commit/91d8c4fd4516aae483fa2dd9c4a5b44c48e773f0) +- Update `tape` [`ec9b92a`](https://github.com/inspect-js/is-arguments/commit/ec9b92a244f7a077fe1df58af89f56a39d4d2600) +- Update `tape` [`6bc8969`](https://github.com/inspect-js/is-arguments/commit/6bc8969c40b2b2cd1c767933b7ef3d8ff65bf67f) +- Test on `io.js` `v3.0` [`33d9578`](https://github.com/inspect-js/is-arguments/commit/33d957814d515855583e98e652624e5920cc9496) + +## [v1.0.1](https://github.com/inspect-js/is-arguments/compare/v1.0.0...v1.0.1) - 2015-04-29 + +### Commits + +- Update `jscs`, add `npm run eslint` [`13a5f01`](https://github.com/inspect-js/is-arguments/commit/13a5f015aa67cb2402b5fdb21c68180ff7036a14) +- Using my standard jscs.json file [`d669fc4`](https://github.com/inspect-js/is-arguments/commit/d669fc49c0db56457eb55a77a2f9c40916ad6361) +- Adding `npm run lint` [`ece5d05`](https://github.com/inspect-js/is-arguments/commit/ece5d0581fadcff99b181d67b54eacb4869cfb98) +- Test on latest `io.js` [`908b092`](https://github.com/inspect-js/is-arguments/commit/908b092912fa9c89c20a41fdd117b21e857bfc84) +- Adding license and downloads badges [`05fd28b`](https://github.com/inspect-js/is-arguments/commit/05fd28b28d857ecb2220d0ac6267f36ec1e65eae) +- Make sure old and unstable nodes don't break Travis [`16ee7ea`](https://github.com/inspect-js/is-arguments/commit/16ee7eae70015864a8b3f2fe03463ecb4d707451) +- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`9846c79`](https://github.com/inspect-js/is-arguments/commit/9846c79d1999432538ea757c0dbf61ab3f0d54cd) +- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`27c014d`](https://github.com/inspect-js/is-arguments/commit/27c014d217d41d33b0bb1735e38184b871d86311) +- Use SVG instead of PNG badges [`ea01e68`](https://github.com/inspect-js/is-arguments/commit/ea01e68896722351c63912e37cc37541f9b78780) +- Remove unused links in README [`f5baaff`](https://github.com/inspect-js/is-arguments/commit/f5baaff1931bb9d48b20270a94d99121a3176dba) +- Test on latest `io.js` versions [`293e2c4`](https://github.com/inspect-js/is-arguments/commit/293e2c4d1edfdf9c6db88663314599ecde08a945) +- Update `tape`, `jscs` [`d72ab08`](https://github.com/inspect-js/is-arguments/commit/d72ab08147ab5256e1efd61c01b719796699faf0) +- Update `jscs` [`5f6e6d4`](https://github.com/inspect-js/is-arguments/commit/5f6e6d42645845b5663b5fef716e2963686aad8d) +- Update `tape`, `jscs` [`39ae55b`](https://github.com/inspect-js/is-arguments/commit/39ae55b6ef0c3d6206116bd7500bc601485d8698) +- Update `tape`, `jscs` [`594d928`](https://github.com/inspect-js/is-arguments/commit/594d92852cf7a4d93c8ff5ac157fdae9dbefc133) +- Updating dependencies [`183ac15`](https://github.com/inspect-js/is-arguments/commit/183ac151d27032fce4aaf3fa095cce9b086eb651) +- Update `tape` [`77b9cea`](https://github.com/inspect-js/is-arguments/commit/77b9ceae8dcb2c2e73d85f512d0d0309427c4011) +- Lock covert to v1.0.0. [`28d9052`](https://github.com/inspect-js/is-arguments/commit/28d9052eaa99f36ca5c61f35645b5e14ddf6f8f9) +- Updating tape [`d9ee2ac`](https://github.com/inspect-js/is-arguments/commit/d9ee2ac24045fa81ffed356410cfc2d878bc8b4b) +- Updating jscs [`c0cab8f`](https://github.com/inspect-js/is-arguments/commit/c0cab8fd6c0509153142a3cc79a7a4dceba322be) +- Updating jscs [`c59352a`](https://github.com/inspect-js/is-arguments/commit/c59352ae99c0d813168c19b9c888182ea11ae17a) +- Run linter as part of tests [`8b8154e`](https://github.com/inspect-js/is-arguments/commit/8b8154ef5b2566250baed70807affdbba93c3bcf) +- Oops, properly running code coverage checks during tests. [`cc441d0`](https://github.com/inspect-js/is-arguments/commit/cc441d0c488486c688e513f7d129f4f8ea2ee323) +- Updating covert. [`142db90`](https://github.com/inspect-js/is-arguments/commit/142db90aa3448995232c419419523b67a953b012) +- Updating tape [`265fd0f`](https://github.com/inspect-js/is-arguments/commit/265fd0ff3ee71ab8aa3d2d90be74066c1aa7c9c0) +- Updating tape [`7e9aec6`](https://github.com/inspect-js/is-arguments/commit/7e9aec654b8f5fe0bb2f8c940c84da8ec29a2102) +- Updating covert [`d96860a`](https://github.com/inspect-js/is-arguments/commit/d96860ab520ae62a37e80ad259b936ace09954d9) +- Updating tape [`1ec32a0`](https://github.com/inspect-js/is-arguments/commit/1ec32a0c02f53192a94521d63d4cf8fbb567fc84) +- Run code coverage as part of tests [`155ab22`](https://github.com/inspect-js/is-arguments/commit/155ab227902287c5eec653c25bec2cc4b530e635) +- Coverage does not work currently on node 0.6. [`9acf696`](https://github.com/inspect-js/is-arguments/commit/9acf696a1f3e202990fea494615377b40a380b79) +- Testing node 0.6 again [`a23ca07`](https://github.com/inspect-js/is-arguments/commit/a23ca07427cf3801b82e6a93d9a8904f392f4b20) + +## [v1.0.0](https://github.com/inspect-js/is-arguments/compare/v0.1.0...v1.0.0) - 2014-01-07 + +### Commits + +- :metal: 1.0.0 [`fc08874`](https://github.com/inspect-js/is-arguments/commit/fc08874107ac74fca91bd678843dbf7ea3a4c54a) + +## v0.1.0 - 2014-01-07 + +### Commits + +- package.json [`c547055`](https://github.com/inspect-js/is-arguments/commit/c54705585e907f1ef22473bff656904e49d22db2) +- read me! [`72ed639`](https://github.com/inspect-js/is-arguments/commit/72ed639c5db9c8732073ec1d30f14b493bb976da) +- Initial commit [`d2e0264`](https://github.com/inspect-js/is-arguments/commit/d2e0264bed7948b6c4f7bfde12ab351bffbf4cc1) +- Tests. [`032ed16`](https://github.com/inspect-js/is-arguments/commit/032ed16abf54466a75333e1da2ceef780fb58c1e) +- Implementation. [`71c312d`](https://github.com/inspect-js/is-arguments/commit/71c312d76d3b4b99cf7a1e0b442e9492069fba2b) +- Travis CI [`5500a66`](https://github.com/inspect-js/is-arguments/commit/5500a664de6b4484850f02b74641baa6e7d74c50) +- Running code coverage as part of tests. [`88ad34a`](https://github.com/inspect-js/is-arguments/commit/88ad34a133188cea28aa26a9f583653ea3a0260e) diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/LICENSE b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/LICENSE new file mode 100644 index 0000000..47b7b50 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/README.md b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/README.md new file mode 100644 index 0000000..b312512 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/README.md @@ -0,0 +1,47 @@ +# is-arguments [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this an arguments object? It's a harder question than you think. + +## Example + +```js +var isArguments = require('is-arguments'); +var assert = require('assert'); + +assert.equal(isArguments({}), false); +assert.equal(isArguments([]), false); +(function () { + assert.equal(isArguments(arguments), true); +}()) +``` + +## Caveats +If you have modified an actual `arguments` object by giving it a `Symbol.toStringTag` property, then this package will return `false`. + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-arguments +[2]: https://versionbadg.es/inspect-js/is-arguments.svg +[5]: https://david-dm.org/inspect-js/is-arguments.svg +[6]: https://david-dm.org/inspect-js/is-arguments +[7]: https://david-dm.org/inspect-js/is-arguments/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-arguments#info=devDependencies +[11]: https://nodei.co/npm/is-arguments.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-arguments.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-arguments.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-arguments +[codecov-image]: https://codecov.io/gh/inspect-js/is-arguments/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-arguments/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-arguments +[actions-url]: https://github.com/inspect-js/is-arguments/actions diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js new file mode 100644 index 0000000..e17e906 --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js @@ -0,0 +1,33 @@ +'use strict'; + +var hasToStringTag = require('has-tostringtag/shams')(); +var callBound = require('call-bind/callBound'); + +var $toString = callBound('Object.prototype.toString'); + +var isStandardArguments = function isArguments(value) { + if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) { + return false; + } + return $toString(value) === '[object Arguments]'; +}; + +var isLegacyArguments = function isArguments(value) { + if (isStandardArguments(value)) { + return true; + } + return value !== null && + typeof value === 'object' && + typeof value.length === 'number' && + value.length >= 0 && + $toString(value) !== '[object Array]' && + $toString(value.callee) === '[object Function]'; +}; + +var supportsStandardArguments = (function () { + return isStandardArguments(arguments); +}()); + +isStandardArguments.isLegacyArguments = isLegacyArguments; // for tests + +module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments; diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/package.json b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/package.json new file mode 100644 index 0000000..b4ba9ae --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/package.json @@ -0,0 +1,91 @@ +{ + "name": "is-arguments", + "version": "1.1.1", + "description": "Is this an arguments object? It's a harder question than you think.", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "license": "MIT", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx aud --production", + "lint": "eslint .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/is-arguments.git" + }, + "bugs": { + "url": "https://github.com/inspect-js/is-arguments/issues" + }, + "homepage": "https://github.com/inspect-js/is-arguments", + "keywords": [ + "arguments", + "js", + "javascript", + "is-arguments", + "is", + "object" + ], + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^7.32.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.3.0" + }, + "testling": { + "files": "test.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} diff --git a/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/test/index.js b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/test/index.js new file mode 100644 index 0000000..6d7cd5a --- /dev/null +++ b/node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/test/index.js @@ -0,0 +1,44 @@ +'use strict'; + +var test = require('tape'); +var isArguments = require('../'); +var hasToStringTag = require('has-tostringtag/shams')(); + +test('primitives', function (t) { + t.notOk(isArguments([]), 'array is not arguments'); + t.notOk(isArguments({}), 'object is not arguments'); + t.notOk(isArguments(''), 'empty string is not arguments'); + t.notOk(isArguments('foo'), 'string is not arguments'); + t.notOk(isArguments({ length: 2 }), 'naive array-like is not arguments'); + t.end(); +}); + +test('arguments object', function (t) { + t.ok(isArguments(arguments), 'arguments is arguments'); + t.notOk(isArguments(Array.prototype.slice.call(arguments)), 'sliced arguments is not arguments'); + t.end(); +}); + +test('old-style arguments object', function (t) { + var isLegacyArguments = isArguments.isLegacyArguments || isArguments; + var fakeOldArguments = { + callee: function () {}, + length: 3 + }; + t.ok(isLegacyArguments(fakeOldArguments), 'old-style arguments is arguments'); + t.end(); +}); + +test('Symbol.toStringTag', { skip: !hasToStringTag }, function (t) { + var obj = {}; + obj[Symbol.toStringTag] = 'Arguments'; + t.notOk(isArguments(obj), 'object with faked toStringTag is not arguments'); + + var args = (function () { + return arguments; + }()); + args[Symbol.toStringTag] = 'Arguments'; + t.notOk(isArguments(obj), 'real arguments with faked toStringTag is not arguments'); + + t.end(); +}); diff --git a/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.d.ts b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.d.ts new file mode 100644 index 0000000..ac2614d --- /dev/null +++ b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.d.ts @@ -0,0 +1,29 @@ +/** +Check if a value is a plain object. + +An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. + +@example +``` +import isPlainObject = require('is-plain-obj'); + +isPlainObject({foo: 'bar'}); +//=> true + +isPlainObject(new Object()); +//=> true + +isPlainObject(Object.create(null)); +//=> true + +isPlainObject([1, 2, 3]); +//=> false + +class Unicorn {} +isPlainObject(new Unicorn()); +//=> false +``` +*/ +declare function isPlainObj(value: unknown): value is object; + +export = isPlainObj; diff --git a/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.js b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.js new file mode 100644 index 0000000..95079ec --- /dev/null +++ b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/index.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = value => { + if (Object.prototype.toString.call(value) !== '[object Object]') { + return false; + } + + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.prototype; +}; diff --git a/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/license b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/package.json b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/package.json new file mode 100644 index 0000000..87512f1 --- /dev/null +++ b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/package.json @@ -0,0 +1,38 @@ +{ + "name": "is-plain-obj", + "version": "2.1.0", + "description": "Check if a value is a plain object", + "license": "MIT", + "repository": "sindresorhus/is-plain-obj", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "object", + "is", + "check", + "test", + "type", + "plain", + "vanilla", + "pure", + "simple" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/readme.md b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/readme.md new file mode 100644 index 0000000..13571a8 --- /dev/null +++ b/node_modules/.pnpm/is-plain-obj@2.1.0/node_modules/is-plain-obj/readme.md @@ -0,0 +1,54 @@ +# is-plain-obj [![Build Status](https://travis-ci.org/sindresorhus/is-plain-obj.svg?branch=master)](https://travis-ci.org/sindresorhus/is-plain-obj) + +> Check if a value is a plain object + +An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. + + +## Install + +``` +$ npm install is-plain-obj +``` + + +## Usage + +```js +const isPlainObject = require('is-plain-obj'); + +isPlainObject({foo: 'bar'}); +//=> true + +isPlainObject(new Object()); +//=> true + +isPlainObject(Object.create(null)); +//=> true + +isPlainObject([1, 2, 3]); +//=> false + +class Unicorn {} +isPlainObject(new Unicorn()); +//=> false +``` + + +## Related + +- [is-obj](https://github.com/sindresorhus/is-obj) - Check if a value is an object +- [is](https://github.com/sindresorhus/is) - Type check values + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.d.ts b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.d.ts new file mode 100644 index 0000000..809e90c --- /dev/null +++ b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.d.ts @@ -0,0 +1,20 @@ +/** +Check if a value is a regular expression. + +@example +``` +import isRegexp = require('is-regexp'); + +isRegexp('unicorn'); +//=> false + +isRegexp(/unicorn/); +//=> true + +isRegexp(new RegExp('unicorn')); +//=> true +``` +*/ +declare function isRegexp(input: unknown): input is RegExp; + +export = isRegexp; diff --git a/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.js b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.js new file mode 100644 index 0000000..bdc427c --- /dev/null +++ b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = input => Object.prototype.toString.call(input) === '[object RegExp]'; diff --git a/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/license b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/package.json b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/package.json new file mode 100644 index 0000000..becf49f --- /dev/null +++ b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/package.json @@ -0,0 +1,38 @@ +{ + "name": "is-regexp", + "version": "2.1.0", + "description": "Check if a value is a regular expression", + "license": "MIT", + "repository": "sindresorhus/is-regexp", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "regex", + "regexp", + "regular", + "expression", + "regular expression", + "re", + "check", + "type", + "is" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/readme.md b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/readme.md new file mode 100644 index 0000000..54913ad --- /dev/null +++ b/node_modules/.pnpm/is-regexp@2.1.0/node_modules/is-regexp/readme.md @@ -0,0 +1,36 @@ +# is-regexp [![Build Status](https://travis-ci.org/sindresorhus/is-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/is-regexp) + +> Check if a value is a regular expression + + +## Install + +``` +$ npm install is-regexp +``` + + +## Usage + +```js +const isRegexp = require('is-regexp'); + +isRegexp('unicorn'); +//=> false + +isRegexp(/unicorn/); +//=> true + +isRegexp(new RegExp('unicorn')); +//=> true +``` + + +## Related + +- [is](https://github.com/sindresorhus/is) - Type check values + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/has-tostringtag b/node_modules/.pnpm/is-string@1.0.7/node_modules/has-tostringtag new file mode 120000 index 0000000..5c739d3 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/has-tostringtag @@ -0,0 +1 @@ +../../has-tostringtag@1.0.2/node_modules/has-tostringtag \ No newline at end of file diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintignore b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintignore new file mode 100644 index 0000000..404abb2 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintignore @@ -0,0 +1 @@ +coverage/ diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintrc b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintrc new file mode 100644 index 0000000..5bf1191 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.eslintrc @@ -0,0 +1,19 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-name-matching": 0, + "max-statements": [2, 15] + }, + + "overrides": [ + { + "files": ["test.js"], + "rules": { + "no-magic-numbers": 0, + }, + }, + ], +} diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.github/FUNDING.yml b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.github/FUNDING.yml new file mode 100644 index 0000000..519746b --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/is-string +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.nycrc b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.nycrc new file mode 100644 index 0000000..a69aa2d --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/.nycrc @@ -0,0 +1,10 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "exclude": [ + "coverage", + "test", + "test-corejs.js" + ] +} diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/CHANGELOG.md b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/CHANGELOG.md new file mode 100644 index 0000000..6f62043 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/CHANGELOG.md @@ -0,0 +1,114 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). + +## [v1.0.7](https://github.com/inspect-js/is-string/compare/v1.0.6...v1.0.7) - 2021-08-05 + +### Commits + +- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`d973ffd`](https://github.com/inspect-js/is-string/commit/d973ffd2268e10c0e2cd4f0c57ecf8ce0a8d8578) +- [Dev Deps] update `auto-changelog`, `core-js`, `eslint`, `tape` [`4bfaabf`](https://github.com/inspect-js/is-string/commit/4bfaabf877e874ca21d2c44be26f13add8ee2761) + +## [v1.0.6](https://github.com/inspect-js/is-string/compare/v1.0.5...v1.0.6) - 2021-05-07 + +### Commits + +- [Tests] migrate tests to Github Actions [`c7790c8`](https://github.com/inspect-js/is-string/commit/c7790c89e5077251fe7ca32ac29eeee02f1b2751) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`1e52bbd`](https://github.com/inspect-js/is-string/commit/1e52bbd19b1608f6932c0335d9981824584c3186) +- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`83337eb`](https://github.com/inspect-js/is-string/commit/83337ebf55308b7bb9c1befae420760e0f8d8016) +- [meta] do not publish github action workflow files [`b25aea2`](https://github.com/inspect-js/is-string/commit/b25aea2e8a53ed9e9090cf96481590cdc00a0957) +- [readme] update badges [`759ccd9`](https://github.com/inspect-js/is-string/commit/759ccd94de4a2000231a179f91af6b5c12c11e00) +- [Tests] run `nyc` on all tests [`dc02f70`](https://github.com/inspect-js/is-string/commit/dc02f7080c355f0d24368c1622db09f7cc30cdbd) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `tape`; add `aud` [`a0f76fa`](https://github.com/inspect-js/is-string/commit/a0f76fa1990bb580948f9e2daa89bdcda3fae7f0) +- [actions] add "Allow Edits" workflow [`9ec3902`](https://github.com/inspect-js/is-string/commit/9ec390295b4faef7744d2b579c1050be66168cb7) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`57fbe21`](https://github.com/inspect-js/is-string/commit/57fbe215da83a3b601855a9c6543ad1a96de5702) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`191e55f`](https://github.com/inspect-js/is-string/commit/191e55ff1fa782654ffcce2df922e23345b56690) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`1ea2b81`](https://github.com/inspect-js/is-string/commit/1ea2b81e866775a7890e75c44c742204124aa354) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`105d1b9`](https://github.com/inspect-js/is-string/commit/105d1b9851e366ef23c2a27d4064e0d36da25939) +- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`114cfad`](https://github.com/inspect-js/is-string/commit/114cfad854d8860421f847cd99a3bdb8ef1353dc) +- [meta] use `prepublishOnly` script for npm 7+ [`fc38f26`](https://github.com/inspect-js/is-string/commit/fc38f26adb486f50880c5771d145ab2bffb6247a) +- [meta] gitignore coverage output [`3419127`](https://github.com/inspect-js/is-string/commit/34191278f1fa09ba4da801a6fd7a32e31050e759) +- [actions] update rebase action to use checkout v2 [`334eca0`](https://github.com/inspect-js/is-string/commit/334eca02d40f4cf7dc15a8e7d5ff06852028abb5) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`7a332e9`](https://github.com/inspect-js/is-string/commit/7a332e963f1ab717fafa671e0fa8a1b20c53d861) +- [meta] remove explicit audit level config [`04630b1`](https://github.com/inspect-js/is-string/commit/04630b1b535084322ddeae8efb79a8810d7cf325) + +## [v1.0.5](https://github.com/inspect-js/is-string/compare/v1.0.4...v1.0.5) - 2019-12-18 + +### Commits + +- [Tests] use shared travis-ci configs [`4121d6b`](https://github.com/inspect-js/is-string/commit/4121d6b168ae1d54a81791ee6877f9813cab6253) +- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`e7a3e89`](https://github.com/inspect-js/is-string/commit/e7a3e89ccb9638d73f45dbcb2a42e509bd3153c4) +- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`6c380a7`](https://github.com/inspect-js/is-string/commit/6c380a70011714370e754fa0df95f56cdcaa3e60) +- [Tests] remove `jscs` [`3d49592`](https://github.com/inspect-js/is-string/commit/3d49592b9880fcb1a23b67286445281131a553e3) +- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `eslint`, `nsp`, `semver`. [`cc6983d`](https://github.com/inspect-js/is-string/commit/cc6983d06bc98f4ae9b7c9439d5d73c7318d8acd) +- [meta] add `auto-changelog` [`b857897`](https://github.com/inspect-js/is-string/commit/b85789723ce3a7064536598e0fcdd495257c6134) +- [meta] remove unused Makefile and associated utilities [`3f0f51c`](https://github.com/inspect-js/is-string/commit/3f0f51cbae1f97dbe1466eee88d105b3df0d2f0a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `covert`, `tape`, `semver` [`9d4a95e`](https://github.com/inspect-js/is-string/commit/9d4a95e4473fe8195501878525b5af5948aa45c9) +- Update `eslint` [`e861b4b`](https://github.com/inspect-js/is-string/commit/e861b4bc71f5390670aebdff91119a1f8aeeb88a) +- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`172e2dd`](https://github.com/inspect-js/is-string/commit/172e2dd1a0b9eb042bcb9a80ff5e774a90ff0695) +- Test on `node` and `io.js` latest. [`fd426cd`](https://github.com/inspect-js/is-string/commit/fd426cd18b22b0d0e1731598125393dcfe0c5704) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`23bdf83`](https://github.com/inspect-js/is-string/commit/23bdf83cf42138eba09f45bd0b040b069f9839d4) +- [actions] add automatic rebasing / merge commit blocking [`96153c0`](https://github.com/inspect-js/is-string/commit/96153c0d687a7fda2261f4c02add5d0b41e8aed7) +- [meta] create FUNDING.yml [`66ae246`](https://github.com/inspect-js/is-string/commit/66ae246d6cdaa4ccbc21f7c144b672139b8ccef6) +- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`817361a`](https://github.com/inspect-js/is-string/commit/817361a9673cd1ec9854b52578a980159f7d8701) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `tape` [`fc35d3f`](https://github.com/inspect-js/is-string/commit/fc35d3feb40921bb22e1639903cb7f2fab77814b) +- [Dev Deps] update `jscs` [`886767e`](https://github.com/inspect-js/is-string/commit/886767e04e5ad59ac0bc926a87233cc8546c8b4f) +- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`3410922`](https://github.com/inspect-js/is-string/commit/341092203c11a3b92eee55a7ecb7b8265e8fcecd) +- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4d6c73b`](https://github.com/inspect-js/is-string/commit/4d6c73b507bcd39050ef71e554069f72fc5b222a) +- Update `nsp`, `eslint` [`b11de49`](https://github.com/inspect-js/is-string/commit/b11de4910beee1ffe1e67fbe25ec6707ca796b27) +- Update `eslint`, `semver` [`0777977`](https://github.com/inspect-js/is-string/commit/0777977757a85a1db75831d03a14b4b1fde05d7e) +- Only apps should have lockfiles [`78b49ff`](https://github.com/inspect-js/is-string/commit/78b49ffd04d4cd8c57d9e7b485421fbf3641b41b) +- [meta] add `funding` field [`81328a6`](https://github.com/inspect-js/is-string/commit/81328a6ef3eee989164127e4c0c82f1da73d3567) +- [Dev Deps] update `eslint`, `tape` [`fc9a225`](https://github.com/inspect-js/is-string/commit/fc9a225b27935f7c9c2704281d7fddd3614d3cb8) +- [Tests] use `eclint` instead of `editorconfig-tools` [`59c2c61`](https://github.com/inspect-js/is-string/commit/59c2c610dbd8e8ca1e4aa3fa9c9f93205cab9b07) +- [Dev Deps] Update `tape`, `eslint` [`a429816`](https://github.com/inspect-js/is-string/commit/a429816688e23c81948b4ae72324c26c27849b7c) +- Test on `io.js` `v2.2` [`08b476e`](https://github.com/inspect-js/is-string/commit/08b476ed0734a70e3091c04ddd2f173a2df21eb2) +- Test up to `io.js` `v3.0` [`22637ef`](https://github.com/inspect-js/is-string/commit/22637ef9e0030533df85cf1992fc099a88b1924c) +- [meta] add `safe-publish-latest` [`20ccb48`](https://github.com/inspect-js/is-string/commit/20ccb48fd85f0245eb893507d00003090da020d0) +- [Dev Deps] update `tape` [`06b58a0`](https://github.com/inspect-js/is-string/commit/06b58a048c2a820e5611ad2bd9ddfbe893295a57) +- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`ea7cf84`](https://github.com/inspect-js/is-string/commit/ea7cf849b952c924d1687a302098251a7b827c80) +- Test on `io.js` `v2.4` [`66ec3ea`](https://github.com/inspect-js/is-string/commit/66ec3ea390b364583a792799b53857fd186ccc88) +- Test on `io.js` `v2.3` [`ca6e796`](https://github.com/inspect-js/is-string/commit/ca6e796f16ec433b88962162fde8012f28e18f1e) +- Fix tests for faked @@toStringTag [`3cce832`](https://github.com/inspect-js/is-string/commit/3cce8329133dfd233987359df151018b3b136be1) + +## [v1.0.4](https://github.com/inspect-js/is-string/compare/v1.0.3...v1.0.4) - 2015-01-29 + +### Commits + +- If @@toStringTag is not present, use the old-school Object#toString test. [`30675ec`](https://github.com/inspect-js/is-string/commit/30675ecb5c5cc43873918661a414a1d0f8b77325) + +## [v1.0.3](https://github.com/inspect-js/is-string/compare/v1.0.2...v1.0.3) - 2015-01-29 + +### Commits + +- Refactor to aid optimization of non-try/catch code. [`9b2772a`](https://github.com/inspect-js/is-string/commit/9b2772abe09ba8cbaa631322cc226ee906d2db22) + +## [v1.0.2](https://github.com/inspect-js/is-string/compare/v1.0.1...v1.0.2) - 2015-01-29 + +### Commits + +- Fix broken package.json [`dc921d3`](https://github.com/inspect-js/is-string/commit/dc921d332b64e4041162f04e4712b0dc687863a5) + +## [v1.0.1](https://github.com/inspect-js/is-string/compare/v1.0.0...v1.0.1) - 2015-01-29 + +### Commits + +- Fix eslint config. [`c4e05bd`](https://github.com/inspect-js/is-string/commit/c4e05bd171da6002d432e451fd48912db8b048e0) +- Add early exits for typeof "string", or typeof not "object". [`82f41d3`](https://github.com/inspect-js/is-string/commit/82f41d36a599bc6a06152792c84c7683e412c513) + +## v1.0.0 - 2015-01-29 + +### Commits + +- Dotfiles. [`45bc9dd`](https://github.com/inspect-js/is-string/commit/45bc9dd60201722344986a6c7536be9ea9ccefbf) +- `make release` [`23707f5`](https://github.com/inspect-js/is-string/commit/23707f5ecfdf00afb0e57c06ac07f7f49cdeb606) +- package.json [`575ad81`](https://github.com/inspect-js/is-string/commit/575ad811c61b156cfbcc60ff61947183c6ebe6a2) +- Read me [`3f67c9a`](https://github.com/inspect-js/is-string/commit/3f67c9a0725f811845d38646a19322895cd03981) +- Initial commit [`2c26a7a`](https://github.com/inspect-js/is-string/commit/2c26a7a2e41dec77be2c59d5847f29a6ab7c0b29) +- Tests. [`38c987b`](https://github.com/inspect-js/is-string/commit/38c987b8513b0ac03b0897e0fce7de8135d4ee0f) +- Implementation. [`0471d59`](https://github.com/inspect-js/is-string/commit/0471d59078d7f3f77619913ec21c57c0af27114c) diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/LICENSE b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/LICENSE new file mode 100644 index 0000000..b43df44 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. + diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/README.md b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/README.md new file mode 100644 index 0000000..d9d7edf --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/README.md @@ -0,0 +1,56 @@ +# is-string [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag. + +## Example + +```js +var isString = require('is-string'); +var assert = require('assert'); + +assert.notOk(isString(undefined)); +assert.notOk(isString(null)); +assert.notOk(isString(false)); +assert.notOk(isString(true)); +assert.notOk(isString(function () {})); +assert.notOk(isString([])); +assert.notOk(isString({})); +assert.notOk(isString(/a/g)); +assert.notOk(isString(new RegExp('a', 'g'))); +assert.notOk(isString(new Date())); +assert.notOk(isString(42)); +assert.notOk(isString(NaN)); +assert.notOk(isString(Infinity)); +assert.notOk(isString(new Number(42))); + +assert.ok(isString('foo')); +assert.ok(isString(Object('foo'))); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/is-string +[2]: https://versionbadg.es/inspect-js/is-string.svg +[5]: https://david-dm.org/inspect-js/is-string.svg +[6]: https://david-dm.org/inspect-js/is-string +[7]: https://david-dm.org/inspect-js/is-string/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-string#info=devDependencies +[11]: https://nodei.co/npm/is-string.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-string.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/is-string.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-string +[codecov-image]: https://codecov.io/gh/inspect-js/is-string/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-string/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-string +[actions-url]: https://github.com/inspect-js/is-string/actions diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js new file mode 100644 index 0000000..f44f7bb --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js @@ -0,0 +1,24 @@ +'use strict'; + +var strValue = String.prototype.valueOf; +var tryStringObject = function tryStringObject(value) { + try { + strValue.call(value); + return true; + } catch (e) { + return false; + } +}; +var toStr = Object.prototype.toString; +var strClass = '[object String]'; +var hasToStringTag = require('has-tostringtag/shams')(); + +module.exports = function isString(value) { + if (typeof value === 'string') { + return true; + } + if (typeof value !== 'object') { + return false; + } + return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; +}; diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/package.json b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/package.json new file mode 100644 index 0000000..9b36548 --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/package.json @@ -0,0 +1,81 @@ +{ + "name": "is-string", + "version": "1.0.7", + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "description": "Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag.", + "license": "MIT", + "main": "index.js", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test:corejs": "nyc tape test-corejs.js", + "test": "npm run tests-only && npm run test:corejs", + "posttest": "npx aud --production", + "lint": "eslint .", + "eccheck": "eclint check *.js **/*.js > /dev/null", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/ljharb/is-string.git" + }, + "keywords": [ + "String", + "string", + "ES6", + "toStringTag", + "@@toStringTag", + "String object" + ], + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "core-js": "^3.16.0", + "eclint": "^2.8.1", + "eslint": "^7.32.0", + "foreach": "^2.0.5", + "indexof": "^0.0.1", + "is": "^3.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.3.0" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false + } +} diff --git a/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/test/index.js b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/test/index.js new file mode 100644 index 0000000..5239dfa --- /dev/null +++ b/node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/test/index.js @@ -0,0 +1,39 @@ +'use strict'; + +var test = require('tape'); +var isString = require('../'); +var hasToStringTag = require('has-tostringtag/shams')(); + +test('not Strings', function (t) { + t.notOk(isString(), 'undefined is not String'); + t.notOk(isString(null), 'null is not String'); + t.notOk(isString(false), 'false is not String'); + t.notOk(isString(true), 'true is not String'); + t.notOk(isString([]), 'array is not String'); + t.notOk(isString({}), 'object is not String'); + t.notOk(isString(function () {}), 'function is not String'); + t.notOk(isString(/a/g), 'regex literal is not String'); + t.notOk(isString(new RegExp('a', 'g')), 'regex object is not String'); + t.notOk(isString(new Date()), 'new Date() is not String'); + t.notOk(isString(42), 'number is not String'); + t.notOk(isString(Object(42)), 'number object is not String'); + t.notOk(isString(NaN), 'NaN is not String'); + t.notOk(isString(Infinity), 'Infinity is not String'); + t.end(); +}); + +test('@@toStringTag', { skip: !hasToStringTag }, function (t) { + var fakeString = { + toString: function () { return '7'; }, + valueOf: function () { return '42'; } + }; + fakeString[Symbol.toStringTag] = 'String'; + t.notOk(isString(fakeString), 'fake String with @@toStringTag "String" is not String'); + t.end(); +}); + +test('Strings', function (t) { + t.ok(isString('foo'), 'string primitive is String'); + t.ok(isString(Object('foo')), 'string object is String'); + t.end(); +}); diff --git a/node_modules/.pnpm/lock.yaml b/node_modules/.pnpm/lock.yaml new file mode 100644 index 0000000..f5cbaf8 --- /dev/null +++ b/node_modules/.pnpm/lock.yaml @@ -0,0 +1,347 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@validatem/core': + specifier: ^0.5.0 + version: 0.5.0 + '@validatem/error': + specifier: ^1.1.0 + version: 1.1.0 + '@validatem/is-non-empty-string': + specifier: ^0.1.0 + version: 0.1.0 + '@validatem/required': + specifier: ^0.1.1 + version: 0.1.1 + +devDependencies: + create-event-emitter: + specifier: ^1.0.0 + version: 1.0.0 + +packages: + + /@validatem/annotate-errors@0.1.2: + resolution: {integrity: sha512-EuX7pzdYI/YpTmZcgdPG481Oi3elAg8JWh/LYXuE1h6MaZk3A8eP5DD33/l7EoKzrysn6y8nCsqNa1ngei562w==} + dependencies: + '@validatem/match-validation-error': 0.1.0 + dev: false + + /@validatem/any-property@0.1.3: + resolution: {integrity: sha512-jYWxif5ff9pccu7566LIQ/4+snlApXEJUimBywzAriBgS3r4eDBbz3oZFHuiPmhxNK/NNof5YUS+L6Sk3zaMfg==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + default-value: 1.0.0 + dev: false + + /@validatem/combinator@0.1.2: + resolution: {integrity: sha512-vE8t1tNXknmN62FlN6LxQmA2c6TwVKZ+fl/Wit3H2unFdOhu7SZj2kRPGjAXdK/ARh/3svYfUBeD75pea0j1Sw==} + dev: false + + /@validatem/core@0.5.0: + resolution: {integrity: sha512-hLEdoRFRvFGUqHFFK0eR8r7sTJaqQjzB81FVMp86esZJiBrblnWhpZtzVouguoaAaKFX9oiWI3nAQc73xYrTJg==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/any-property': 0.1.3 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/match-versioned-special': 0.1.1 + '@validatem/match-virtual-property': 0.1.0 + '@validatem/normalize-rules': 0.1.3 + '@validatem/required': 0.1.1 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + create-error: 0.3.1 + default-value: 1.0.0 + execall: 2.0.0 + indent-string: 4.0.0 + is-arguments: 1.1.1 + supports-color: 7.2.0 + syncpipe: 1.0.0 + dev: false + + /@validatem/error@1.1.0: + resolution: {integrity: sha512-gZJEoZq1COi/8/5v0fVKQ9uX54x5lb5HbV7mzIOhY6dqjmLNfxdQmpECZPQrCAOpcRkRMJ7zaFhq4UTslpY9yA==} + dev: false + + /@validatem/has-shape@0.1.8: + resolution: {integrity: sha512-x2i8toW1uraFF2Vl6WBl4CScbBeg5alrtoCKMyXbJkHf2B5QxL/ftUh2RQRcBzx6U0i7KUb8vdShcWAa+fehRQ==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + array-union: 2.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + dev: false + + /@validatem/is-non-empty-string@0.1.0: + resolution: {integrity: sha512-U6TmKLH6LfhQKldRE4xNZi8ovNrodSXgUiiEY9C4UZ8334CdhOXs5lxIyOqMRvM++Ex5NmpQIAFDOYGCr4RtoQ==} + dependencies: + '@validatem/error': 1.1.0 + '@validatem/is-string': 0.1.1 + dev: false + + /@validatem/is-plain-object@0.1.1: + resolution: {integrity: sha512-aNGbNIbKRpYI0lRBczlTBbiA+nqN52ADAASdySKg2/QeSCVtYS4uOIeCNIJRAgXe/5sUnLTuL4pgq628uAl7Kw==} + dependencies: + '@validatem/error': 1.1.0 + is-plain-obj: 2.1.0 + dev: false + + /@validatem/is-string@0.1.1: + resolution: {integrity: sha512-iyRVYRPgRt2ZlWyc7pzN1WkO6apzE8at39XQa4WUr8qRPfJn12V4khS9MumWbZs8N2qqajrxMigB2LJUCKOCRg==} + dependencies: + '@validatem/error': 1.1.0 + is-string: 1.0.7 + dev: false + + /@validatem/match-special@0.1.0: + resolution: {integrity: sha512-TFiq9Wk/1Hoja4PK85WwNYnwBXk3+Lgoj59ZIMxm2an1qmNYp8j+BnSvkKBflba451yIn6V1laU9NJf+/NYZgw==} + dev: false + + /@validatem/match-validation-error@0.1.0: + resolution: {integrity: sha512-6akGTk7DdulOreyqDiGdikwRSixQz/AlvARSX18dcWaTFc79KxCLouL2hyoFcor9IIUhu5RTY4/i756y4T1yxA==} + dependencies: + '@validatem/match-versioned-special': 0.1.1 + dev: false + + /@validatem/match-versioned-special@0.1.1: + resolution: {integrity: sha512-RRNeFSgzqSo0sKck/92a+yC9zKdt+DD6y4TK70+VDKVppdWsb8YzC/FBTucseN1OYrr1KcBPKNVZePg1NTROYw==} + dev: false + + /@validatem/match-virtual-property@0.1.0: + resolution: {integrity: sha512-ssd3coFgwbLuqvZftLZTy3eHN0TFST8oTS2XTViQdXJPXVoJmwEKBpFhXgwnb5Ly1CE037R/KWpjhd1TP/56kQ==} + dev: false + + /@validatem/normalize-rules@0.1.3: + resolution: {integrity: sha512-HHPceAP2ce9NWymIZrgLCTzpdwXNRBCCB5H6ZPc5ggOrbmh4STpT83fLazleHtvYNlqgXZ4GjQOvCwrjaM+qEA==} + dependencies: + '@validatem/has-shape': 0.1.8 + '@validatem/is-plain-object': 0.1.1 + '@validatem/match-special': 0.1.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + is-plain-obj: 2.1.0 + dev: false + + /@validatem/required@0.1.1: + resolution: {integrity: sha512-vI4NzLfay4RFAzp7xyU34PHb8sAo6w/3frrNh1EY9Xjnw2zxjY5oaxwmbFP1jVevBE6QQEnKogtzUHz/Zuvh6g==} + dev: false + + /@validatem/validation-result@0.1.2: + resolution: {integrity: sha512-okmP8JarIwIgfpaVcvZGuQ1yOsLKT3Egt49Ynz6h1MAeGsP/bGHXkkXtbiWOVsk5Tzku5vDVFSrFnF+5IEHKxw==} + dependencies: + default-value: 1.0.0 + dev: false + + /@validatem/virtual-property@0.1.0: + resolution: {integrity: sha512-JUUvWtdqoSkOwlsl20oB3qFHYIL05a/TAfdY4AJcs55QeVTiX5iI1b8IoQW644sIWWooBuLv+XwoxjRsQFczlQ==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /as-expression@1.0.0: + resolution: {integrity: sha512-Iqh4GxNUfxbJdGn6b7/XMzc8m1Dz2ZHouBQ9DDTzyMRO3VPPIAXeoY/sucRxxxXKbUtzwzWZSN6jPR3zfpYHHA==} + dev: false + + /assure-array@1.0.0: + resolution: {integrity: sha512-igvOvGYidAcJKr6YQIHzLivUpAdqUfi7MN0QfrEnFtifQvuw6D0W4oInrIVgTaefJ+QBVWAj8ZYuUGNnwq6Ydw==} + dev: false + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /clone-regexp@2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: false + + /create-error@0.3.1: + resolution: {integrity: sha512-n/Q4aSCtYuuDneEW5Q+nd0IIZwbwmX/oF6wKcDUhXGJNwhmp2WHEoWKz7X+/H7rBtjimInW7f0ceouxU0SmuzQ==} + dev: false + + /create-event-emitter@1.0.0: + resolution: {integrity: sha512-4DT/4prJ1LPPM2EycyBj1P5SzmkeCGCmBFwCEMNy5swGX2vjJ9z5qNc72cbwPGr3MkLN3tjbeTmbqqzSOBhFFw==} + dev: true + + /default-value@1.0.0: + resolution: {integrity: sha512-y6j7G55tgWG7nfjXUNy/WkTLGExiPEUlhGv0zqgqKdlOwJnDDy/dbk7yCozn4biAGIRnMI+9fyZ1V2fZ7tjp6Q==} + dependencies: + es6-promise-try: 0.0.1 + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /es6-promise-try@0.0.1: + resolution: {integrity: sha512-T6f3cNyF8y+3uua2IDGpGmeoDe2w7PXGfPGS94TyLfQLPzYVvZUfM8dQuN4DuVXpelK4tg9F7zKzZHzNS2f2IQ==} + dev: false + + /execall@2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: false + + /flatten@1.0.3: + resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} + deprecated: flatten is deprecated in favor of utility frameworks such as lodash. + dev: false + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: false + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: false + + /is-regexp@2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: false + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /syncpipe@1.0.0: + resolution: {integrity: sha512-cdiAFTnFJRvUaNPDc2n9CqoFvtIL3+JUMJZrC3kA3FzpugHOqu0TvkgNwmnxPZ5/WjAzMcfMS3xm+AO7rg/j/w==} + dependencies: + assure-array: 1.0.0 + dev: false diff --git a/node_modules/.pnpm/node_modules/@validatem/annotate-errors b/node_modules/.pnpm/node_modules/@validatem/annotate-errors new file mode 120000 index 0000000..73558c6 --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/annotate-errors @@ -0,0 +1 @@ +../../@validatem+annotate-errors@0.1.2/node_modules/@validatem/annotate-errors \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/any-property b/node_modules/.pnpm/node_modules/@validatem/any-property new file mode 120000 index 0000000..782feaa --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/any-property @@ -0,0 +1 @@ +../../@validatem+any-property@0.1.3/node_modules/@validatem/any-property \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/combinator b/node_modules/.pnpm/node_modules/@validatem/combinator new file mode 120000 index 0000000..5316c11 --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/combinator @@ -0,0 +1 @@ +../../@validatem+combinator@0.1.2/node_modules/@validatem/combinator \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/has-shape b/node_modules/.pnpm/node_modules/@validatem/has-shape new file mode 120000 index 0000000..37451c4 --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/has-shape @@ -0,0 +1 @@ +../../@validatem+has-shape@0.1.8/node_modules/@validatem/has-shape \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/is-plain-object b/node_modules/.pnpm/node_modules/@validatem/is-plain-object new file mode 120000 index 0000000..2d9563b --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/is-plain-object @@ -0,0 +1 @@ +../../@validatem+is-plain-object@0.1.1/node_modules/@validatem/is-plain-object \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/is-string b/node_modules/.pnpm/node_modules/@validatem/is-string new file mode 120000 index 0000000..3b928fd --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/is-string @@ -0,0 +1 @@ +../../@validatem+is-string@0.1.1/node_modules/@validatem/is-string \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/match-special b/node_modules/.pnpm/node_modules/@validatem/match-special new file mode 120000 index 0000000..5293fef --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/match-special @@ -0,0 +1 @@ +../../@validatem+match-special@0.1.0/node_modules/@validatem/match-special \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/match-validation-error b/node_modules/.pnpm/node_modules/@validatem/match-validation-error new file mode 120000 index 0000000..2b0e8e3 --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/match-validation-error @@ -0,0 +1 @@ +../../@validatem+match-validation-error@0.1.0/node_modules/@validatem/match-validation-error \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/match-versioned-special b/node_modules/.pnpm/node_modules/@validatem/match-versioned-special new file mode 120000 index 0000000..cfa1d1d --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/match-versioned-special @@ -0,0 +1 @@ +../../@validatem+match-versioned-special@0.1.1/node_modules/@validatem/match-versioned-special \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/match-virtual-property b/node_modules/.pnpm/node_modules/@validatem/match-virtual-property new file mode 120000 index 0000000..f927a16 --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/match-virtual-property @@ -0,0 +1 @@ +../../@validatem+match-virtual-property@0.1.0/node_modules/@validatem/match-virtual-property \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/normalize-rules b/node_modules/.pnpm/node_modules/@validatem/normalize-rules new file mode 120000 index 0000000..650461e --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/normalize-rules @@ -0,0 +1 @@ +../../@validatem+normalize-rules@0.1.3/node_modules/@validatem/normalize-rules \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/validation-result b/node_modules/.pnpm/node_modules/@validatem/validation-result new file mode 120000 index 0000000..9f8a81c --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/validation-result @@ -0,0 +1 @@ +../../@validatem+validation-result@0.1.2/node_modules/@validatem/validation-result \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/@validatem/virtual-property b/node_modules/.pnpm/node_modules/@validatem/virtual-property new file mode 120000 index 0000000..9efa63e --- /dev/null +++ b/node_modules/.pnpm/node_modules/@validatem/virtual-property @@ -0,0 +1 @@ +../../@validatem+virtual-property@0.1.0/node_modules/@validatem/virtual-property \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/array-union b/node_modules/.pnpm/node_modules/array-union new file mode 120000 index 0000000..16663df --- /dev/null +++ b/node_modules/.pnpm/node_modules/array-union @@ -0,0 +1 @@ +../array-union@2.1.0/node_modules/array-union \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/as-expression b/node_modules/.pnpm/node_modules/as-expression new file mode 120000 index 0000000..96942d5 --- /dev/null +++ b/node_modules/.pnpm/node_modules/as-expression @@ -0,0 +1 @@ +../as-expression@1.0.0/node_modules/as-expression \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/assure-array b/node_modules/.pnpm/node_modules/assure-array new file mode 120000 index 0000000..413c47c --- /dev/null +++ b/node_modules/.pnpm/node_modules/assure-array @@ -0,0 +1 @@ +../assure-array@1.0.0/node_modules/assure-array \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/call-bind b/node_modules/.pnpm/node_modules/call-bind new file mode 120000 index 0000000..d5e0254 --- /dev/null +++ b/node_modules/.pnpm/node_modules/call-bind @@ -0,0 +1 @@ +../call-bind@1.0.7/node_modules/call-bind \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/clone-regexp b/node_modules/.pnpm/node_modules/clone-regexp new file mode 120000 index 0000000..e5ec528 --- /dev/null +++ b/node_modules/.pnpm/node_modules/clone-regexp @@ -0,0 +1 @@ +../clone-regexp@2.2.0/node_modules/clone-regexp \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/create-error b/node_modules/.pnpm/node_modules/create-error new file mode 120000 index 0000000..59e254e --- /dev/null +++ b/node_modules/.pnpm/node_modules/create-error @@ -0,0 +1 @@ +../create-error@0.3.1/node_modules/create-error \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/default-value b/node_modules/.pnpm/node_modules/default-value new file mode 120000 index 0000000..194d2dd --- /dev/null +++ b/node_modules/.pnpm/node_modules/default-value @@ -0,0 +1 @@ +../default-value@1.0.0/node_modules/default-value \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/define-data-property b/node_modules/.pnpm/node_modules/define-data-property new file mode 120000 index 0000000..c3e2bbf --- /dev/null +++ b/node_modules/.pnpm/node_modules/define-data-property @@ -0,0 +1 @@ +../define-data-property@1.1.4/node_modules/define-data-property \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/es-define-property b/node_modules/.pnpm/node_modules/es-define-property new file mode 120000 index 0000000..6d92a24 --- /dev/null +++ b/node_modules/.pnpm/node_modules/es-define-property @@ -0,0 +1 @@ +../es-define-property@1.0.0/node_modules/es-define-property \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/es-errors b/node_modules/.pnpm/node_modules/es-errors new file mode 120000 index 0000000..c3f76ff --- /dev/null +++ b/node_modules/.pnpm/node_modules/es-errors @@ -0,0 +1 @@ +../es-errors@1.3.0/node_modules/es-errors \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/es6-promise-try b/node_modules/.pnpm/node_modules/es6-promise-try new file mode 120000 index 0000000..36d89ab --- /dev/null +++ b/node_modules/.pnpm/node_modules/es6-promise-try @@ -0,0 +1 @@ +../es6-promise-try@0.0.1/node_modules/es6-promise-try \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/execall b/node_modules/.pnpm/node_modules/execall new file mode 120000 index 0000000..e39c79d --- /dev/null +++ b/node_modules/.pnpm/node_modules/execall @@ -0,0 +1 @@ +../execall@2.0.0/node_modules/execall \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/flatten b/node_modules/.pnpm/node_modules/flatten new file mode 120000 index 0000000..8cabd2b --- /dev/null +++ b/node_modules/.pnpm/node_modules/flatten @@ -0,0 +1 @@ +../flatten@1.0.3/node_modules/flatten \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/function-bind b/node_modules/.pnpm/node_modules/function-bind new file mode 120000 index 0000000..e517525 --- /dev/null +++ b/node_modules/.pnpm/node_modules/function-bind @@ -0,0 +1 @@ +../function-bind@1.1.2/node_modules/function-bind \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/get-intrinsic b/node_modules/.pnpm/node_modules/get-intrinsic new file mode 120000 index 0000000..73bef28 --- /dev/null +++ b/node_modules/.pnpm/node_modules/get-intrinsic @@ -0,0 +1 @@ +../get-intrinsic@1.2.4/node_modules/get-intrinsic \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/gopd b/node_modules/.pnpm/node_modules/gopd new file mode 120000 index 0000000..bc2a1f2 --- /dev/null +++ b/node_modules/.pnpm/node_modules/gopd @@ -0,0 +1 @@ +../gopd@1.0.1/node_modules/gopd \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/has-flag b/node_modules/.pnpm/node_modules/has-flag new file mode 120000 index 0000000..b69f202 --- /dev/null +++ b/node_modules/.pnpm/node_modules/has-flag @@ -0,0 +1 @@ +../has-flag@4.0.0/node_modules/has-flag \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/has-property-descriptors b/node_modules/.pnpm/node_modules/has-property-descriptors new file mode 120000 index 0000000..a742992 --- /dev/null +++ b/node_modules/.pnpm/node_modules/has-property-descriptors @@ -0,0 +1 @@ +../has-property-descriptors@1.0.2/node_modules/has-property-descriptors \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/has-proto b/node_modules/.pnpm/node_modules/has-proto new file mode 120000 index 0000000..2f84fdc --- /dev/null +++ b/node_modules/.pnpm/node_modules/has-proto @@ -0,0 +1 @@ +../has-proto@1.0.3/node_modules/has-proto \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/has-symbols b/node_modules/.pnpm/node_modules/has-symbols new file mode 120000 index 0000000..66a213f --- /dev/null +++ b/node_modules/.pnpm/node_modules/has-symbols @@ -0,0 +1 @@ +../has-symbols@1.0.3/node_modules/has-symbols \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/has-tostringtag b/node_modules/.pnpm/node_modules/has-tostringtag new file mode 120000 index 0000000..e0ffa0d --- /dev/null +++ b/node_modules/.pnpm/node_modules/has-tostringtag @@ -0,0 +1 @@ +../has-tostringtag@1.0.2/node_modules/has-tostringtag \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/hasown b/node_modules/.pnpm/node_modules/hasown new file mode 120000 index 0000000..e436b93 --- /dev/null +++ b/node_modules/.pnpm/node_modules/hasown @@ -0,0 +1 @@ +../hasown@2.0.2/node_modules/hasown \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/indent-string b/node_modules/.pnpm/node_modules/indent-string new file mode 120000 index 0000000..40fec7c --- /dev/null +++ b/node_modules/.pnpm/node_modules/indent-string @@ -0,0 +1 @@ +../indent-string@4.0.0/node_modules/indent-string \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/is-arguments b/node_modules/.pnpm/node_modules/is-arguments new file mode 120000 index 0000000..87d4cb7 --- /dev/null +++ b/node_modules/.pnpm/node_modules/is-arguments @@ -0,0 +1 @@ +../is-arguments@1.1.1/node_modules/is-arguments \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/is-plain-obj b/node_modules/.pnpm/node_modules/is-plain-obj new file mode 120000 index 0000000..ee1c498 --- /dev/null +++ b/node_modules/.pnpm/node_modules/is-plain-obj @@ -0,0 +1 @@ +../is-plain-obj@2.1.0/node_modules/is-plain-obj \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/is-regexp b/node_modules/.pnpm/node_modules/is-regexp new file mode 120000 index 0000000..26956c4 --- /dev/null +++ b/node_modules/.pnpm/node_modules/is-regexp @@ -0,0 +1 @@ +../is-regexp@2.1.0/node_modules/is-regexp \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/is-string b/node_modules/.pnpm/node_modules/is-string new file mode 120000 index 0000000..b0ce640 --- /dev/null +++ b/node_modules/.pnpm/node_modules/is-string @@ -0,0 +1 @@ +../is-string@1.0.7/node_modules/is-string \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/set-function-length b/node_modules/.pnpm/node_modules/set-function-length new file mode 120000 index 0000000..6d38705 --- /dev/null +++ b/node_modules/.pnpm/node_modules/set-function-length @@ -0,0 +1 @@ +../set-function-length@1.2.2/node_modules/set-function-length \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/supports-color b/node_modules/.pnpm/node_modules/supports-color new file mode 120000 index 0000000..337e9ac --- /dev/null +++ b/node_modules/.pnpm/node_modules/supports-color @@ -0,0 +1 @@ +../supports-color@7.2.0/node_modules/supports-color \ No newline at end of file diff --git a/node_modules/.pnpm/node_modules/syncpipe b/node_modules/.pnpm/node_modules/syncpipe new file mode 120000 index 0000000..80a0932 --- /dev/null +++ b/node_modules/.pnpm/node_modules/syncpipe @@ -0,0 +1 @@ +../syncpipe@1.0.0/node_modules/syncpipe \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/define-data-property b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/define-data-property new file mode 120000 index 0000000..bb314a4 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/define-data-property @@ -0,0 +1 @@ +../../define-data-property@1.1.4/node_modules/define-data-property \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/es-errors b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/es-errors new file mode 120000 index 0000000..fccce4e --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/es-errors @@ -0,0 +1 @@ +../../es-errors@1.3.0/node_modules/es-errors \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/function-bind b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/function-bind new file mode 120000 index 0000000..62a99de --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/function-bind @@ -0,0 +1 @@ +../../function-bind@1.1.2/node_modules/function-bind \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/get-intrinsic b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/get-intrinsic new file mode 120000 index 0000000..ae6df74 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/get-intrinsic @@ -0,0 +1 @@ +../../get-intrinsic@1.2.4/node_modules/get-intrinsic \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/gopd b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/gopd new file mode 120000 index 0000000..32ce969 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/gopd @@ -0,0 +1 @@ +../../gopd@1.0.1/node_modules/gopd \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/has-property-descriptors b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/has-property-descriptors new file mode 120000 index 0000000..38ce4a8 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/has-property-descriptors @@ -0,0 +1 @@ +../../has-property-descriptors@1.0.2/node_modules/has-property-descriptors \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.eslintrc b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.eslintrc new file mode 100644 index 0000000..7cff507 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.eslintrc @@ -0,0 +1,27 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "id-length": "off", + "new-cap": ["error", { + "capIsNewExceptions": [ + "GetIntrinsic" + ], + }], + "no-extra-parens": "off", + }, + + "overrides": [ + { + "files": ["test/**/*.js"], + "rules": { + "id-length": "off", + "max-lines-per-function": "off", + "multiline-comment-style": "off", + "no-empty-function": "off", + }, + }, + ], +} diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.github/FUNDING.yml b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.github/FUNDING.yml new file mode 100644 index 0000000..92feb6f --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/set-function-name +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.nycrc b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.nycrc new file mode 100644 index 0000000..1826526 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "test" + ] +} diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/CHANGELOG.md b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/CHANGELOG.md new file mode 100644 index 0000000..bac439d --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/CHANGELOG.md @@ -0,0 +1,70 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.2](https://github.com/ljharb/set-function-length/compare/v1.2.1...v1.2.2) - 2024-03-09 + +### Commits + +- [types] use shared config [`027032f`](https://github.com/ljharb/set-function-length/commit/027032fe9cc439644a07248ea6a8d813fcc767cb) +- [actions] remove redundant finisher; use reusable workflow [`1fd4fb1`](https://github.com/ljharb/set-function-length/commit/1fd4fb1c58bd5170f0dcff7e320077c0aa2ffdeb) +- [types] use a handwritten d.ts file instead of emit [`01b9761`](https://github.com/ljharb/set-function-length/commit/01b9761742c95e1118e8c2d153ce2ae43d9731aa) +- [Deps] update `define-data-property`, `get-intrinsic`, `has-property-descriptors` [`bee8eaf`](https://github.com/ljharb/set-function-length/commit/bee8eaf7749f325357ade85cffeaeef679e513d4) +- [Dev Deps] update `call-bind`, `tape` [`5dae579`](https://github.com/ljharb/set-function-length/commit/5dae579fdc3aab91b14ebb58f9c19ee3f509d434) +- [Tests] use `@arethetypeswrong/cli` [`7e22425`](https://github.com/ljharb/set-function-length/commit/7e22425d15957fd3d6da0b6bca4afc0c8d255d2d) + +## [v1.2.1](https://github.com/ljharb/set-function-length/compare/v1.2.0...v1.2.1) - 2024-02-06 + +### Commits + +- [Dev Deps] update `call-bind`, `tape`, `typescript` [`d9a4601`](https://github.com/ljharb/set-function-length/commit/d9a460199c4c1fa37da9ebe055e2c884128f0738) +- [Deps] update `define-data-property`, `get-intrinsic` [`38d39ae`](https://github.com/ljharb/set-function-length/commit/38d39aed13a757ed36211d5b0437b88485090c6b) +- [Refactor] use `es-errors`, so things that only need those do not need `get-intrinsic` [`b4bfe5a`](https://github.com/ljharb/set-function-length/commit/b4bfe5ae0953b906d55b85f867eca5e7f673ebf4) + +## [v1.2.0](https://github.com/ljharb/set-function-length/compare/v1.1.1...v1.2.0) - 2024-01-14 + +### Commits + +- [New] add types [`f6d9088`](https://github.com/ljharb/set-function-length/commit/f6d9088b9283a3112b21c6776e8bef6d1f30558a) +- [Fix] ensure `env` properties are always booleans [`0c42f84`](https://github.com/ljharb/set-function-length/commit/0c42f84979086389b3229e1b4272697fd352275a) +- [Dev Deps] update `aud`, `call-bind`, `npmignore`, `tape` [`2b75f75`](https://github.com/ljharb/set-function-length/commit/2b75f75468093a4bb8ce8ca989b2edd2e80d95d1) +- [Deps] update `get-intrinsic`, `has-property-descriptors` [`19bf0fc`](https://github.com/ljharb/set-function-length/commit/19bf0fc4ffaa5ad425acbfa150516be9f3b6263a) +- [meta] add `sideEffects` flag [`8bb9b78`](https://github.com/ljharb/set-function-length/commit/8bb9b78c11c621123f725c9470222f43466c01d0) + +## [v1.1.1](https://github.com/ljharb/set-function-length/compare/v1.1.0...v1.1.1) - 2023-10-19 + +### Fixed + +- [Fix] move `define-data-property` to runtime deps [`#2`](https://github.com/ljharb/set-function-length/issues/2) + +### Commits + +- [Dev Deps] update `object-inspect`; add missing `call-bind` [`5aecf79`](https://github.com/ljharb/set-function-length/commit/5aecf79e7d6400957a5d9bd9ac20d4528908ca18) + +## [v1.1.0](https://github.com/ljharb/set-function-length/compare/v1.0.1...v1.1.0) - 2023-10-13 + +### Commits + +- [New] add `env` entry point [`475c87a`](https://github.com/ljharb/set-function-length/commit/475c87aa2f59b700aaed589d980624ec596acdcb) +- [Tests] add coverage with `nyc` [`14f0bf8`](https://github.com/ljharb/set-function-length/commit/14f0bf8c145ae60bf14a026420a06bb7be132c36) +- [eslint] fix linting failure [`fb516f9`](https://github.com/ljharb/set-function-length/commit/fb516f93c664057138c53559ef63c8622a093335) +- [Deps] update `define-data-property` [`d727e7c`](https://github.com/ljharb/set-function-length/commit/d727e7c6c9a40d7bf26797694e500ea68741feea) + +## [v1.0.1](https://github.com/ljharb/set-function-length/compare/v1.0.0...v1.0.1) - 2023-10-12 + +### Commits + +- [Refactor] use `get-intrinsic`, since it‘s in the dep graph anyways [`278a954`](https://github.com/ljharb/set-function-length/commit/278a954a06cd849051c569ff7aee56df6798933e) +- [meta] add `exports` [`72acfe5`](https://github.com/ljharb/set-function-length/commit/72acfe5a0310071fb205a72caba5ecbab24336a0) + +## v1.0.0 - 2023-10-12 + +### Commits + +- Initial implementation, tests, readme [`fce14e1`](https://github.com/ljharb/set-function-length/commit/fce14e17586460e4f294405173be72b6ffdf7e5f) +- Initial commit [`ca7ba85`](https://github.com/ljharb/set-function-length/commit/ca7ba857c7c283f9d26e21f14e71cd388f2cb722) +- npm init [`6a7e493`](https://github.com/ljharb/set-function-length/commit/6a7e493927736cebcaf5c1a84e69b8e6b7b744d8) +- Only apps should have lockfiles [`d2bf6c4`](https://github.com/ljharb/set-function-length/commit/d2bf6c43de8a51b02a0aa53e8d62cb50c4a2b0da) diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/LICENSE b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/LICENSE new file mode 100644 index 0000000..0314929 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Jordan Harband and contributors + +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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/README.md b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/README.md new file mode 100644 index 0000000..15e3ac4 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/README.md @@ -0,0 +1,56 @@ +# set-function-length [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Set a function’s length. + +Arguments: + - `fn`: the function + - `length`: the new length. Must be an integer between 0 and 2**32. + - `loose`: Optional. If true, and the length fails to be set, do not throw. Default false. + +Returns `fn`. + +## Usage + +```javascript +var setFunctionLength = require('set-function-length'); +var assert = require('assert'); + +function zero() {} +function one(_) {} +function two(_, __) {} + +assert.equal(zero.length, 0); +assert.equal(one.length, 1); +assert.equal(two.length, 2); + +assert.equal(setFunctionLength(zero, 10), zero); +assert.equal(setFunctionLength(one, 11), one); +assert.equal(setFunctionLength(two, 12), two); + +assert.equal(zero.length, 10); +assert.equal(one.length, 11); +assert.equal(two.length, 12); +``` + +[package-url]: https://npmjs.org/package/set-function-length +[npm-version-svg]: https://versionbadg.es/ljharb/set-function-length.svg +[deps-svg]: https://david-dm.org/ljharb/set-function-length.svg +[deps-url]: https://david-dm.org/ljharb/set-function-length +[dev-deps-svg]: https://david-dm.org/ljharb/set-function-length/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/set-function-length#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/set-function-length.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/set-function-length.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/set-function-length.svg +[downloads-url]: https://npm-stat.com/charts.html?package=set-function-length +[codecov-image]: https://codecov.io/gh/ljharb/set-function-length/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/set-function-length/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/set-function-length +[actions-url]: https://github.com/ljharb/set-function-length/actions diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.d.ts b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.d.ts new file mode 100644 index 0000000..970ea53 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.d.ts @@ -0,0 +1,9 @@ +declare const env: { + __proto__: null, + boundFnsHaveConfigurableLengths: boolean; + boundFnsHaveWritableLengths: boolean; + functionsHaveConfigurableLengths: boolean; + functionsHaveWritableLengths: boolean; +}; + +export = env; \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.js b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.js new file mode 100644 index 0000000..d9b0a29 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/env.js @@ -0,0 +1,25 @@ +'use strict'; + +var gOPD = require('gopd'); +var bind = require('function-bind'); + +var unbound = gOPD && gOPD(function () {}, 'length'); +// @ts-expect-error ts(2555) TS is overly strict with .call +var bound = gOPD && gOPD(bind.call(function () {}), 'length'); + +var functionsHaveConfigurableLengths = !!(unbound && unbound.configurable); + +var functionsHaveWritableLengths = !!(unbound && unbound.writable); + +var boundFnsHaveConfigurableLengths = !!(bound && bound.configurable); + +var boundFnsHaveWritableLengths = !!(bound && bound.writable); + +/** @type {import('./env')} */ +module.exports = { + __proto__: null, + boundFnsHaveConfigurableLengths: boundFnsHaveConfigurableLengths, + boundFnsHaveWritableLengths: boundFnsHaveWritableLengths, + functionsHaveConfigurableLengths: functionsHaveConfigurableLengths, + functionsHaveWritableLengths: functionsHaveWritableLengths +}; diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.d.ts b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.d.ts new file mode 100644 index 0000000..0451ecd --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.d.ts @@ -0,0 +1,7 @@ +declare namespace setFunctionLength { + type Func = (...args: unknown[]) => unknown; +} + +declare function setFunctionLength(fn: T, length: number, loose?: boolean): T; + +export = setFunctionLength; \ No newline at end of file diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js new file mode 100644 index 0000000..14ce74d --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js @@ -0,0 +1,42 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var define = require('define-data-property'); +var hasDescriptors = require('has-property-descriptors')(); +var gOPD = require('gopd'); + +var $TypeError = require('es-errors/type'); +var $floor = GetIntrinsic('%Math.floor%'); + +/** @type {import('.')} */ +module.exports = function setFunctionLength(fn, length) { + if (typeof fn !== 'function') { + throw new $TypeError('`fn` is not a function'); + } + if (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) { + throw new $TypeError('`length` must be a positive 32-bit integer'); + } + + var loose = arguments.length > 2 && !!arguments[2]; + + var functionLengthIsConfigurable = true; + var functionLengthIsWritable = true; + if ('length' in fn && gOPD) { + var desc = gOPD(fn, 'length'); + if (desc && !desc.configurable) { + functionLengthIsConfigurable = false; + } + if (desc && !desc.writable) { + functionLengthIsWritable = false; + } + } + + if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) { + if (hasDescriptors) { + define(/** @type {Parameters[0]} */ (fn), 'length', length, true, true); + } else { + define(/** @type {Parameters[0]} */ (fn), 'length', length); + } + } + return fn; +}; diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/package.json b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/package.json new file mode 100644 index 0000000..f6b8881 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/package.json @@ -0,0 +1,102 @@ +{ + "name": "set-function-length", + "version": "1.2.2", + "description": "Set a function's length property", + "main": "index.js", + "exports": { + ".": "./index.js", + "./env": "./env.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "directories": { + "test": "test" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "tsc": "tsc -p .", + "posttsc": "attw -P", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "npm run tsc", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/set-function-length.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "set", + "function", + "length", + "function.length" + ], + "author": "Jordan Harband ", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/set-function-length/issues" + }, + "homepage": "https://github.com/ljharb/set-function-length#readme", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.15.1", + "@ljharb/eslint-config": "^21.1.0", + "@ljharb/tsconfig": "^0.1.1", + "@types/call-bind": "^1.0.5", + "@types/define-properties": "^1.1.5", + "@types/es-value-fixtures": "^1.4.4", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/gopd": "^1.0.3", + "@types/has-property-descriptors": "^1.0.3", + "@types/object-inspect": "^1.8.4", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "call-bind": "^1.0.7", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.5", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "test" + ] + } +} diff --git a/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/tsconfig.json b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/tsconfig.json new file mode 100644 index 0000000..d9a6668 --- /dev/null +++ b/node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@ljharb/tsconfig", + "compilerOptions": { + "target": "es2021", + }, + "exclude": [ + "coverage", + ], +} diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag b/node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag new file mode 120000 index 0000000..11268e8 --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag @@ -0,0 +1 @@ +../../has-flag@4.0.0/node_modules/has-flag \ No newline at end of file diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/browser.js b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/browser.js new file mode 100644 index 0000000..62afa3a --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/browser.js @@ -0,0 +1,5 @@ +'use strict'; +module.exports = { + stdout: false, + stderr: false +}; diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js new file mode 100644 index 0000000..6fada39 --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js @@ -0,0 +1,135 @@ +'use strict'; +const os = require('os'); +const tty = require('tty'); +const hasFlag = require('has-flag'); + +const {env} = process; + +let forceColor; +if (hasFlag('no-color') || + hasFlag('no-colors') || + hasFlag('color=false') || + hasFlag('color=never')) { + forceColor = 0; +} else if (hasFlag('color') || + hasFlag('colors') || + hasFlag('color=true') || + hasFlag('color=always')) { + forceColor = 1; +} + +if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + forceColor = 1; + } else if (env.FORCE_COLOR === 'false') { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} + +function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + + if (hasFlag('color=16m') || + hasFlag('color=full') || + hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 && + Number(osRelease[2]) >= 10586 + ) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); +} + +module.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) +}; diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/license b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +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: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +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. diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json new file mode 100644 index 0000000..f7182ed --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json @@ -0,0 +1,53 @@ +{ + "name": "supports-color", + "version": "7.2.0", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "browser.js" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "dependencies": { + "has-flag": "^4.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "import-fresh": "^3.0.0", + "xo": "^0.24.0" + }, + "browser": "browser.js" +} diff --git a/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/readme.md b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/readme.md new file mode 100644 index 0000000..3654228 --- /dev/null +++ b/node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/readme.md @@ -0,0 +1,76 @@ +# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) + +> Detect whether a terminal supports color + + +## Install + +``` +$ npm install supports-color +``` + + +## Usage + +```js +const supportsColor = require('supports-color'); + +if (supportsColor.stdout) { + console.log('Terminal stdout supports color'); +} + +if (supportsColor.stdout.has256) { + console.log('Terminal stdout supports 256 colors'); +} + +if (supportsColor.stderr.has16m) { + console.log('Terminal stderr supports 16 million colors (truecolor)'); +} +``` + + +## API + +Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. + +The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: + +- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) +- `.level = 2` and `.has256 = true`: 256 color support +- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) + + +## Info + +It obeys the `--color` and `--no-color` CLI flags. + +For situations where using `--color` is not possible, use the environment variable `FORCE_COLOR=1` (level 1), `FORCE_COLOR=2` (level 2), or `FORCE_COLOR=3` (level 3) to forcefully enable color, or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. + +Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. + + +## Related + +- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
+ +--- diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/assure-array b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/assure-array new file mode 120000 index 0000000..8117087 --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/assure-array @@ -0,0 +1 @@ +../../assure-array@1.0.0/node_modules/assure-array \ No newline at end of file diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/.eslintrc b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/.eslintrc new file mode 100644 index 0000000..b0108ff --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "@joepie91/eslint-config" +} diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/README.md b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/README.md new file mode 100644 index 0000000..182c727 --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/README.md @@ -0,0 +1,42 @@ +# syncpipe + +A userland implementation of [pipelines](https://github.com/valtech-nyc/proposal-fsharp-pipelines/blob/master/README.md). Handles synchronous operations only. Also sometimes known as 'waterfall'. + +Useful to make `otherwise(deeply, nested(functionCalls(42))` a lot more readable. Also lets you combine object methods and stand-alone functions in a single chain of calls, instead of having to switch between wrapped calls and method calls, which gets messy very quickly with complex sequences of operations that you might want to split over multiple lines. + +## License, donations, and other boilerplate + +Licensed under either the [WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), at your choice. In practice, that means it's more or less public domain, and you can do whatever you want with it. Giving credit is *not* required, but still very much appreciated! I'd love to [hear from you](mailto:admin@cryto.net) if this module was useful to you. + +Creating and maintaining open-source modules is a lot of work. A donation is also not required, but much appreciated! You can donate [here](http://cryto.net/~joepie91/donate.html). + +## Example + +A runnable version of this example can be found in `example.js` in the repository. + +```js +const dateFns = require("date-fns"); +const syncpipe = require("syncpipe"); + +function msUntilNextMinute() { + return syncpipe(getTime(), [ + (_) => dateFns.addMinutes(_, 1), + (_) => dateFns.setSeconds(_, 0), + (_) => dateFns.setMilliseconds(_, 0), + (_) => dateFns.differenceInMilliseconds(_, getTime()) + ]); +} +``` + +The `_` is just a variable name here, you could call it anything you want - but giving it a consistent name will help with readability, as all of the arrow function bodies will be visually aligned. + +## API + +### syncpipe(value, functions) + +Given a `value` and a series of `functions` that transform that value into a new value, runs those functions in sequence and returns the return value of the final function. + +- __value:__ The initial value. +- __functions:__ An array of transformation functions, or a single transformation function (though that is somewhat pointless). + + diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/example.js b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/example.js new file mode 100644 index 0000000..c8a23f6 --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/example.js @@ -0,0 +1,19 @@ +"use strict"; + +const dateFns = require("date-fns"); +const syncpipe = require("./"); + +function getTime() { + return new Date(); +} + +function msUntilNextMinute() { + return syncpipe(getTime(), [ + (_) => dateFns.addMinutes(_, 1), + (_) => dateFns.setSeconds(_, 0), + (_) => dateFns.setMilliseconds(_, 0), + (_) => dateFns.differenceInMilliseconds(_, getTime()) + ]); +} + +console.log(msUntilNextMinute()); // 2365 diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/index.js b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/index.js new file mode 100644 index 0000000..aabfc4c --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/index.js @@ -0,0 +1,9 @@ +"use strict"; + +const assureArray = require("assure-array"); + +module.exports = function syncpipe(value, functions) { + return assureArray(functions).reduce((last, func) => { + return func(last); + }, value); +}; diff --git a/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/package.json b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/package.json new file mode 100644 index 0000000..515e0a9 --- /dev/null +++ b/node_modules/.pnpm/syncpipe@1.0.0/node_modules/syncpipe/package.json @@ -0,0 +1,16 @@ +{ + "name": "syncpipe", + "version": "1.0.0", + "main": "index.js", + "repository": "http://git.cryto.net/joepie91/syncpipe.git", + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "@joepie91/eslint-config": "^1.1.0", + "date-fns": "^2.14.0", + "eslint": "^7.3.1" + }, + "dependencies": { + "assure-array": "^1.0.0" + } +} diff --git a/node_modules/@validatem/core b/node_modules/@validatem/core new file mode 120000 index 0000000..246f1fc --- /dev/null +++ b/node_modules/@validatem/core @@ -0,0 +1 @@ +../.pnpm/@validatem+core@0.5.0/node_modules/@validatem/core \ No newline at end of file diff --git a/node_modules/@validatem/error b/node_modules/@validatem/error new file mode 120000 index 0000000..ea4a918 --- /dev/null +++ b/node_modules/@validatem/error @@ -0,0 +1 @@ +../.pnpm/@validatem+error@1.1.0/node_modules/@validatem/error \ No newline at end of file diff --git a/node_modules/@validatem/is-non-empty-string b/node_modules/@validatem/is-non-empty-string new file mode 120000 index 0000000..8d391a6 --- /dev/null +++ b/node_modules/@validatem/is-non-empty-string @@ -0,0 +1 @@ +../.pnpm/@validatem+is-non-empty-string@0.1.0/node_modules/@validatem/is-non-empty-string \ No newline at end of file diff --git a/node_modules/@validatem/required b/node_modules/@validatem/required new file mode 120000 index 0000000..02a9a79 --- /dev/null +++ b/node_modules/@validatem/required @@ -0,0 +1 @@ +../.pnpm/@validatem+required@0.1.1/node_modules/@validatem/required \ No newline at end of file diff --git a/node_modules/create-event-emitter b/node_modules/create-event-emitter new file mode 120000 index 0000000..de5db21 --- /dev/null +++ b/node_modules/create-event-emitter @@ -0,0 +1 @@ +.pnpm/create-event-emitter@1.0.0/node_modules/create-event-emitter \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..85112c5 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "@joepie91/promisify-event", + "version": "1.0.0", + "description": "Utility function for awaiting an event from an EventEmitter by turning it into a Promise", + "repository": { + "url": "https://git.cryto.net/joepie91/promisify-event.git" + }, + "main": "index.js", + "files": [ + "index.js", + "example.js", + "README.md" + ], + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "promises", + "promisify", + "event", + "eventemitter" + ], + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "devDependencies": { + "create-event-emitter": "^1.0.0" + }, + "dependencies": { + "@validatem/core": "^0.5.0", + "@validatem/error": "^1.1.0", + "@validatem/is-non-empty-string": "^0.1.0", + "@validatem/required": "^0.1.1" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..f5cbaf8 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,347 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@validatem/core': + specifier: ^0.5.0 + version: 0.5.0 + '@validatem/error': + specifier: ^1.1.0 + version: 1.1.0 + '@validatem/is-non-empty-string': + specifier: ^0.1.0 + version: 0.1.0 + '@validatem/required': + specifier: ^0.1.1 + version: 0.1.1 + +devDependencies: + create-event-emitter: + specifier: ^1.0.0 + version: 1.0.0 + +packages: + + /@validatem/annotate-errors@0.1.2: + resolution: {integrity: sha512-EuX7pzdYI/YpTmZcgdPG481Oi3elAg8JWh/LYXuE1h6MaZk3A8eP5DD33/l7EoKzrysn6y8nCsqNa1ngei562w==} + dependencies: + '@validatem/match-validation-error': 0.1.0 + dev: false + + /@validatem/any-property@0.1.3: + resolution: {integrity: sha512-jYWxif5ff9pccu7566LIQ/4+snlApXEJUimBywzAriBgS3r4eDBbz3oZFHuiPmhxNK/NNof5YUS+L6Sk3zaMfg==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + default-value: 1.0.0 + dev: false + + /@validatem/combinator@0.1.2: + resolution: {integrity: sha512-vE8t1tNXknmN62FlN6LxQmA2c6TwVKZ+fl/Wit3H2unFdOhu7SZj2kRPGjAXdK/ARh/3svYfUBeD75pea0j1Sw==} + dev: false + + /@validatem/core@0.5.0: + resolution: {integrity: sha512-hLEdoRFRvFGUqHFFK0eR8r7sTJaqQjzB81FVMp86esZJiBrblnWhpZtzVouguoaAaKFX9oiWI3nAQc73xYrTJg==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/any-property': 0.1.3 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/match-versioned-special': 0.1.1 + '@validatem/match-virtual-property': 0.1.0 + '@validatem/normalize-rules': 0.1.3 + '@validatem/required': 0.1.1 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + create-error: 0.3.1 + default-value: 1.0.0 + execall: 2.0.0 + indent-string: 4.0.0 + is-arguments: 1.1.1 + supports-color: 7.2.0 + syncpipe: 1.0.0 + dev: false + + /@validatem/error@1.1.0: + resolution: {integrity: sha512-gZJEoZq1COi/8/5v0fVKQ9uX54x5lb5HbV7mzIOhY6dqjmLNfxdQmpECZPQrCAOpcRkRMJ7zaFhq4UTslpY9yA==} + dev: false + + /@validatem/has-shape@0.1.8: + resolution: {integrity: sha512-x2i8toW1uraFF2Vl6WBl4CScbBeg5alrtoCKMyXbJkHf2B5QxL/ftUh2RQRcBzx6U0i7KUb8vdShcWAa+fehRQ==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + array-union: 2.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + dev: false + + /@validatem/is-non-empty-string@0.1.0: + resolution: {integrity: sha512-U6TmKLH6LfhQKldRE4xNZi8ovNrodSXgUiiEY9C4UZ8334CdhOXs5lxIyOqMRvM++Ex5NmpQIAFDOYGCr4RtoQ==} + dependencies: + '@validatem/error': 1.1.0 + '@validatem/is-string': 0.1.1 + dev: false + + /@validatem/is-plain-object@0.1.1: + resolution: {integrity: sha512-aNGbNIbKRpYI0lRBczlTBbiA+nqN52ADAASdySKg2/QeSCVtYS4uOIeCNIJRAgXe/5sUnLTuL4pgq628uAl7Kw==} + dependencies: + '@validatem/error': 1.1.0 + is-plain-obj: 2.1.0 + dev: false + + /@validatem/is-string@0.1.1: + resolution: {integrity: sha512-iyRVYRPgRt2ZlWyc7pzN1WkO6apzE8at39XQa4WUr8qRPfJn12V4khS9MumWbZs8N2qqajrxMigB2LJUCKOCRg==} + dependencies: + '@validatem/error': 1.1.0 + is-string: 1.0.7 + dev: false + + /@validatem/match-special@0.1.0: + resolution: {integrity: sha512-TFiq9Wk/1Hoja4PK85WwNYnwBXk3+Lgoj59ZIMxm2an1qmNYp8j+BnSvkKBflba451yIn6V1laU9NJf+/NYZgw==} + dev: false + + /@validatem/match-validation-error@0.1.0: + resolution: {integrity: sha512-6akGTk7DdulOreyqDiGdikwRSixQz/AlvARSX18dcWaTFc79KxCLouL2hyoFcor9IIUhu5RTY4/i756y4T1yxA==} + dependencies: + '@validatem/match-versioned-special': 0.1.1 + dev: false + + /@validatem/match-versioned-special@0.1.1: + resolution: {integrity: sha512-RRNeFSgzqSo0sKck/92a+yC9zKdt+DD6y4TK70+VDKVppdWsb8YzC/FBTucseN1OYrr1KcBPKNVZePg1NTROYw==} + dev: false + + /@validatem/match-virtual-property@0.1.0: + resolution: {integrity: sha512-ssd3coFgwbLuqvZftLZTy3eHN0TFST8oTS2XTViQdXJPXVoJmwEKBpFhXgwnb5Ly1CE037R/KWpjhd1TP/56kQ==} + dev: false + + /@validatem/normalize-rules@0.1.3: + resolution: {integrity: sha512-HHPceAP2ce9NWymIZrgLCTzpdwXNRBCCB5H6ZPc5ggOrbmh4STpT83fLazleHtvYNlqgXZ4GjQOvCwrjaM+qEA==} + dependencies: + '@validatem/has-shape': 0.1.8 + '@validatem/is-plain-object': 0.1.1 + '@validatem/match-special': 0.1.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + is-plain-obj: 2.1.0 + dev: false + + /@validatem/required@0.1.1: + resolution: {integrity: sha512-vI4NzLfay4RFAzp7xyU34PHb8sAo6w/3frrNh1EY9Xjnw2zxjY5oaxwmbFP1jVevBE6QQEnKogtzUHz/Zuvh6g==} + dev: false + + /@validatem/validation-result@0.1.2: + resolution: {integrity: sha512-okmP8JarIwIgfpaVcvZGuQ1yOsLKT3Egt49Ynz6h1MAeGsP/bGHXkkXtbiWOVsk5Tzku5vDVFSrFnF+5IEHKxw==} + dependencies: + default-value: 1.0.0 + dev: false + + /@validatem/virtual-property@0.1.0: + resolution: {integrity: sha512-JUUvWtdqoSkOwlsl20oB3qFHYIL05a/TAfdY4AJcs55QeVTiX5iI1b8IoQW644sIWWooBuLv+XwoxjRsQFczlQ==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /as-expression@1.0.0: + resolution: {integrity: sha512-Iqh4GxNUfxbJdGn6b7/XMzc8m1Dz2ZHouBQ9DDTzyMRO3VPPIAXeoY/sucRxxxXKbUtzwzWZSN6jPR3zfpYHHA==} + dev: false + + /assure-array@1.0.0: + resolution: {integrity: sha512-igvOvGYidAcJKr6YQIHzLivUpAdqUfi7MN0QfrEnFtifQvuw6D0W4oInrIVgTaefJ+QBVWAj8ZYuUGNnwq6Ydw==} + dev: false + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: false + + /clone-regexp@2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: false + + /create-error@0.3.1: + resolution: {integrity: sha512-n/Q4aSCtYuuDneEW5Q+nd0IIZwbwmX/oF6wKcDUhXGJNwhmp2WHEoWKz7X+/H7rBtjimInW7f0ceouxU0SmuzQ==} + dev: false + + /create-event-emitter@1.0.0: + resolution: {integrity: sha512-4DT/4prJ1LPPM2EycyBj1P5SzmkeCGCmBFwCEMNy5swGX2vjJ9z5qNc72cbwPGr3MkLN3tjbeTmbqqzSOBhFFw==} + dev: true + + /default-value@1.0.0: + resolution: {integrity: sha512-y6j7G55tgWG7nfjXUNy/WkTLGExiPEUlhGv0zqgqKdlOwJnDDy/dbk7yCozn4biAGIRnMI+9fyZ1V2fZ7tjp6Q==} + dependencies: + es6-promise-try: 0.0.1 + dev: false + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: false + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: false + + /es6-promise-try@0.0.1: + resolution: {integrity: sha512-T6f3cNyF8y+3uua2IDGpGmeoDe2w7PXGfPGS94TyLfQLPzYVvZUfM8dQuN4DuVXpelK4tg9F7zKzZHzNS2f2IQ==} + dev: false + + /execall@2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: false + + /flatten@1.0.3: + resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} + deprecated: flatten is deprecated in favor of utility frameworks such as lodash. + dev: false + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: false + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: false + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: false + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: false + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: false + + /is-regexp@2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: false + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /syncpipe@1.0.0: + resolution: {integrity: sha512-cdiAFTnFJRvUaNPDc2n9CqoFvtIL3+JUMJZrC3kA3FzpugHOqu0TvkgNwmnxPZ5/WjAzMcfMS3xm+AO7rg/j/w==} + dependencies: + assure-array: 1.0.0 + dev: false