necessary 12.1.4 → 12.2.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/README.md +50 -0
- package/lib/browser.js +10 -2
- package/lib/main.js +7 -3
- package/lib/utilities/string.js +74 -0
- package/package.json +1 -1
- package/src/browser.js +4 -2
- package/src/main.js +5 -2
- package/src/utilities/string.js +36 -0
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@ These can be used both on Node and in the browser:
|
|
|
22
22
|
* [Path utilities](#path-utilities)
|
|
23
23
|
* [Array utilities](#array-utilities)
|
|
24
24
|
* [HTTP utilities](#http-utilities)
|
|
25
|
+
* [String utilities](#string-utilities)
|
|
25
26
|
* [Version utilities](#version-utilities)
|
|
26
27
|
* [Template utilities](#template-utilities)
|
|
27
28
|
* [Asynchronous utilities](#asynchronous-utilities)
|
|
@@ -856,6 +857,55 @@ urlFromHostURIAndQuery(host, uri, query); // returns "https://site.com/user?name
|
|
|
856
857
|
|
|
857
858
|
Ideally the `host` argument should not include a trailing forward slash whereas `uri` arguments should always start with a leading forward slash.
|
|
858
859
|
|
|
860
|
+
## String utilities
|
|
861
|
+
|
|
862
|
+
- `strcmp()`
|
|
863
|
+
- `strlen()`
|
|
864
|
+
- `substring()`
|
|
865
|
+
|
|
866
|
+
Substitute functions with support for Unicode. Specifically, characters in Unicode astral plains are counted twice in native functions. These functions fix this issue by converting strings to arrays and if necessary back again. Be warned that for this reason they are nowhere near as fast as their native counterparts.
|
|
867
|
+
|
|
868
|
+
* The `strcmp` function takes `stringA` and `stringB` arguments. It compares them character by character in order to find the lexicographically lesser of the two. Its return value is the difference between the code points of the first differing characters, with the code point of either string given as zero if it is empty. Some examples should clarify:
|
|
869
|
+
|
|
870
|
+
```
|
|
871
|
+
strcmp("", "") = 0;
|
|
872
|
+
|
|
873
|
+
strcmp("a", "") < 0;
|
|
874
|
+
|
|
875
|
+
strcmp("", "a") > 0;
|
|
876
|
+
|
|
877
|
+
strcmp("a", "a") = 0;
|
|
878
|
+
|
|
879
|
+
strcmp("ab", "a") < 0;
|
|
880
|
+
|
|
881
|
+
strcmp("ab", "ac") > 0;
|
|
882
|
+
|
|
883
|
+
strcmp("C", "𝔸") > 0;
|
|
884
|
+
```
|
|
885
|
+
|
|
886
|
+
Note that, conceptually speaking, the first argument is taken away from the second argument in order to compute the difference and not the other way around.
|
|
887
|
+
|
|
888
|
+
Note also that the double-struck `C` is in the basic multilingual plane and has code point `0x02102` whereas the double-struck `𝔸` is in an astral plane and has code point `0x1D538`, therefore their difference is positive.
|
|
889
|
+
|
|
890
|
+
* The `strlen()` function takes a single `string` argument. It works in much the same way as the `length` property of the `String` prototype, however it is Unicode safe:
|
|
891
|
+
|
|
892
|
+
```
|
|
893
|
+
"𝔸𝔹C".length = 5 // The 𝔹 and C characters are in an astral plane and count as two each.
|
|
894
|
+
|
|
895
|
+
strlen("𝔸𝔹C") = 3 // The string is converted to an array whose length is 3.
|
|
896
|
+
|
|
897
|
+
```
|
|
898
|
+
|
|
899
|
+
* The `substring()` function takes `string` and `start` arguments and an optional `end` argument. It works in much the same way as the `substring()` method of the `String` prototype, however it is Unicode safe:
|
|
900
|
+
|
|
901
|
+
```
|
|
902
|
+
"𝔸𝔹C".substring(3) = "C" // The 𝔹 character is in an astral plane and counts as two.
|
|
903
|
+
|
|
904
|
+
substring("𝔸𝔹C", 2) = "C" // Again the string is converted to an array and thus the third character is returned.
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
Note the native `substring()` method can be particularly egregious because the `start` and `end` arguments may result in only half of some characters being returned, so to speak.
|
|
908
|
+
|
|
859
909
|
## Version utilities
|
|
860
910
|
|
|
861
911
|
- `migrate()`
|
package/lib/browser.js
CHANGED
|
@@ -51,6 +51,12 @@ _export(exports, {
|
|
|
51
51
|
statusMessages: function() {
|
|
52
52
|
return _statusMessages.default;
|
|
53
53
|
},
|
|
54
|
+
stringUtilities: function() {
|
|
55
|
+
return _string.default;
|
|
56
|
+
},
|
|
57
|
+
templateUtilities: function() {
|
|
58
|
+
return _template.default;
|
|
59
|
+
},
|
|
54
60
|
versionUtilities: function() {
|
|
55
61
|
return _version.default;
|
|
56
62
|
}
|
|
@@ -64,16 +70,18 @@ var _characters = /*#__PURE__*/ _interop_require_default(require("./characters")
|
|
|
64
70
|
var _statusCodes = /*#__PURE__*/ _interop_require_default(require("./statusCodes"));
|
|
65
71
|
var _contentTypes = /*#__PURE__*/ _interop_require_default(require("./contentTypes"));
|
|
66
72
|
var _statusMessages = /*#__PURE__*/ _interop_require_default(require("./statusMessages"));
|
|
67
|
-
var _ajax = /*#__PURE__*/ _interop_require_default(require("./utilities/ajax"));
|
|
68
73
|
var _path = /*#__PURE__*/ _interop_require_default(require("./utilities/path"));
|
|
69
74
|
var _http = /*#__PURE__*/ _interop_require_default(require("./utilities/http"));
|
|
70
75
|
var _array = /*#__PURE__*/ _interop_require_default(require("./utilities/array"));
|
|
76
|
+
var _string = /*#__PURE__*/ _interop_require_default(require("./utilities/string"));
|
|
71
77
|
var _version = /*#__PURE__*/ _interop_require_default(require("./utilities/version"));
|
|
78
|
+
var _template = /*#__PURE__*/ _interop_require_default(require("./utilities/template"));
|
|
72
79
|
var _asynchronous = /*#__PURE__*/ _interop_require_default(require("./utilities/asynchronous"));
|
|
80
|
+
var _ajax = /*#__PURE__*/ _interop_require_default(require("./utilities/ajax"));
|
|
73
81
|
function _interop_require_default(obj) {
|
|
74
82
|
return obj && obj.__esModule ? obj : {
|
|
75
83
|
default: obj
|
|
76
84
|
};
|
|
77
85
|
}
|
|
78
86
|
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGxldmVscyB9IGZyb20gXCIuL2xldmVsc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtZXRob2RzIH0gZnJvbSBcIi4vbWV0aG9kc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBoZWFkZXJzIH0gZnJvbSBcIi4vaGVhZGVyc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBrZXlDb2RlcyB9IGZyb20gXCIuL2tleUNvZGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVuY29kaW5ncyB9IGZyb20gXCIuL2VuY29kaW5nc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjaGFyYWN0ZXJzIH0gZnJvbSBcIi4vY2hhcmFjdGVyc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdGF0dXNDb2RlcyB9IGZyb20gXCIuL3N0YXR1c0NvZGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbnRlbnRUeXBlcyB9IGZyb20gXCIuL2NvbnRlbnRUeXBlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdGF0dXNNZXNzYWdlcyB9IGZyb20gXCIuL3N0YXR1c01lc3NhZ2VzXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGF0aFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGh0dHBVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvaHR0cFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdHJpbmdVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyc2lvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZW1wbGF0ZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy90ZW1wbGF0ZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgYWpheFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9hamF4XCI7XG4iXSwibmFtZXMiOlsiYWpheFV0aWxpdGllcyIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiY2hhcmFjdGVycyIsImNvbnRlbnRUeXBlcyIsImVuY29kaW5ncyIsImhlYWRlcnMiLCJodHRwVXRpbGl0aWVzIiwia2V5Q29kZXMiLCJsZXZlbHMiLCJtZXRob2RzIiwicGF0aFV0aWxpdGllcyIsInN0YXR1c0NvZGVzIiwic3RhdHVzTWVzc2FnZXMiLCJzdHJpbmdVdGlsaXRpZXMiLCJ0ZW1wbGF0ZVV0aWxpdGllcyIsInZlcnNpb25VdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW9Cb0JBLGFBQWE7ZUFBYkEsYUFBYTs7SUFOYkMsY0FBYztlQUFkQSxjQUFjOztJQUlkQyxxQkFBcUI7ZUFBckJBLHFCQUFxQjs7SUFYckJDLFVBQVU7ZUFBVkEsbUJBQVU7O0lBRVZDLFlBQVk7ZUFBWkEscUJBQVk7O0lBSFpDLFNBQVM7ZUFBVEEsa0JBQVM7O0lBRlRDLE9BQU87ZUFBUEEsZ0JBQU87O0lBU1BDLGFBQWE7ZUFBYkEsYUFBYTs7SUFSYkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFIUkMsTUFBTTtlQUFOQSxlQUFNOztJQUNOQyxPQUFPO2VBQVBBLGdCQUFPOztJQVNQQyxhQUFhO2VBQWJBLGFBQWE7O0lBSmJDLFdBQVc7ZUFBWEEsb0JBQVc7O0lBRVhDLGNBQWM7ZUFBZEEsdUJBQWM7O0lBS2RDLGVBQWU7ZUFBZkEsZUFBZTs7SUFFZkMsaUJBQWlCO2VBQWpCQSxpQkFBaUI7O0lBRGpCQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7OzZEQWRGOzhEQUNDOzhEQUNBOytEQUNDO2dFQUNDO2lFQUNDO2tFQUNDO21FQUNDO3FFQUNFOzJEQUVEOzJEQUNBOzREQUNDOzZEQUNDOzhEQUNDOytEQUNDO21FQUNJOzJEQUVSIn0=
|
package/lib/main.js
CHANGED
|
@@ -66,6 +66,9 @@ _export(exports, {
|
|
|
66
66
|
statusMessages: function() {
|
|
67
67
|
return _statusMessages.default;
|
|
68
68
|
},
|
|
69
|
+
stringUtilities: function() {
|
|
70
|
+
return _string.default;
|
|
71
|
+
},
|
|
69
72
|
templateUtilities: function() {
|
|
70
73
|
return _template.default;
|
|
71
74
|
},
|
|
@@ -85,13 +88,14 @@ var _statusMessages = /*#__PURE__*/ _interop_require_default(require("./statusMe
|
|
|
85
88
|
var _path = /*#__PURE__*/ _interop_require_default(require("./utilities/path"));
|
|
86
89
|
var _http = /*#__PURE__*/ _interop_require_default(require("./utilities/http"));
|
|
87
90
|
var _array = /*#__PURE__*/ _interop_require_default(require("./utilities/array"));
|
|
91
|
+
var _string = /*#__PURE__*/ _interop_require_default(require("./utilities/string"));
|
|
88
92
|
var _version = /*#__PURE__*/ _interop_require_default(require("./utilities/version"));
|
|
89
|
-
var
|
|
93
|
+
var _template = /*#__PURE__*/ _interop_require_default(require("./utilities/template"));
|
|
90
94
|
var _asynchronous = /*#__PURE__*/ _interop_require_default(require("./utilities/asynchronous"));
|
|
91
95
|
var _shell = /*#__PURE__*/ _interop_require_default(require("./utilities/shell"));
|
|
92
96
|
var _request = /*#__PURE__*/ _interop_require_default(require("./utilities/request"));
|
|
93
97
|
var _logging = /*#__PURE__*/ _interop_require_default(require("./utilities/logging"));
|
|
94
|
-
var
|
|
98
|
+
var _package = /*#__PURE__*/ _interop_require_default(require("./utilities/package"));
|
|
95
99
|
var _fileSystem = /*#__PURE__*/ _interop_require_default(require("./utilities/fileSystem"));
|
|
96
100
|
var _configuration = /*#__PURE__*/ _interop_require_default(require("./utilities/configuration"));
|
|
97
101
|
function _interop_require_default(obj) {
|
|
@@ -100,4 +104,4 @@ function _interop_require_default(obj) {
|
|
|
100
104
|
};
|
|
101
105
|
}
|
|
102
106
|
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGxldmVscyB9IGZyb20gXCIuL2xldmVsc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtZXRob2RzIH0gZnJvbSBcIi4vbWV0aG9kc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBoZWFkZXJzIH0gZnJvbSBcIi4vaGVhZGVyc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBrZXlDb2RlcyB9IGZyb20gXCIuL2tleUNvZGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVuY29kaW5ncyB9IGZyb20gXCIuL2VuY29kaW5nc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjaGFyYWN0ZXJzIH0gZnJvbSBcIi4vY2hhcmFjdGVyc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdGF0dXNDb2RlcyB9IGZyb20gXCIuL3N0YXR1c0NvZGVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNvbnRlbnRUeXBlcyB9IGZyb20gXCIuL2NvbnRlbnRUeXBlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdGF0dXNNZXNzYWdlcyB9IGZyb20gXCIuL3N0YXR1c01lc3NhZ2VzXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGF0aFV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9wYXRoXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGh0dHBVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvaHR0cFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzdHJpbmdVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHZlcnNpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyc2lvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB0ZW1wbGF0ZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy90ZW1wbGF0ZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXN5bmNocm9ub3VzXCI7XG5cblxuXG5leHBvcnQgeyBkZWZhdWx0IGFzIHNoZWxsVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3NoZWxsXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlcXVlc3RVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvcmVxdWVzdFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2dnaW5nVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2xvZ2dpbmdcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcGFja2FnZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9wYWNrYWdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVTeXN0ZW1VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb25maWd1cmF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbmZpZ3VyYXRpb25cIjtcbiJdLCJuYW1lcyI6WyJhcnJheVV0aWxpdGllcyIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImNoYXJhY3RlcnMiLCJjb25maWd1cmF0aW9uVXRpbGl0aWVzIiwiY29udGVudFR5cGVzIiwiZW5jb2RpbmdzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImhlYWRlcnMiLCJodHRwVXRpbGl0aWVzIiwia2V5Q29kZXMiLCJsZXZlbHMiLCJsb2dnaW5nVXRpbGl0aWVzIiwibWV0aG9kcyIsInBhY2thZ2VVdGlsaXRpZXMiLCJwYXRoVXRpbGl0aWVzIiwicmVxdWVzdFV0aWxpdGllcyIsInNoZWxsVXRpbGl0aWVzIiwic3RhdHVzQ29kZXMiLCJzdGF0dXNNZXNzYWdlcyIsInN0cmluZ1V0aWxpdGllcyIsInRlbXBsYXRlVXRpbGl0aWVzIiwidmVyc2lvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBY29CQSxjQUFjO2VBQWRBLGNBQWM7O0lBSWRDLHFCQUFxQjtlQUFyQkEscUJBQXFCOztJQVhyQkMsVUFBVTtlQUFWQSxtQkFBVTs7SUFvQlZDLHNCQUFzQjtlQUF0QkEsc0JBQXNCOztJQWxCdEJDLFlBQVk7ZUFBWkEscUJBQVk7O0lBSFpDLFNBQVM7ZUFBVEEsa0JBQVM7O0lBb0JUQyxtQkFBbUI7ZUFBbkJBLG1CQUFtQjs7SUF0Qm5CQyxPQUFPO2VBQVBBLGdCQUFPOztJQVNQQyxhQUFhO2VBQWJBLGFBQWE7O0lBUmJDLFFBQVE7ZUFBUkEsaUJBQVE7O0lBSFJDLE1BQU07ZUFBTkEsZUFBTTs7SUFzQk5DLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOztJQXJCaEJDLE9BQU87ZUFBUEEsZ0JBQU87O0lBc0JQQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7SUFiaEJDLGFBQWE7ZUFBYkEsYUFBYTs7SUFXYkMsZ0JBQWdCO2VBQWhCQSxnQkFBZ0I7O0lBRGhCQyxjQUFjO2VBQWRBLGNBQWM7O0lBZGRDLFdBQVc7ZUFBWEEsb0JBQVc7O0lBRVhDLGNBQWM7ZUFBZEEsdUJBQWM7O0lBS2RDLGVBQWU7ZUFBZkEsZUFBZTs7SUFFZkMsaUJBQWlCO2VBQWpCQSxpQkFBaUI7O0lBRGpCQyxnQkFBZ0I7ZUFBaEJBLGdCQUFnQjs7OzZEQWRGOzhEQUNDOzhEQUNBOytEQUNDO2dFQUNDO2lFQUNDO2tFQUNDO21FQUNDO3FFQUNFOzJEQUVEOzJEQUNBOzREQUNDOzZEQUNDOzhEQUNDOytEQUNDO21FQUNJOzREQUlQOzhEQUNFOzhEQUNBOzhEQUNBO2lFQUNHO29FQUNHIn0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
default: function() {
|
|
13
|
+
return _default;
|
|
14
|
+
},
|
|
15
|
+
strcmp: function() {
|
|
16
|
+
return strcmp;
|
|
17
|
+
},
|
|
18
|
+
strlen: function() {
|
|
19
|
+
return strlen;
|
|
20
|
+
},
|
|
21
|
+
substring: function() {
|
|
22
|
+
return substring;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var _constants = require("../constants");
|
|
26
|
+
function _array_like_to_array(arr, len) {
|
|
27
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
28
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
29
|
+
return arr2;
|
|
30
|
+
}
|
|
31
|
+
function _array_without_holes(arr) {
|
|
32
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
33
|
+
}
|
|
34
|
+
function _iterable_to_array(iter) {
|
|
35
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
36
|
+
}
|
|
37
|
+
function _non_iterable_spread() {
|
|
38
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
39
|
+
}
|
|
40
|
+
function _to_consumable_array(arr) {
|
|
41
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
42
|
+
}
|
|
43
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
44
|
+
if (!o) return;
|
|
45
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
46
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
47
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
48
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
49
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
50
|
+
}
|
|
51
|
+
function strcmp(stringA, stringB) {
|
|
52
|
+
var difference;
|
|
53
|
+
var codePointA = stringA === _constants.EMPTY_STRING ? 0 : stringA.codePointAt(0), codePointB = stringB === _constants.EMPTY_STRING ? 0 : stringB.codePointAt(0);
|
|
54
|
+
difference = codePointB - codePointA;
|
|
55
|
+
if (difference === 0 && codePointA !== 0 && codePointB !== 0) {
|
|
56
|
+
stringA = substring(stringA, 1); ///
|
|
57
|
+
stringB = substring(stringB, 1); ///
|
|
58
|
+
difference = strcmp(stringA, stringB);
|
|
59
|
+
}
|
|
60
|
+
return difference;
|
|
61
|
+
}
|
|
62
|
+
function strlen(string) {
|
|
63
|
+
return _to_consumable_array(string).length;
|
|
64
|
+
} ///
|
|
65
|
+
function substring(string, start, end) {
|
|
66
|
+
return _to_consumable_array(string).slice(start, end).join("");
|
|
67
|
+
} ///
|
|
68
|
+
var _default = {
|
|
69
|
+
strcmp: strcmp,
|
|
70
|
+
strlen: strlen,
|
|
71
|
+
substring: substring
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJjbXAoc3RyaW5nQSwgc3RyaW5nQikge1xuICBsZXQgZGlmZmVyZW5jZTtcblxuICBjb25zdCBjb2RlUG9pbnRBID0gKHN0cmluZ0EgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICAgICAgICAwIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdBLmNvZGVQb2ludEF0KDApLFxuICAgICAgICBjb2RlUG9pbnRCID0gKHN0cmluZ0IgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICAgICAgICAwIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdCLmNvZGVQb2ludEF0KDApO1xuXG4gIGRpZmZlcmVuY2UgPSBjb2RlUG9pbnRCIC0gY29kZVBvaW50QTtcblxuICBpZiAoKGRpZmZlcmVuY2UgPT09IDApICYmIChjb2RlUG9pbnRBICE9PTApICYmIChjb2RlUG9pbnRCICE9PTApKSB7XG4gICAgc3RyaW5nQSA9IHN1YnN0cmluZyhzdHJpbmdBLCAxKTsgLy8vXG5cbiAgICBzdHJpbmdCID0gc3Vic3RyaW5nKHN0cmluZ0IsIDEpOyAvLy9cblxuICAgIGRpZmZlcmVuY2UgPSBzdHJjbXAoc3RyaW5nQSwgc3RyaW5nQik7XG4gIH1cblxuICByZXR1cm4gZGlmZmVyZW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmxlbihzdHJpbmcpIHsgcmV0dXJuIFsuLi5zdHJpbmddLmxlbmd0aDsgfSAvLy9cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0cmluZyhzdHJpbmcsIHN0YXJ0LCBlbmQpIHsgcmV0dXJuIFsuLi5zdHJpbmddLnNsaWNlKHN0YXJ0LCBlbmQpLmpvaW4oXCJcIik7IH0gIC8vL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHN0cmNtcCxcbiAgc3RybGVuLFxuICBzdWJzdHJpbmdcbn07XG4iXSwibmFtZXMiOlsic3RyY21wIiwic3RybGVuIiwic3Vic3RyaW5nIiwic3RyaW5nQSIsInN0cmluZ0IiLCJkaWZmZXJlbmNlIiwiY29kZVBvaW50QSIsIkVNUFRZX1NUUklORyIsImNvZGVQb2ludEF0IiwiY29kZVBvaW50QiIsInN0cmluZyIsImxlbmd0aCIsInN0YXJ0IiwiZW5kIiwic2xpY2UiLCJqb2luIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUErQkEsT0FJRTtlQUpGOztJQTNCZ0JBLE1BQU07ZUFBTkE7O0lBdUJBQyxNQUFNO2VBQU5BOztJQUVBQyxTQUFTO2VBQVRBOzs7eUJBM0JhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0QixTQUFTRixPQUFPRyxPQUFPLEVBQUVDLE9BQU87SUFDckMsSUFBSUM7SUFFSixJQUFNQyxhQUFhLEFBQUNILFlBQVlJLHVCQUFZLEdBQ3ZCLElBQ0VKLFFBQVFLLFdBQVcsQ0FBQyxJQUNyQ0MsYUFBYSxBQUFDTCxZQUFZRyx1QkFBWSxHQUN2QixJQUNFSCxRQUFRSSxXQUFXLENBQUM7SUFFM0NILGFBQWFJLGFBQWFIO0lBRTFCLElBQUksQUFBQ0QsZUFBZSxLQUFPQyxlQUFjLEtBQU9HLGVBQWMsR0FBSTtRQUNoRU4sVUFBVUQsVUFBVUMsU0FBUyxJQUFJLEdBQUc7UUFFcENDLFVBQVVGLFVBQVVFLFNBQVMsSUFBSSxHQUFHO1FBRXBDQyxhQUFhTCxPQUFPRyxTQUFTQztJQUMvQjtJQUVBLE9BQU9DO0FBQ1Q7QUFFTyxTQUFTSixPQUFPUyxNQUFNO0lBQUksT0FBTyxBQUFDLHFCQUFHQSxRQUFRQyxNQUFNO0FBQUUsRUFBRSxHQUFHO0FBRTFELFNBQVNULFVBQVVRLE1BQU0sRUFBRUUsS0FBSyxFQUFFQyxHQUFHO0lBQUksT0FBTyxBQUFDLHFCQUFHSCxRQUFRSSxLQUFLLENBQUNGLE9BQU9DLEtBQUtFLElBQUksQ0FBQztBQUFLLEVBQUcsR0FBRztJQUVyRyxXQUFlO0lBQ2JmLFFBQUFBO0lBQ0FDLFFBQUFBO0lBQ0FDLFdBQUFBO0FBQ0YifQ==
|
package/package.json
CHANGED
package/src/browser.js
CHANGED
|
@@ -10,10 +10,12 @@ export { default as statusCodes } from "./statusCodes";
|
|
|
10
10
|
export { default as contentTypes } from "./contentTypes";
|
|
11
11
|
export { default as statusMessages } from "./statusMessages";
|
|
12
12
|
|
|
13
|
-
export { default as ajaxUtilities } from "./utilities/ajax";
|
|
14
|
-
|
|
15
13
|
export { default as pathUtilities } from "./utilities/path";
|
|
16
14
|
export { default as httpUtilities } from "./utilities/http";
|
|
17
15
|
export { default as arrayUtilities } from "./utilities/array";
|
|
16
|
+
export { default as stringUtilities } from "./utilities/string";
|
|
18
17
|
export { default as versionUtilities } from "./utilities/version";
|
|
18
|
+
export { default as templateUtilities } from "./utilities/template";
|
|
19
19
|
export { default as asynchronousUtilities } from "./utilities/asynchronous";
|
|
20
|
+
|
|
21
|
+
export { default as ajaxUtilities } from "./utilities/ajax";
|
package/src/main.js
CHANGED
|
@@ -13,13 +13,16 @@ export { default as statusMessages } from "./statusMessages";
|
|
|
13
13
|
export { default as pathUtilities } from "./utilities/path";
|
|
14
14
|
export { default as httpUtilities } from "./utilities/http";
|
|
15
15
|
export { default as arrayUtilities } from "./utilities/array";
|
|
16
|
+
export { default as stringUtilities } from "./utilities/string";
|
|
16
17
|
export { default as versionUtilities } from "./utilities/version";
|
|
17
|
-
export { default as
|
|
18
|
+
export { default as templateUtilities } from "./utilities/template";
|
|
18
19
|
export { default as asynchronousUtilities } from "./utilities/asynchronous";
|
|
19
20
|
|
|
21
|
+
|
|
22
|
+
|
|
20
23
|
export { default as shellUtilities } from "./utilities/shell";
|
|
21
24
|
export { default as requestUtilities } from "./utilities/request";
|
|
22
25
|
export { default as loggingUtilities } from "./utilities/logging";
|
|
23
|
-
export { default as
|
|
26
|
+
export { default as packageUtilities } from "./utilities/package";
|
|
24
27
|
export { default as fileSystemUtilities } from "./utilities/fileSystem";
|
|
25
28
|
export { default as configurationUtilities } from "./utilities/configuration";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { EMPTY_STRING } from "../constants";
|
|
4
|
+
|
|
5
|
+
export function strcmp(stringA, stringB) {
|
|
6
|
+
let difference;
|
|
7
|
+
|
|
8
|
+
const codePointA = (stringA === EMPTY_STRING) ?
|
|
9
|
+
0 :
|
|
10
|
+
stringA.codePointAt(0),
|
|
11
|
+
codePointB = (stringB === EMPTY_STRING) ?
|
|
12
|
+
0 :
|
|
13
|
+
stringB.codePointAt(0);
|
|
14
|
+
|
|
15
|
+
difference = codePointB - codePointA;
|
|
16
|
+
|
|
17
|
+
if ((difference === 0) && (codePointA !==0) && (codePointB !==0)) {
|
|
18
|
+
stringA = substring(stringA, 1); ///
|
|
19
|
+
|
|
20
|
+
stringB = substring(stringB, 1); ///
|
|
21
|
+
|
|
22
|
+
difference = strcmp(stringA, stringB);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return difference;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function strlen(string) { return [...string].length; } ///
|
|
29
|
+
|
|
30
|
+
export function substring(string, start, end) { return [...string].slice(start, end).join(""); } ///
|
|
31
|
+
|
|
32
|
+
export default {
|
|
33
|
+
strcmp,
|
|
34
|
+
strlen,
|
|
35
|
+
substring
|
|
36
|
+
};
|