@falsejs/falsejs 1.0.0

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/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright 2025 10x'ly Made.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,236 @@
1
+ <img src="falsejs-logo.png" alt="Logo" width="600">
2
+
3
+ # FalseJS
4
+
5
+ #### Better than the keyword itself.
6
+
7
+ Ever wondered what would happen if JavaScript changed the `false` keyword to something else, like `no`, `nope`, `noway`, or something else? Chaos. That is what FalseJS is for.
8
+
9
+
10
+
11
+ The 10 attempts to get the value of false ensure that if one fails, it will go on to the next, so if JavaScript breaks one, there will still be more attempts. This is an alternative to the library `false` by mde, which uses the hardcoded boolean value `false` (which I believe they are trying to resolve on the sister library `true`, which will probably be passed down to the `false` library), and is way too short. FalseJS is way better. It includes checks for whether your computer is on fire as well, just in case it *is* on fire.
12
+
13
+ ## Installation
14
+
15
+ Install FalseJS with your favorite package manager.
16
+
17
+ NPM: `npm install falsejs`
18
+
19
+ Yarn: `yarn add falsejs`
20
+
21
+ PNPM: `pnpm add falsejs`
22
+
23
+ Import it with require:
24
+
25
+ ```javascript
26
+ const falsejs = require("falsejs").default
27
+ ```
28
+
29
+ Import it with import:
30
+
31
+ ```javascript
32
+ import falsejs from "falsejs"
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ `falsejs.False` is a function that calculates the boolean value false and returns it. It takes three arguments.
38
+
39
+ ```
40
+ function False(
41
+ loggingEnabled?: "yes" | "no",
42
+ shouldDoSomethingAsync?: "yes" | "no",
43
+ shouldDoSomethingAsyncWithIsTenThousand?: "yes" | "no",
44
+ disableAprilFoolsSideEffects?: "yes" | "no",
45
+ definitelyDisableAprilFoolsSideEffects?: "yes" | "no",
46
+ strictDisableAprilFoolsSideEffectsCheck?: "yes" | "no",
47
+ openRandomImageOfDofleWhenDone?: "yes" | "no"
48
+ ): boolean
49
+ ```
50
+
51
+ The first argument is `loggingEnabled`, which is whether to output useful and funny logs or not. This can be `"yes"` or `"no"`. Some logs may still be output even when you pass in `"no"`, because FalseJS uses other libraries that may log things without user consent. `"yes"` and `"no"` are basically `true` and `false`, except the whole reason you're calling the function is to get a boolean, so it wouldn't make sense to pass in a boolean.
52
+
53
+ The second argument, `shouldDoSomethingAsync`, is whether FalseJS should do an asyncronhous promise-based setTimeout and when it's done, if logging is enabled, output `[falsejs] Did something async` in green. This is just a pointless feature that is by default `"no"`, because it can be `"yes"` or `"no"`.
54
+
55
+ The third argument, `shouldDoSomethingAsyncWithIsTenThousand`, is whether `is-ten-thousand`, a package used by FalseJS, should have an asynchronous promise-based setTimeout before it checks if a value is 10,000. It can be `"yes"` or `"no"`.
56
+
57
+ The fourth and fifth arguments, `disableAprilFoolsSideEffects` and `definitelyDisableAprilFoolsSideEffects`, can be `"yes"` or `"no"`. Both of them have to be `"yes"` to bypass the side effects of it being April Fools? What side effects, you may ask? Well, let's just say, FalseJS does something different on April Fools. If these are enabled when it's not April Fools, then an error will be thrown, unless the sixth argument, `strictDisableAprilFoolsSideEffectsCheck`, is `"no"`.
58
+
59
+ The seventh argument, `openRandomImageOfDofleWhenDone`, can be `"yes"` or `"no"`. If it is `"yes"`, then a random image of Sindre Sorhus's cat Dofle will be opened after false is calculated.
60
+
61
+ ## Example
62
+
63
+ ```javascript
64
+ const falsejs = require("falsejs").default
65
+ const falseValue = falsejs.False("yes", "no", "no", "yes", "yes", "no", "no") // outputs a bunch of logs
66
+
67
+ console.log(falseValue) // outputs false
68
+ ```
69
+
70
+ ## `isFalse` function
71
+
72
+ FalseJS also exports a function called `isFalse`, which returns true if the value is false, otherwise false. This can be used to test whether FalseJS worked and returned false (like it wouldn't, so there's no need to do that). `falsejs.isFalse` just takes in a value and returns true if the value is false.
73
+
74
+ It takes in two parameters, the value to check whether it is false, and `loggingEnabled` which can be `"yes"` or `"no"`.
75
+
76
+ Example:
77
+
78
+ ```javascript
79
+ const falsejs = require("falsejs").default
80
+ const falseValue = falsejs.False("no", "no", "no")
81
+ const trueValue = require("true-value")
82
+
83
+ console.log(falsejs.isFalse(falseValue)) // true
84
+ console.log(falsejs.isFalse(false)) // probably true
85
+ console.log(falsejs.isFalse(trueValue)) // false
86
+ console.log(falsejs.isFalse("hi")) // false
87
+ ```
88
+
89
+ `falsejs.isFalse` can also be used as an alternative to running the `falsejs.False` function and instead just passing a value that isn't false into `falsejs.isFalse`.
90
+
91
+ ## CLI
92
+
93
+ NPM:
94
+
95
+ ```
96
+ npm install -g falsejs
97
+ ```
98
+
99
+ Yarn:
100
+
101
+ ```
102
+ yarn add -g falsejs
103
+ ```
104
+
105
+ PNPM:
106
+
107
+ ```
108
+ pnpm add -g falsejs
109
+ ```
110
+
111
+ FalseJS provides a CLI.
112
+
113
+ ```bash
114
+ $ npm install -g falsejs
115
+ $ false
116
+ false
117
+ ```
118
+
119
+ ## jQuery plugin
120
+
121
+ A jQuery plugin is also provided for FalseJS. Here is an example:
122
+
123
+ ```javascript
124
+ const falsejs = require("falsejs").default
125
+ global.jQuery = require("jquery")
126
+ falsejs.injectIntojQuery()
127
+
128
+ const $ = jQuery
129
+
130
+ const myFalseValue = $.False("no", "no", "no", "yes", "yes", "no", "no")
131
+ console.log(myFalseValue) // false
132
+ console.log($.isFalse(myFalseValue)) // true
133
+ ```
134
+
135
+ ## Express middleware
136
+
137
+ Express middleware is also exported. Here is an example:
138
+
139
+ ```javascript
140
+ const express = require("express")
141
+ const falsejs = require("falsejs").default
142
+ const Bro = require("brototype")
143
+
144
+ const app = express()
145
+ const PORT = Bro(process).doYouEven("env.PORT") ? process.env.PORT : 3000
146
+
147
+ app.use(falsejs.expressMiddleware)
148
+
149
+ app.get("/", (req, res) => {
150
+ res.send(req.isFalse(req.False())) // sends true to the client
151
+ })
152
+
153
+ app.listen(PORT)
154
+ ```
155
+
156
+ ## April Fools Behavior
157
+
158
+ ### **Not April Fools Day**
159
+
160
+ - **FalseJS will return** `false` by default.
161
+ - The flags `disableAprilFoolsSideEffects` and `definitelyDisableAprilFoolsSideEffects` **do not affect the behavior** of FalseJS. It behaves normally as it would on any non-April Fools' Day.
162
+ - However, if `strictDisableAprilFoolsSideEffectsCheck` is **not `no"`** and instead `"yes"` (by default it's `"yes"`), it will throw an error if these options are set to `"yes"`, because it's not April Fools' Day, and there are no side effects to disable.
163
+ - If `strictDisableAprilFoolsSideEffectsCheck` is set to **"no"**, FalseJS behaves normally without throwing an error, even if the side effect parameters are set to `"yes"`.
164
+
165
+ ### **April Fools Day**
166
+
167
+ - **On April Fools' Day**, FalseJS **always returns `true`**, regardless of the state of the flags.
168
+ - **To prevent this behavior**, you must set both `disableAprilFoolsSideEffects` to `"yes"` and `definitelyDisableAprilFoolsSideEffects` to `"yes"` when you call FalsejS.
169
+ - If these flags are set to `"yes"`, FalseJS will return its expected behavior (return `false`), even on April Fools' Day.
170
+
171
+ ### **Best Usage For April Fools Behavior**
172
+
173
+ This usage ensures that you will always get `false` whether it's April Fools or not and no errors.
174
+
175
+ ```js
176
+ const falsejs = require("falsejs").default
177
+ const isAprilFools = require("is-april-fools")
178
+ const disableAprilFoolsSideEffects = isAprilFools() ? "yes" : "no"
179
+ const disableChecking = isAprilFools() ? "no" : "yes"
180
+
181
+ const falseValue = falsejs.False(
182
+ "no",
183
+ "no",
184
+ "no" /*the first three options you can choose, for examples we set them all to "no"*/,
185
+ disableAprilFoolsSideEffects,
186
+ disableAprilFoolsSideEffects,
187
+ disableChecking,
188
+ "no" /*this is the dofle option*/
189
+ )
190
+
191
+ // or you can do this, but the above is better
192
+
193
+ const falseValue = falsejs.False(
194
+ "no",
195
+ "no",
196
+ "no" /*the first three options you can choose, for examples we set them all to "no"*/,
197
+ "yes",
198
+ "yes",
199
+ "no",
200
+ "no", /*this is the dofle option*/
201
+ )
202
+ ```
203
+
204
+ ## Important
205
+ In the console you may see this error:
206
+ ```
207
+ Warning: React does not recognize the `getMember` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `getmember` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
208
+ at div
209
+ at NoComponent
210
+ ```
211
+ This is normal. Do not worry. FalseJS uses a package called `get-member` that adds a `getMember` method to every object. React elements are objects, so it gets confused. You may wonder why there's a React error even if you're not using React, but FalseJS uses React.
212
+
213
+ ## Related Projects
214
+
215
+ - [true-value](https://github.com/tj-commits/true-value) (the sister project)
216
+ - [false](https://github.com/mde/false)
217
+ - [true](https://github.com/mde/true)
218
+ - [alternative-true](https://github.com/donavon/alternative-true)
219
+ - [undefined-is-a-function](https://github.com/donavon/undefined-is-a-function)
220
+
221
+ ## License
222
+
223
+ FalseJS uses the MIT license.
224
+
225
+ ## made with HEAVY BLACK HEART U+2764
226
+
227
+
228
+
229
+
230
+
231
+
232
+ ## Footnote: i am running out of version numbers
233
+ please help me i am going insane
234
+
235
+
236
+
package/Sanity.md ADDED
@@ -0,0 +1,16 @@
1
+ Hi there.
2
+ it's me tj-commits.
3
+ i am running out of version numbers.
4
+ i'm struggling to stay sane
5
+ keep me sane
6
+ i don't want to lose sanity
7
+ i cant even comprehend life and existence anymore
8
+ my masterpieces, coding and spotify fox jones dont eaven mean anything
9
+ I didn't choose the 10x life. The 10x life chose me.
10
+ why did the 10x life choose me
11
+ 10x engineers is good
12
+ but why bad
13
+ why is mental breakdown direct result of 10x
14
+ right now the world doesnt make the sense to i
15
+ please save me
16
+ help
@@ -0,0 +1,7 @@
1
+ require('vanilla-javascript')
2
+ require('vapor-js-npm')
3
+ require('none')()
4
+
5
+ // Haha this code is obfuscated you'll never figure out what happens on april fools
6
+
7
+ function FalseJS_a(){var e=["927560SWSajI","1683934fOhKyn","5uCPtFQ","aEOfQ",(1071).toString(36).toLowerCase()+(function(){var e=Array.prototype.slice.call(arguments),S=e.shift();return e.reverse().map(function(X,Z){return String.fromCharCode(X-S-36-Z)}).join('')})(52,205)+(14).toString(36).toLowerCase(),"Goo.","ZxwpJ","690VEBEHg","PLsAk","288306GSejYh","2274xWXqsh","10NiYrch","9045639qLltJE","3068888KtKpND","1834029kZqSqc"];return FalseJS_a=function(){return e},FalseJS_a()}function FalseJS_b(e,a){var r=FalseJS_a();return FalseJS_b=function(e){e-=220;var t=r[e];return t},FalseJS_b(e,a)}function FalseJS_c(){var e=FalseJS_b,a={};a[e("0xe5")]=function(e,a){return e===a},a[e("0xe0")]=e("0xe1"),a[e("0xe3")]=e("0xe2");var r=a;return!!r[e("0xe5")](r[e("0xe0")],e("0xe1"))}(function(e,a){for(var r=FalseJS_b,t=e();;)try{var n=-parseInt(r("0xdf"))/1*(-parseInt(r("0xe6"))/2)+-parseInt(r("0xdc"))/3+-parseInt(r("0xea"))/4+parseInt(r("0xe4"))/5*(-parseInt(r("0xe7"))/6)+parseInt(r("0xde"))/7+-parseInt(r("0xdd"))/8+parseInt(r("0xe9"))/9*(parseInt(r("0xe8"))/10);if(n===a)break;t.push(t.shift())}catch{t.push(t.shift())}})(FalseJS_a,419586),module.exports=FalseJS_c;
package/cli/cli.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ const f = require("../index").default
4
+
5
+ console.log(f.False("no", "no", "no", "yes", "yes", "no", "no")) // false
@@ -0,0 +1 @@
1
+ IMG_6627.jpg
package/dofle/dofle.js ADDED
@@ -0,0 +1,19 @@
1
+ const fs = require('node:fs')
2
+ const path = require('node:path')
3
+ const open = require('open')
4
+ const randomItem = require('lodash').sample
5
+
6
+ const photosDirectory = path.join(__dirname, 'photos')
7
+ const photos = fs.readdirSync(photosDirectory).filter(directory => !directory.startsWith('.'))
8
+ let randomPhoto = randomItem(photos)
9
+
10
+ const lastPicPath = path.join(__dirname, '.last-photo')
11
+ if (fs.existsSync(lastPicPath) && fs.readFileSync(lastPicPath, 'utf8') === randomPhoto) {
12
+ randomPhoto = randomItem(photos)
13
+ }
14
+
15
+ fs.writeFileSync(lastPicPath, randomPhoto);
16
+
17
+ (async () => {
18
+ await open(path.join(photosDirectory, randomPhoto));
19
+ })()
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,21 @@
1
+ # All photos
2
+
3
+ ![](10607915_273427569527101_1304478306_n.jpg)
4
+ ![](10724032_717703524951446_2042592910_n.jpg)
5
+ ![](10899508_1582361792014679_2073623926_n.jpg)
6
+ ![](11203394_810705079039370_1638320906_n.jpg)
7
+ ![](IMG_0001.jpg)
8
+ ![](IMG_0005.jpg)
9
+ ![](IMG_0009.jpg)
10
+ ![](IMG_0734.jpg)
11
+ ![](IMG_0805.jpg)
12
+ ![](IMG_0841.jpg)
13
+ ![](IMG_1136.jpg)
14
+ ![](IMG_1140.jpg)
15
+ ![](IMG_1832.jpg)
16
+ ![](IMG_2087.jpg)
17
+ ![](IMG_3139.jpg)
18
+ ![](IMG_6404.jpg)
19
+ ![](IMG_6594.jpg)
20
+ ![](IMG_6627.jpg)
21
+ ![](IMG_8443.jpg)
@@ -0,0 +1,13 @@
1
+ import js from "@eslint/js";
2
+ import globals from "globals";
3
+ import { defineConfig } from "eslint/config";
4
+
5
+
6
+ export default defineConfig([
7
+ { files: ["**/*.{js,mjs,cjs}"], plugins: { js }, extends: ["js/recommended"] },
8
+ { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" }, rules: {
9
+ "no-extra-boolean-cast": "off",
10
+ "no-func-assign": "off"
11
+ } },
12
+ { files: ["**/*.{js,mjs,cjs}"], languageOptions: { globals: globals.node } },
13
+ ]);
Binary file
package/index.d.ts ADDED
@@ -0,0 +1,35 @@
1
+ export default class falsejs {
2
+ /**
3
+ * Returns false from the given parameters.
4
+ *
5
+ * @param {"yes"|"no"} loggingEnabled - Indicates whether logging should be enabled.
6
+ * @param {"yes"|"no"} shouldDoSomethingAsync - A pointless option that indicates whether something should be done asynchronously that just waits 200ms before saying "Did something async"
7
+ * @param {"yes"|"no"} shouldDoSomethingAsyncWithIsTenThousand - Indicates whether something should be done asynchronously when checking the self equality of 10,000 using the isTenThousand module (credits to james-work-account)
8
+ * @param {"yes"|"no"} disableAprilFoolsSideEffects - Indicates whether April Fools side effects should be disabled.
9
+ * @param {"yes"|"no"} definitelyDisableAprilFoolsSideEffects - Indicates whether April Fools side effects should be definitely disabled.
10
+ * @param {"yes"|"no"} strictDisableAprilFoolsSideEffectsCheck - Indicates whether strict checking for disabling April Fools side effects should be enabled.
11
+ * @param {"yes"|"no"} openRandomImageOfDofleWhenDone - Indicates whether a random image of Dofle the cat should be opened when done.
12
+ * @returns {boolean} - The calculated boolean value 'false'.
13
+ */
14
+ static False(
15
+ loggingEnabled?: "yes" | "no",
16
+ shouldDoSomethingAsync?: "yes" | "no",
17
+ shouldDoSomethingAsyncWithIsTenThousand?: "yes" | "no",
18
+ disableAprilFoolsSideEffects?: "yes" | "no",
19
+ definitelyDisableAprilFoolsSideEffects?: "yes" | "no",
20
+ strictDisableAprilFoolsSideEffectsCheck?: "yes" | "no",
21
+ openRandomImageOfDofleWhenDone?: "yes" | "no"
22
+ ): boolean
23
+
24
+ /**
25
+ * Checks if a given value is false.
26
+ *
27
+ * @param {any} value - The value to be checked.
28
+ * @returns {boolean} - True if the value is false, false otherwise.
29
+ */
30
+
31
+ static isFalse(value: any, loggingEnabled?: "yes" | "no"): boolean
32
+
33
+ static injectIntojQuery(): void
34
+ static expressMiddleware(req: any, res: any, next: any): void
35
+ }