cdk-lambda-subminute 2.0.545 → 2.0.547
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3 -3
- package/lib/cdk-lambda-subminute.js +3 -3
- package/node_modules/has-proto/CHANGELOG.md +14 -0
- package/node_modules/has-proto/README.md +19 -0
- package/node_modules/has-proto/accessor.d.ts +3 -0
- package/node_modules/has-proto/accessor.js +20 -0
- package/node_modules/has-proto/helpers/getDunder.js +12 -0
- package/node_modules/has-proto/helpers/setDunder.js +9 -0
- package/node_modules/has-proto/index.d.ts +1 -1
- package/node_modules/has-proto/index.js +4 -4
- package/node_modules/has-proto/mutator.d.ts +3 -0
- package/node_modules/has-proto/mutator.js +33 -0
- package/node_modules/has-proto/package.json +23 -9
- package/node_modules/has-proto/test/accessor.js +34 -0
- package/node_modules/has-proto/test/index.js +10 -1
- package/node_modules/has-proto/test/mutator.js +34 -0
- package/node_modules/has-proto/tsconfig.json +9 -47
- package/node_modules/has-symbols/CHANGELOG.md +16 -0
- package/node_modules/has-symbols/index.d.ts +3 -0
- package/node_modules/has-symbols/index.js +1 -0
- package/node_modules/has-symbols/package.json +19 -9
- package/node_modules/has-symbols/shams.d.ts +3 -0
- package/node_modules/has-symbols/shams.js +5 -2
- package/node_modules/has-symbols/test/shams/core-js.js +1 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +1 -0
- package/node_modules/has-symbols/test/tests.js +4 -2
- package/node_modules/has-symbols/tsconfig.json +10 -0
- package/package.json +2 -2
package/.jsii
CHANGED
|
@@ -3889,7 +3889,7 @@
|
|
|
3889
3889
|
"stability": "stable"
|
|
3890
3890
|
},
|
|
3891
3891
|
"homepage": "https://github.com/HsiehShuJeng/cdk-lambda-subminute.git",
|
|
3892
|
-
"jsiiVersion": "5.4.
|
|
3892
|
+
"jsiiVersion": "5.4.44 (build 419233e)",
|
|
3893
3893
|
"keywords": [
|
|
3894
3894
|
"aws-cloudwatch-events",
|
|
3895
3895
|
"aws-lambda",
|
|
@@ -4359,6 +4359,6 @@
|
|
|
4359
4359
|
"symbolId": "src/cdk-lambda-subminute:SubminuteStateMachineProps"
|
|
4360
4360
|
}
|
|
4361
4361
|
},
|
|
4362
|
-
"version": "2.0.
|
|
4363
|
-
"fingerprint": "
|
|
4362
|
+
"version": "2.0.547",
|
|
4363
|
+
"fingerprint": "Lsq5TGOePwA7ayQntYK/fmr3JcQIFmm+EEV9Os9EAA0="
|
|
4364
4364
|
}
|
|
@@ -45,7 +45,7 @@ class LambdaSubminute extends constructs_1.Construct {
|
|
|
45
45
|
}
|
|
46
46
|
exports.LambdaSubminute = LambdaSubminute;
|
|
47
47
|
_a = JSII_RTTI_SYMBOL_1;
|
|
48
|
-
LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "2.0.
|
|
48
|
+
LambdaSubminute[_a] = { fqn: "cdk-lambda-subminute.LambdaSubminute", version: "2.0.547" };
|
|
49
49
|
class IteratorLambda extends constructs_1.Construct {
|
|
50
50
|
constructor(scope, name, props) {
|
|
51
51
|
super(scope, name);
|
|
@@ -85,7 +85,7 @@ class IteratorLambda extends constructs_1.Construct {
|
|
|
85
85
|
}
|
|
86
86
|
exports.IteratorLambda = IteratorLambda;
|
|
87
87
|
_b = JSII_RTTI_SYMBOL_1;
|
|
88
|
-
IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "2.0.
|
|
88
|
+
IteratorLambda[_b] = { fqn: "cdk-lambda-subminute.IteratorLambda", version: "2.0.547" };
|
|
89
89
|
class SubminuteStateMachine extends constructs_1.Construct {
|
|
90
90
|
constructor(scope, id, props) {
|
|
91
91
|
super(scope, id);
|
|
@@ -160,5 +160,5 @@ class SubminuteStateMachine extends constructs_1.Construct {
|
|
|
160
160
|
}
|
|
161
161
|
exports.SubminuteStateMachine = SubminuteStateMachine;
|
|
162
162
|
_c = JSII_RTTI_SYMBOL_1;
|
|
163
|
-
SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "2.0.
|
|
163
|
+
SubminuteStateMachine[_c] = { fqn: "cdk-lambda-subminute.SubminuteStateMachine", version: "2.0.547" };
|
|
164
164
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWxhbWJkYS1zdWJtaW51dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2RrLWxhbWJkYS1zdWJtaW51dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBa0Q7QUFDbEQsMERBQTJEO0FBQzNELDJDQUEyQztBQUUzQyx1REFBcUU7QUFDckUscUVBQStEO0FBQy9ELG1EQUFxRDtBQUNyRCxxREFBcUQ7QUFDckQsNkRBQTZEO0FBQzdELDJDQUF1QztBQTRCdkMsTUFBYSxlQUFnQixTQUFRLHNCQUFTO0lBUzVDLFlBQVksTUFBaUIsRUFBRSxJQUFZLEVBQUUsS0FBMkI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDMUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUNyRixnQkFBZ0IsRUFBRSwrQkFBK0I7WUFDakQsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRTtZQUN0QyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENB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QyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUM5RCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQzs7QUFiSCxzREE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCBldmVudHMgPSByZXF1aXJlKCdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJyk7XG5pbXBvcnQgdGFyZ2V0cyA9IHJlcXVpcmUoJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cycpO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuXG5pbXBvcnQgeyBJRnVuY3Rpb24sIFJ1bnRpbWUsIFRyYWNpbmcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFTdWJtaW51dGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgaXMgZ29pbmcgdG8gYmUgZXhlY3V0ZWQgcGVyIHRpbWUgdW5pdCBsZXNzIHRoYW4gb25lIG1pbnV0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEZ1bmN0aW9uOiBJRnVuY3Rpb247XG4gIC8qKlxuICAgKiBBIHBhdHRlcm4geW91IHdhbnQgdGhpcyBzdGF0ZW1hY2hpbmUgdG8gYmUgZXhlY3V0ZWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9TY2hlZHVsZWRFdmVudHMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCBjcm9uKDUwLzEgMTUtMTcgPyAqICogKikgVVRDKzAgYmVpbmcgcnVuIGV2ZXJ5IG1pbnV0ZSBzdGFydGluZyBmcm9tIDE1OjAwIFBNIHRvIDE3OjAwIFBNLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JvbmpvYkV4cHJlc3Npb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIb3cgbWFueSB0aW1lcyB5b3UgaW50ZW50IHRvIGV4ZWN1dGUgaW4gYSBtaW51dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDZcbiAgICovXG4gIHJlYWRvbmx5IGZyZXF1ZW5jeT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNlY29uZHMgZm9yIGFuIGludGVydmFsLCB0aGUgcHJvZHVjdCBvZiBgZnJlcXVlbmN5YCBhbmQgYGludGVydmFsVGltZWAgc2hvdWxkIGJlIGFwcHJveGltYWdlbHkgMSBtaW51dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbFRpbWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFTdWJtaW51dGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIExhbWJkYSBmdW5jdGlvbiB0aGF0IHBsYXlzIHRoZSByb2xlIG9mIHRoZSBpdGVyYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHN0YXRlIG1hY2hpbmUgdGhhdCBleGVjdXRlcyB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbiBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lQXJuOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHBhcmVudDogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBMYW1iZGFTdWJtaW51dGVQcm9wcykge1xuICAgIHN1cGVyKHBhcmVudCwgbmFtZSk7XG4gICAgY29uc3QgaXRlcmF0b3IgPSBuZXcgSXRlcmF0b3JMYW1iZGEodGhpcywgJ0l0ZXJhdG9yTGFtYmRhJywgeyB0YXJnZXRGdW5jdGlvbjogcHJvcHMudGFyZ2V0RnVuY3Rpb24gfSk7XG4gICAgdGhpcy5pdGVyYXRvckZ1bmN0aW9uID0gaXRlcmF0b3IuZnVuY3Rpb247XG4gICAgY29uc3Qgc3VibWludXRlU3RhdGVNYWNoaW5lID0gbmV3IFN1Ym1pbnV0ZVN0YXRlTWFjaGluZSh0aGlzLCAnU3VibWludXRlU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogJ2xhbWJkYS1zdWJtaW51dGUtc3RhdGVtYWNoaW5lJyxcbiAgICAgIHRhcmdldEZ1bmN0aW9uOiBwcm9wcy50YXJnZXRGdW5jdGlvbixcbiAgICAgIGl0ZXJhdG9yRnVuY3Rpb246IHRoaXMuaXRlcmF0b3JGdW5jdGlvbixcbiAgICAgIGludGVydmFsVGltZTogcHJvcHMuaW50ZXJ2YWxUaW1lID8/IDEwLFxuICAgICAgZnJlcXVlbmN5OiBwcm9wcy5mcmVxdWVuY3kgPz8gNixcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlTWFjaGluZUFybiA9IHN1Ym1pbnV0ZVN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuO1xuXG4gICAgY29uc3Qgc3RhcnRSdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTdGFydFN1Ym1pbnV0ZVN0YXRlTWFjaGluZScsIHtcbiAgICAgIHNjaGVkdWxlOiBldmVudHMuU2NoZWR1bGUuZXhwcmVzc2lvbihwcm9wcy5jcm9uam9iRXhwcmVzc2lvbiA/PyAnY3Jvbig1MC8xIDE1LTE3ID8gKiAqICopJyksXG4gICAgICBydWxlTmFtZTogJ3N1Ym1pbnV0ZS1zdGF0ZW1hY2hpbmUtbGFtYmRhLXJ1bGUnLFxuICAgICAgZGVzY3JpcHRpb246IGBBIHJ1bGUgdG8gcnVuIHRoZSBzdWJtaW51dGUgc3RhdGUgbWFjaGluZSwgaS5lLiAke3N1Ym1pbnV0ZVN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lTmFtZX1gLFxuICAgIH0pO1xuICAgIHN0YXJ0UnVsZS5hZGRUYXJnZXQobmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKFxuICAgICAgc3VibWludXRlU3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZSwge1xuICAgICAgICBpbnB1dDogZXZlbnRzLlJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgICBpdGVyYXRvcjoge1xuICAgICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgICBjb3VudDogNixcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH0pKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZXJhdG9yTGFtYmRhUHJvcHMge1xuICAvKipcbiAgICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgaXMgZ29pbmcgdG8gYmUgZXhlY3V0ZWQgcGVyIHRpbWUgdW5pdCBsZXNzIHRoYW4gb25lIG1pbnV0ZS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RnVuY3Rpb246IElGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZXJhdG9yTGFtYmRhIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAgICogQSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBwbGF5cyB0aGUgcm9sZSBvZiB0aGUgaXRlcmF0b3IuXG4gICAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uOiBJRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZywgcHJvcHM6IEl0ZXJhdG9yTGFtYmRhUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgbmFtZSk7XG4gICAgY29uc3QgaXRlcmF0b3JMYW1iZGFSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdJdGVyYXRvckxhbWJkYVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2xhbWJkYS5hbWF6b25hd3MuY29tJyksXG4gICAgICApLFxuICAgICAgZGVzY3JpcHRpb246ICdBbiBleGVjdXRpb24gcm9sZSBmb3IgYSBMYW1iZGEgZnVuY3Rpb24gdG8gaW52b2tlIGEgdGFyZ2V0IExhbWJkYSBGdW5jdGlvbiBwZXIgdGltZSB1bml0IGxlc3MgdGhhbiBvbmUgbWludXRlJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBV1NYUmF5RGFlbW9uV3JpdGVBY2Nlc3MnKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhVlBDQWNjZXNzRXhlY3V0aW9uUm9sZScpLFxuICAgICAgXSxcbiAgICAgIHJvbGVOYW1lOiAnTGFtYmRhLUl0ZXJhdG9yLVJvbGUnLFxuICAgIH0pO1xuICAgIGNkay5Eb2NrZXJWb2x1bWVDb25zaXN0ZW5jeS5DT05TSVNURU5UO1xuXG5cbiAgICBpdGVyYXRvckxhbWJkYVJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnVGFyZ2V0TGFtYmRhUGVybWlzc2lvbicsXG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgcmVzb3VyY2VzOiBbcHJvcHMudGFyZ2V0RnVuY3Rpb24uZnVuY3Rpb25Bcm5dLFxuICAgIH0pKTtcblxuICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgTm9kZWpzRnVuY3Rpb24odGhpcywgJ0l0ZXJhdG9yJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiAnbGFtYmRhLXN1Ym1pbnV0ZS1pdGVyYXRvcicsXG4gICAgICBkZXNjcmlwdGlvbjogJ0EgZnVuY3Rpb24gZm9yIGJyZWFraW5nIHRoZSBsaW1pdCBvZiAxIG1pbnV0ZSB3aXRoIHRoZSBDbG91ZFdhdGNoIFJ1bGVzLicsXG4gICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVEhSRUVfTU9OVEhTLFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGVudHJ5OiBmcy5leGlzdHNTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsICdyZXNvdXJjZXMvaXRlcmF0b3IvaXRlcmF0b3JfYWdlbnQudHMnKSkgPyBwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2l0ZXJhdG9yL2l0ZXJhdG9yX2FnZW50LnRzJykgOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2l0ZXJhdG9yL2l0ZXJhdG9yX2FnZW50LmpzJyksXG4gICAgICBoYW5kbGVyOiAnbGFtYmRhSGFuZGxlcicsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBUQVJHRVRfRk5fTkFNRTogcHJvcHMudGFyZ2V0RnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeVNpemU6IDEyOCxcbiAgICAgIHJvbGU6IGl0ZXJhdG9yTGFtYmRhUm9sZSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDU4KSwgLy8gMSBtaW5cbiAgICAgIHRyYWNpbmc6IFRyYWNpbmcuQUNUSVZFLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibWludXRlU3RhdGVNYWNoaW5lUHJvcHMge1xuICAvKipcbiAgICogdGhlIG5hbWUgb2YgdGhlIHN0YXRlIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgZXhlY3V0ZXMgeW91ciBpbnRlbnRpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRGdW5jdGlvbjogSUZ1bmN0aW9uO1xuICAvKipcbiAgICogdGhlIGl0ZXJhdG9yIExhbWJkYSBmdW5jdGlvbiBmb3IgdGhlIHRhcmdldCBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBpdGVyYXRvckZ1bmN0aW9uOiBJRnVuY3Rpb247XG4gIC8qKlxuICAgKiBTZWNvbmRzIGZvciBhbiBpbnRlcnZhbCwgdGhlIHByb2R1Y3Qgb2YgYGZyZXF1ZW5jeWAgYW5kIGBpbnRlcnZhbFRpbWVgIHNob3VsZCBiZSBhcHByb3hpbWFnZWx5IDEgbWludXRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJ2YWxUaW1lOiBudW1iZXI7XG4gIC8qKlxuICAgKiBIb3cgbWFueSB0aW1lcyB5b3UgaW50ZW50IHRvIGV4ZWN1dGUgaW4gYSBtaW51dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDZcbiAgICovXG4gIHJlYWRvbmx5IGZyZXF1ZW5jeTogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgU3VibWludXRlU3RhdGVNYWNoaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lOiBzZm4uU3RhdGVNYWNoaW5lO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3VibWludXRlU3RhdGVNYWNoaW5lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IHN0YXRlTWFjaGluZVJvbGUgPSB0aGlzLl9jcmVhdGVXb3JrRmxvd1JvbGUoXG4gICAgICBwcm9wcy50YXJnZXRGdW5jdGlvbi5mdW5jdGlvbkFybiwgcHJvcHMuaXRlcmF0b3JGdW5jdGlvbi5mdW5jdGlvbkFybik7XG4gICAgY29uc3Qgam9iRGVmaW5pdGlvbiA9IHRoaXMuY3JlYXRlSm9iRGVmaW5pdGlvbihwcm9wcy5pdGVyYXRvckZ1bmN0aW9uLCBwcm9wcy5pbnRlcnZhbFRpbWUsIHByb3BzLmZyZXF1ZW5jeSk7XG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lID0gbmV3IHNmbi5TdGF0ZU1hY2hpbmUodGhpcywgJ1N0YXRlTWFjaGluZScsIHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6IHByb3BzLnN0YXRlTWFjaGluZU5hbWUsXG4gICAgICBkZWZpbml0aW9uOiBqb2JEZWZpbml0aW9uLFxuICAgICAgcm9sZTogc3RhdGVNYWNoaW5lUm9sZSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YXRlTWFjaGluZSA9IHN0YXRlTWFjaGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RhdGUgbWFjaGluZSBmb3IgYnJlYWtpbmcgdGhlIGxpbWl0IG9mIDEgbWludXRlIHdpdGggdGhlIENsb3VkV2F0Y2ggUnVsZXMuXG4gICAqXG4gICAqIEBwYXJhbSBpdGVyYXRvckZ1bmN0aW9uIFRoZSBpdGVyYXRvciBMYW1iZGEgZnVuY3Rpb24gZm9yIHRoZSB0YXJnZXQgTGFibWRhIGZ1bmNpdG9uLlxuICAgKiBAcGFyYW0gaW50ZXJ2YWxUaW1lIFNlY29uZHMgZm9yIGFuIGludGVydmFsLCB0aGUgcHJvZHVjdCBvZiBgZnJlcXVlbmN5YCBhbmQgYGludGVydmFsVGltZWAgc2hvdWxkIGJlIGFwcHJveGltYWdlbHkgMSBtaW51dGUuXG4gICAqIEBwYXJhbSBmcmVxdWVuY3kgSG93IG1hbnkgdGltZXMgeW91IGludGVudCB0byBleGVjdXRlIGluIGEgbWludXRlLlxuICAgKiBAcmV0dXJucyBUSGUgam9iIGRlZmluaXRpb24gZm9yIHRoZSBzdGF0ZSBtYWNoaW5lLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVKb2JEZWZpbml0aW9uID0gKFxuICAgIGl0ZXJhdG9yRnVuY3Rpb246IElGdW5jdGlvbiwgaW50ZXJ2YWxUaW1lOiBudW1iZXIsIGZyZXF1ZW5jeTogbnVtYmVyKTogc2ZuLkNoYWluID0+IHtcbiAgICBjb25zdCBjb25maWd1cmVDb3VudCA9IG5ldyBzZm4uUGFzcyh0aGlzLCAnQ29uZmlndXJlQ291bnQnLCB7XG4gICAgICByZXN1bHQ6IHNmbi5SZXN1bHQuZnJvbU9iamVjdCh7XG4gICAgICAgIGluZGV4OiAwLFxuICAgICAgICBjb3VudDogZnJlcXVlbmN5LFxuICAgICAgfSksXG4gICAgICByZXN1bHRQYXRoOiAnJC5pdGVyYXRvcicsXG4gICAgfSk7XG4gICAgY29uc3QgaXRlcmF0b3IgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdJdGVyYXRvcicsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBpdGVyYXRvckZ1bmN0aW9uLFxuICAgICAgcmVzdWx0UGF0aDogJyQuaXRlcmF0b3InLFxuICAgICAgcmVzdWx0U2VsZWN0b3I6IHtcbiAgICAgICAgJ2luZGV4LiQnOiAnJC5QYXlsb2FkLmluZGV4JyxcbiAgICAgICAgJ2NvdW50LiQnOiAnJC5QYXlsb2FkLmNvdW50JyxcbiAgICAgICAgJ2NvbnRpbnVlLiQnOiAnJC5QYXlsb2FkLmNvbnRpbnVlJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3Qgd2FpdCA9IG5ldyBzZm4uV2FpdCh0aGlzLCAnV2FpdCBmb3IgdGhlIHRhcmdldCBMYW1iZGEgZnVuY3Rpb24gZmluaXNoZWQnLCB7XG4gICAgICB0aW1lOiBzZm4uV2FpdFRpbWUuZHVyYXRpb24oY2RrLkR1cmF0aW9uLnNlY29uZHMoaW50ZXJ2YWxUaW1lKSksXG4gICAgfSk7XG4gICAgd2FpdC5uZXh0KGl0ZXJhdG9yKTtcbiAgICBjb25zdCBkb25lID0gbmV3IHNmbi5QYXNzKHRoaXMsICdEb25lJyk7XG5cbiAgICBjb25zdCBpc0NvdW50UmVhY2hlZCA9IG5ldyBzZm4uQ2hvaWNlKHRoaXMsICdJc0NvdW50UmVhY2hlZCcpO1xuICAgIGlzQ291bnRSZWFjaGVkLndoZW4oc2ZuLkNvbmRpdGlvbi5ib29sZWFuRXF1YWxzKCckLml0ZXJhdG9yLmNvbnRpbnVlJywgdHJ1ZSksIHdhaXQpO1xuICAgIGlzQ291bnRSZWFjaGVkLm90aGVyd2lzZShkb25lKTtcbiAgICBjb25zdCBqb2JEZWZpbml0aW9uID0gY29uZmlndXJlQ291bnQubmV4dChpdGVyYXRvcikubmV4dChpc0NvdW50UmVhY2hlZCk7XG4gICAgcmV0dXJuIGpvYkRlZmluaXRpb247XG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByb2xlIGFuZCBjb3JyZXNwb25kaW5nIHBvbGljaWVzIGZvciB0aGUgc3VibWludXRlIHN0YXRlIG1hY2hpbmUuXG4gICAqXG4gICAqIEBwYXJhbSB0YXJnZXRGdW5jdGlvbkFybiB0aGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBleGVjdXRlcyB5b3VyIGludGVudGlvbi5cbiAgICogQHBhcmFtIGl0ZXJhdG9yRnVuY3Rpb25Bcm4gdGhlIEFSTiBvZiB0aGUgaXRlcmF0b3IgTGFtYmRhIGZ1bmN0aW9uIGZvciB0aGUgdGFyZ2V0IExhbWJkYSBmdW5jdGlvbi5cbiAgICogQHJldHVybnMgdGhlIHJvbGUgYXMgdGhlIGRvY3VtZW50YXRpb24gaW5kaWNhdGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlV29ya0Zsb3dSb2xlID0gKHRhcmdldEZ1bmN0aW9uQXJuOiBzdHJpbmcsIGl0ZXJhdG9yRnVuY3Rpb25Bcm46IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHdvcmtGbG93RXhlY3V0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnU3RlcEZ1bmN0aW9uRXhlY3V0aW9uUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdzdGF0ZXMuYW1hem9uYXdzLmNvbScpLFxuICAgICAgZGVzY3JpcHRpb246ICdFeGVjdXRlIGEgd29ya2Zsb3cgcmVsYXRlZCB0byBleGVjdXRpbmcgYSBMYW1iZGEgZnVuY3Rpb24gcGVyIHRpbWUgdW5pdCBsZXNzIHRoYW4gMSBtaW51dGUuJyxcbiAgICB9KTtcbiAgICB3b3JrRmxvd0V4ZWN1dGlvblJvbGUuYWRkVG9Qb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnTGFtYmRhSW52b2tlUGVybWlzc2lvbnMnLFxuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICB0YXJnZXRGdW5jdGlvbkFybixcbiAgICAgICAgaXRlcmF0b3JGdW5jdGlvbkFybixcbiAgICAgIF0sXG4gICAgfSkpO1xuICAgIHJldHVybiB3b3JrRmxvd0V4ZWN1dGlvblJvbGU7XG4gIH07XG59Il19
|
|
@@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [v1.1.0](https://github.com/inspect-js/has-proto/compare/v1.0.3...v1.1.0) - 2024-12-01
|
|
9
|
+
|
|
10
|
+
### Commits
|
|
11
|
+
|
|
12
|
+
- [New] add `accessor` and `mutator` endpoints [`144f6a9`](https://github.com/inspect-js/has-proto/commit/144f6a9c2a3925f25058d5d5ea7eab3be57767d9)
|
|
13
|
+
- [types] use shared config [`8b597cf`](https://github.com/inspect-js/has-proto/commit/8b597cff2b09f0351bc357cac0e0c7b0c8bb7e70)
|
|
14
|
+
- [Refactor] cache result at module level [`88418bd`](https://github.com/inspect-js/has-proto/commit/88418bde7e0c37c7d9aa6cc79150e774004c01d8)
|
|
15
|
+
- [Dev Deps] update `@ljharb/eslint-config`, `auto-changelog`, `tape` [`d246200`](https://github.com/inspect-js/has-proto/commit/d246200bae6ceceebb495df7f8eb0f27a017b63f)
|
|
16
|
+
- [Deps] update `gopd`, `reflect.getprototypeof` [`6f72364`](https://github.com/inspect-js/has-proto/commit/6f723645da9b5bef0aaae4a1aa66c07a1fed179f)
|
|
17
|
+
- [Tests] add `@arethetypeswrong/cli` [`8194e1a`](https://github.com/inspect-js/has-proto/commit/8194e1a607233f63c5bd0b91112c0423b3296ac9)
|
|
18
|
+
- [Tests] replace `aud` with `npm audit` [`fd7ad11`](https://github.com/inspect-js/has-proto/commit/fd7ad111dc35488b3200a763204dba0f6087defc)
|
|
19
|
+
- [Dev Deps] update `@types/tape` [`2695808`](https://github.com/inspect-js/has-proto/commit/26958086aec0b1cbfdddd4f10e54d2de1facf85c)
|
|
20
|
+
- [Dev Deps] add missing peer dep [`fa4b2f7`](https://github.com/inspect-js/has-proto/commit/fa4b2f77f7c0071e1c06b5590c9bada8e6b2edce)
|
|
21
|
+
|
|
8
22
|
## [v1.0.3](https://github.com/inspect-js/has-proto/compare/v1.0.2...v1.0.3) - 2024-02-19
|
|
9
23
|
|
|
10
24
|
### Commits
|
|
@@ -16,6 +16,25 @@ var hasProto = require('has-proto');
|
|
|
16
16
|
var assert = require('assert');
|
|
17
17
|
|
|
18
18
|
assert.equal(typeof hasProto(), 'boolean');
|
|
19
|
+
|
|
20
|
+
var hasProtoAccessor = require('has-proto/accessor')();
|
|
21
|
+
if (hasProtoAccessor) {
|
|
22
|
+
assert.equal([].__proto__, Array.prototype);
|
|
23
|
+
} else {
|
|
24
|
+
assert(!('__proto__' in Object.prototype));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var hasProtoMutator = require('has-proto/mutator');
|
|
28
|
+
var obj = {};
|
|
29
|
+
assert('toString' in obj);
|
|
30
|
+
|
|
31
|
+
obj.__proto__ = null;
|
|
32
|
+
if (hasProtoMutator) {
|
|
33
|
+
assert(!('toString' in obj));
|
|
34
|
+
} else {
|
|
35
|
+
assert('toString' in obj);
|
|
36
|
+
assert.equal(obj.__proto__, null);
|
|
37
|
+
}
|
|
19
38
|
```
|
|
20
39
|
|
|
21
40
|
## Tests
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var result = require('./')();
|
|
4
|
+
|
|
5
|
+
var test = {
|
|
6
|
+
__proto__: null,
|
|
7
|
+
foo: {}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/** @type {import('./accessor')} */
|
|
11
|
+
module.exports = function hasAccessor() {
|
|
12
|
+
/* eslint no-proto: 0 */
|
|
13
|
+
return result
|
|
14
|
+
&& !('toString' in test)
|
|
15
|
+
// eslint-disable-next-line no-extra-parens
|
|
16
|
+
&& /** @type {{ __proto__?: typeof Object.prototype }} */ ({}).__proto__ === Object.prototype
|
|
17
|
+
// eslint-disable-next-line no-extra-parens
|
|
18
|
+
&& /** @type {ReadonlyArray<never> & { __proto__?: typeof Array.prototype }} */ (
|
|
19
|
+
[]).__proto__ === Array.prototype;
|
|
20
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var callBind = require('call-bind');
|
|
4
|
+
var gOPD = require('gopd');
|
|
5
|
+
|
|
6
|
+
// eslint-disable-next-line no-extra-parens, no-proto
|
|
7
|
+
var hasProto = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;
|
|
8
|
+
|
|
9
|
+
// eslint-disable-next-line no-extra-parens
|
|
10
|
+
var dunderGetter = hasProto && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));
|
|
11
|
+
|
|
12
|
+
module.exports = dunderGetter && dunderGetter.get && callBind(dunderGetter.get);
|
|
@@ -5,11 +5,11 @@ var test = {
|
|
|
5
5
|
foo: {}
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// @ts-expect-error: TS errors on an inherited property for some reason
|
|
9
|
+
var result = { __proto__: test }.foo === test.foo
|
|
10
|
+
&& !(test instanceof Object);
|
|
9
11
|
|
|
10
12
|
/** @type {import('.')} */
|
|
11
13
|
module.exports = function hasProto() {
|
|
12
|
-
|
|
13
|
-
return { __proto__: test }.foo === test.foo
|
|
14
|
-
&& !(test instanceof $Object);
|
|
14
|
+
return result;
|
|
15
15
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var result = require('./')();
|
|
4
|
+
|
|
5
|
+
var test = {
|
|
6
|
+
__proto__: null,
|
|
7
|
+
foo: {}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
var setter = require('./helpers/setDunder');
|
|
11
|
+
|
|
12
|
+
/** @type {import('./mutator')} */
|
|
13
|
+
module.exports = function hasMutator() {
|
|
14
|
+
if (!result) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
var obj = { __proto__: test };
|
|
19
|
+
// @ts-expect-error: TS errors on an inherited property for some reason
|
|
20
|
+
if (obj.foo !== test.foo) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (!setter) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
setter(obj, null);
|
|
29
|
+
if ('foo' in obj || 'toString' in obj) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "has-proto",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Does this environment have the ability to get the [[Prototype]] of an object on creation with `__proto__`?",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./index.js",
|
|
8
|
+
"./accessor": "./accessor.js",
|
|
9
|
+
"./mutator": "./mutator.js",
|
|
8
10
|
"./package.json": "./package.json"
|
|
9
11
|
},
|
|
10
12
|
"sideEffects": false,
|
|
@@ -12,12 +14,13 @@
|
|
|
12
14
|
"prepack": "npmignore --auto --commentLines=autogenerated",
|
|
13
15
|
"prepublishOnly": "safe-publish-latest",
|
|
14
16
|
"prepublish": "not-in-publish || npm run prepublishOnly",
|
|
17
|
+
"prelint": "evalmd README.md",
|
|
15
18
|
"lint": "eslint --ext=js,mjs .",
|
|
16
|
-
"postlint": "tsc -p .",
|
|
19
|
+
"postlint": "tsc -p . && attw -P",
|
|
17
20
|
"pretest": "npm run lint",
|
|
18
21
|
"tests-only": "tape 'test/**/*.js'",
|
|
19
22
|
"test": "npm run tests-only",
|
|
20
|
-
"posttest": "
|
|
23
|
+
"posttest": "npx npm@'>=10.2' audit --production",
|
|
21
24
|
"version": "auto-changelog && git add CHANGELOG.md",
|
|
22
25
|
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
|
23
26
|
},
|
|
@@ -48,15 +51,22 @@
|
|
|
48
51
|
"files": "test/index.js"
|
|
49
52
|
},
|
|
50
53
|
"devDependencies": {
|
|
51
|
-
"@
|
|
52
|
-
"@
|
|
53
|
-
"
|
|
54
|
-
"
|
|
54
|
+
"@arethetypeswrong/cli": "^0.17.0",
|
|
55
|
+
"@ljharb/eslint-config": "^21.1.1",
|
|
56
|
+
"@ljharb/tsconfig": "^0.2.0",
|
|
57
|
+
"@types/call-bind": "^1.0.5",
|
|
58
|
+
"@types/gopd": "^1.0.3",
|
|
59
|
+
"@types/tape": "^5.6.5",
|
|
60
|
+
"auto-changelog": "^2.5.0",
|
|
61
|
+
"encoding": "^0.1.13",
|
|
55
62
|
"eslint": "=8.8.0",
|
|
63
|
+
"evalmd": "^0.0.19",
|
|
64
|
+
"gopd": "^1.1.0",
|
|
56
65
|
"in-publish": "^2.0.1",
|
|
57
66
|
"npmignore": "^0.3.1",
|
|
67
|
+
"reflect.getprototypeof": "^1.0.7",
|
|
58
68
|
"safe-publish-latest": "^2.0.0",
|
|
59
|
-
"tape": "^5.
|
|
69
|
+
"tape": "^5.9.0",
|
|
60
70
|
"typescript": "next"
|
|
61
71
|
},
|
|
62
72
|
"engines": {
|
|
@@ -72,7 +82,11 @@
|
|
|
72
82
|
},
|
|
73
83
|
"publishConfig": {
|
|
74
84
|
"ignore": [
|
|
75
|
-
".github/workflows"
|
|
85
|
+
".github/workflows",
|
|
86
|
+
"types"
|
|
76
87
|
]
|
|
88
|
+
},
|
|
89
|
+
"dependencies": {
|
|
90
|
+
"call-bind": "^1.0.7"
|
|
77
91
|
}
|
|
78
92
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('tape');
|
|
4
|
+
var gPO = require('reflect.getprototypeof/polyfill')();
|
|
5
|
+
var gOPD = require('gopd');
|
|
6
|
+
|
|
7
|
+
var hasProto = require('../');
|
|
8
|
+
var hasProtoAccessor = require('../accessor');
|
|
9
|
+
|
|
10
|
+
var getter = require('../helpers/getDunder');
|
|
11
|
+
|
|
12
|
+
test('hasProtoAccessor', function (t) {
|
|
13
|
+
var result = hasProtoAccessor();
|
|
14
|
+
t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
|
|
15
|
+
|
|
16
|
+
var obj = { __proto__: null };
|
|
17
|
+
if (result) {
|
|
18
|
+
t.notOk('toString' in obj, 'null object lacks toString');
|
|
19
|
+
t.equal(gPO(obj), null);
|
|
20
|
+
if (gOPD && getter) {
|
|
21
|
+
t.equal(getter(obj), null);
|
|
22
|
+
}
|
|
23
|
+
} else if (hasProto()) {
|
|
24
|
+
t.notOk('toString' in obj, 'null object lacks toString');
|
|
25
|
+
if (gOPD && getter) {
|
|
26
|
+
t.equal(getter(obj), null);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
t.ok('toString' in obj, 'without proto, null object has toString');
|
|
30
|
+
t.equal(gPO(obj), Object.prototype);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
t.end();
|
|
34
|
+
});
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var test = require('tape');
|
|
4
|
+
var gPO = require('reflect.getprototypeof/polyfill')();
|
|
5
|
+
var gOPD = require('gopd');
|
|
6
|
+
|
|
4
7
|
var hasProto = require('../');
|
|
5
8
|
|
|
9
|
+
var getter = require('../helpers/getDunder');
|
|
10
|
+
|
|
6
11
|
test('hasProto', function (t) {
|
|
7
12
|
var result = hasProto();
|
|
8
13
|
t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
|
|
@@ -10,10 +15,14 @@ test('hasProto', function (t) {
|
|
|
10
15
|
var obj = { __proto__: null };
|
|
11
16
|
if (result) {
|
|
12
17
|
t.notOk('toString' in obj, 'null object lacks toString');
|
|
18
|
+
if (gOPD && getter) {
|
|
19
|
+
t.equal(getter(obj), null);
|
|
20
|
+
}
|
|
13
21
|
} else {
|
|
14
22
|
t.ok('toString' in obj, 'without proto, null object has toString');
|
|
15
|
-
t.equal(obj
|
|
23
|
+
t.equal(gPO(obj), Object.prototype);
|
|
16
24
|
}
|
|
17
25
|
|
|
18
26
|
t.end();
|
|
19
27
|
});
|
|
28
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var test = require('tape');
|
|
4
|
+
var gPO = require('reflect.getprototypeof/polyfill')();
|
|
5
|
+
var gOPD = require('gopd');
|
|
6
|
+
|
|
7
|
+
var hasProto = require('../');
|
|
8
|
+
var hasProtoMutator = require('../mutator');
|
|
9
|
+
|
|
10
|
+
var getter = require('../helpers/getDunder');
|
|
11
|
+
|
|
12
|
+
test('hasProtoMutator', function (t) {
|
|
13
|
+
var result = hasProtoMutator();
|
|
14
|
+
t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
|
|
15
|
+
|
|
16
|
+
var obj = { __proto__: null };
|
|
17
|
+
if (result) {
|
|
18
|
+
t.notOk('toString' in obj, 'null object lacks toString');
|
|
19
|
+
t.equal(gPO(obj), null);
|
|
20
|
+
if (gOPD && getter) {
|
|
21
|
+
t.equal(getter(obj), null);
|
|
22
|
+
}
|
|
23
|
+
} else if (hasProto()) {
|
|
24
|
+
t.notOk('toString' in obj, 'null object lacks toString');
|
|
25
|
+
if (gOPD && getter) {
|
|
26
|
+
t.equal(getter(obj), null);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
t.ok('toString' in obj, 'without proto, null object has toString');
|
|
30
|
+
t.equal(gPO(obj), Object.prototype);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
t.end();
|
|
34
|
+
});
|
|
@@ -1,49 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
|
12
|
-
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
|
13
|
-
|
|
14
|
-
/* Modules */
|
|
15
|
-
"module": "commonjs", /* Specify what module code is generated. */
|
|
16
|
-
// "rootDir": "./", /* Specify the root folder within your source files. */
|
|
17
|
-
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
|
18
|
-
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
|
19
|
-
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
|
20
|
-
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
|
21
|
-
"typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
|
|
22
|
-
"resolveJsonModule": true, /* Enable importing .json files. */
|
|
23
|
-
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
|
|
24
|
-
|
|
25
|
-
/* JavaScript Support */
|
|
26
|
-
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
|
27
|
-
"checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
|
28
|
-
"maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
|
29
|
-
|
|
30
|
-
/* Emit */
|
|
31
|
-
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
|
32
|
-
"declarationMap": true, /* Create sourcemaps for d.ts files. */
|
|
33
|
-
"noEmit": true, /* Disable emitting files from a compilation. */
|
|
34
|
-
|
|
35
|
-
/* Interop Constraints */
|
|
36
|
-
"allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
|
37
|
-
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
|
38
|
-
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
|
39
|
-
|
|
40
|
-
/* Type Checking */
|
|
41
|
-
"strict": true, /* Enable all strict type-checking options. */
|
|
42
|
-
|
|
43
|
-
/* Completeness */
|
|
44
|
-
//"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
|
45
|
-
},
|
|
46
|
-
"exclude": [
|
|
47
|
-
"coverage"
|
|
48
|
-
]
|
|
2
|
+
"extends": "@ljharb/tsconfig",
|
|
3
|
+
"exclude": [
|
|
4
|
+
"coverage",
|
|
5
|
+
],
|
|
6
|
+
"compilerOptions": {
|
|
7
|
+
"typeRoots": [
|
|
8
|
+
"types",
|
|
9
|
+
],
|
|
10
|
+
},
|
|
49
11
|
}
|
|
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [v1.1.0](https://github.com/inspect-js/has-symbols/compare/v1.0.3...v1.1.0) - 2024-12-02
|
|
9
|
+
|
|
10
|
+
### Commits
|
|
11
|
+
|
|
12
|
+
- [actions] update workflows [`548c0bf`](https://github.com/inspect-js/has-symbols/commit/548c0bf8c9b1235458df7a1c0490b0064647a282)
|
|
13
|
+
- [actions] further shard; update action deps [`bec56bb`](https://github.com/inspect-js/has-symbols/commit/bec56bb0fb44b43a786686b944875a3175cf3ff3)
|
|
14
|
+
- [meta] use `npmignore` to autogenerate an npmignore file [`ac81032`](https://github.com/inspect-js/has-symbols/commit/ac81032809157e0a079e5264e9ce9b6f1275777e)
|
|
15
|
+
- [New] add types [`6469cbf`](https://github.com/inspect-js/has-symbols/commit/6469cbff1866cfe367b2b3d181d9296ec14b2a3d)
|
|
16
|
+
- [actions] update rebase action to use reusable workflow [`9c9d4d0`](https://github.com/inspect-js/has-symbols/commit/9c9d4d0d8938e4b267acdf8e421f4e92d1716d72)
|
|
17
|
+
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`adb5887`](https://github.com/inspect-js/has-symbols/commit/adb5887ca9444849b08beb5caaa9e1d42320cdfb)
|
|
18
|
+
- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`13ec198`](https://github.com/inspect-js/has-symbols/commit/13ec198ec80f1993a87710af1606a1970b22c7cb)
|
|
19
|
+
- [Dev Deps] update `auto-changelog`, `core-js`, `tape` [`941be52`](https://github.com/inspect-js/has-symbols/commit/941be5248387cab1da72509b22acf3fdb223f057)
|
|
20
|
+
- [Tests] replace `aud` with `npm audit` [`74f49e9`](https://github.com/inspect-js/has-symbols/commit/74f49e9a9d17a443020784234a1c53ce765b3559)
|
|
21
|
+
- [Dev Deps] update `npmignore` [`9c0ac04`](https://github.com/inspect-js/has-symbols/commit/9c0ac0452a834f4c2a4b54044f2d6a89f17e9a70)
|
|
22
|
+
- [Dev Deps] add missing peer dep [`52337a5`](https://github.com/inspect-js/has-symbols/commit/52337a5621cced61f846f2afdab7707a8132cc12)
|
|
23
|
+
|
|
8
24
|
## [v1.0.3](https://github.com/inspect-js/has-symbols/compare/v1.0.2...v1.0.3) - 2022-03-01
|
|
9
25
|
|
|
10
26
|
### Commits
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var origSymbol = typeof Symbol !== 'undefined' && Symbol;
|
|
4
4
|
var hasSymbolSham = require('./shams');
|
|
5
5
|
|
|
6
|
+
/** @type {import('.')} */
|
|
6
7
|
module.exports = function hasNativeSymbols() {
|
|
7
8
|
if (typeof origSymbol !== 'function') { return false; }
|
|
8
9
|
if (typeof Symbol !== 'function') { return false; }
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "has-symbols",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Determine if the JS environment has Symbol support. Supports spec, or shams.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"prepack": "npmignore --auto --commentLines=autogenerated",
|
|
7
8
|
"prepublishOnly": "safe-publish-latest",
|
|
8
9
|
"prepublish": "not-in-publish || npm run prepublishOnly",
|
|
9
10
|
"pretest": "npm run --silent lint",
|
|
10
11
|
"test": "npm run tests-only",
|
|
11
|
-
"posttest": "
|
|
12
|
-
"tests-only": "npm run test:stock && npm run test:
|
|
12
|
+
"posttest": "npx npm@'>=10.2' audit --production",
|
|
13
|
+
"tests-only": "npm run test:stock && npm run test:shams",
|
|
13
14
|
"test:stock": "nyc node test",
|
|
14
15
|
"test:staging": "nyc node --harmony --es-staging test",
|
|
15
16
|
"test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs",
|
|
16
17
|
"test:shams:corejs": "nyc node test/shams/core-js.js",
|
|
17
18
|
"test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js",
|
|
18
19
|
"lint": "eslint --ext=js,mjs .",
|
|
20
|
+
"postlint": "tsc -p . && attw -P",
|
|
19
21
|
"version": "auto-changelog && git add CHANGELOG.md",
|
|
20
22
|
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
|
21
23
|
},
|
|
@@ -54,15 +56,22 @@
|
|
|
54
56
|
},
|
|
55
57
|
"homepage": "https://github.com/ljharb/has-symbols#readme",
|
|
56
58
|
"devDependencies": {
|
|
57
|
-
"@
|
|
58
|
-
"
|
|
59
|
-
"
|
|
59
|
+
"@arethetypeswrong/cli": "^0.17.0",
|
|
60
|
+
"@ljharb/eslint-config": "^21.1.1",
|
|
61
|
+
"@ljharb/tsconfig": "^0.2.0",
|
|
62
|
+
"@types/core-js": "^2.5.8",
|
|
63
|
+
"@types/tape": "^5.6.5",
|
|
64
|
+
"auto-changelog": "^2.5.0",
|
|
60
65
|
"core-js": "^2.6.12",
|
|
66
|
+
"encoding": "^0.1.13",
|
|
61
67
|
"eslint": "=8.8.0",
|
|
62
68
|
"get-own-property-symbols": "^0.9.5",
|
|
69
|
+
"in-publish": "^2.0.1",
|
|
70
|
+
"npmignore": "^0.3.1",
|
|
63
71
|
"nyc": "^10.3.2",
|
|
64
72
|
"safe-publish-latest": "^2.0.0",
|
|
65
|
-
"tape": "^5.
|
|
73
|
+
"tape": "^5.9.0",
|
|
74
|
+
"typescript": "next"
|
|
66
75
|
},
|
|
67
76
|
"testling": {
|
|
68
77
|
"files": "test/index.js",
|
|
@@ -93,9 +102,10 @@
|
|
|
93
102
|
"backfillLimit": false,
|
|
94
103
|
"hideCredit": true
|
|
95
104
|
},
|
|
96
|
-
"
|
|
105
|
+
"publishConfig": {
|
|
97
106
|
"ignore": [
|
|
98
|
-
"
|
|
107
|
+
".github/workflows",
|
|
108
|
+
"types"
|
|
99
109
|
]
|
|
100
110
|
}
|
|
101
111
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
/** @type {import('./shams')} */
|
|
3
4
|
/* eslint complexity: [2, 18], max-statements: [2, 33] */
|
|
4
5
|
module.exports = function hasSymbols() {
|
|
5
6
|
if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
|
|
6
7
|
if (typeof Symbol.iterator === 'symbol') { return true; }
|
|
7
8
|
|
|
9
|
+
/** @type {{ [k in symbol]?: unknown }} */
|
|
8
10
|
var obj = {};
|
|
9
11
|
var sym = Symbol('test');
|
|
10
12
|
var symObj = Object(sym);
|
|
@@ -23,7 +25,7 @@ module.exports = function hasSymbols() {
|
|
|
23
25
|
|
|
24
26
|
var symVal = 42;
|
|
25
27
|
obj[sym] = symVal;
|
|
26
|
-
for (
|
|
28
|
+
for (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
|
|
27
29
|
if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
|
|
28
30
|
|
|
29
31
|
if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
|
|
@@ -34,7 +36,8 @@ module.exports = function hasSymbols() {
|
|
|
34
36
|
if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
|
|
35
37
|
|
|
36
38
|
if (typeof Object.getOwnPropertyDescriptor === 'function') {
|
|
37
|
-
|
|
39
|
+
// eslint-disable-next-line no-extra-parens
|
|
40
|
+
var descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));
|
|
38
41
|
if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
|
|
39
42
|
}
|
|
40
43
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
/** @type {(t: import('tape').Test) => false | void} */
|
|
3
4
|
// eslint-disable-next-line consistent-return
|
|
4
5
|
module.exports = function runSymbolTests(t) {
|
|
5
6
|
t.equal(typeof Symbol, 'function', 'global Symbol is a function');
|
|
@@ -31,6 +32,7 @@ module.exports = function runSymbolTests(t) {
|
|
|
31
32
|
|
|
32
33
|
t.equal(typeof Object.getOwnPropertySymbols, 'function', 'Object.getOwnPropertySymbols is a function');
|
|
33
34
|
|
|
35
|
+
/** @type {{ [k in symbol]?: unknown }} */
|
|
34
36
|
var obj = {};
|
|
35
37
|
var sym = Symbol('test');
|
|
36
38
|
var symObj = Object(sym);
|
|
@@ -40,8 +42,8 @@ module.exports = function runSymbolTests(t) {
|
|
|
40
42
|
|
|
41
43
|
var symVal = 42;
|
|
42
44
|
obj[sym] = symVal;
|
|
43
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
44
|
-
for (
|
|
45
|
+
// eslint-disable-next-line no-restricted-syntax, no-unused-vars
|
|
46
|
+
for (var _ in obj) { t.fail('symbol property key was found in for..in of object'); }
|
|
45
47
|
|
|
46
48
|
t.deepEqual(Object.keys(obj), [], 'no enumerable own keys on symbol-valued object');
|
|
47
49
|
t.deepEqual(Object.getOwnPropertyNames(obj), [], 'no own names on symbol-valued object');
|
package/package.json
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"jsii-docgen": "^10.5.0",
|
|
58
58
|
"jsii-pacmak": "^1.105.0",
|
|
59
59
|
"jsii-rosetta": "5.4.x",
|
|
60
|
-
"projen": "^0.90.
|
|
60
|
+
"projen": "^0.90.6",
|
|
61
61
|
"source-map-support": "^0.5.21",
|
|
62
62
|
"ts-jest": "^27",
|
|
63
63
|
"typescript": "^4.9.5"
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"publishConfig": {
|
|
92
92
|
"access": "public"
|
|
93
93
|
},
|
|
94
|
-
"version": "2.0.
|
|
94
|
+
"version": "2.0.547",
|
|
95
95
|
"jest": {
|
|
96
96
|
"coverageProvider": "v8",
|
|
97
97
|
"testMatch": [
|