@adviser/cement 0.2.12 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WebSysAbstraction
3
- } from "./chunk-BEOYQN5I.js";
3
+ } from "./chunk-XJF7FQUN.js";
4
4
  import {
5
5
  BrowserEnvActions,
6
6
  EnvImpl,
@@ -17,7 +17,7 @@ import {
17
17
  TimeMode,
18
18
  TimeUnits,
19
19
  envFactory
20
- } from "./chunk-LK3TUJH3.js";
20
+ } from "./chunk-O4F5AURC.js";
21
21
  import {
22
22
  __spreadValues,
23
23
  __yieldStar
@@ -104,6 +104,200 @@ function IsLogger(obj) {
104
104
  ].map((fn) => typeof obj[fn] === "function").reduce((a, b) => a && b, true);
105
105
  }
106
106
 
107
+ // src/uri.ts
108
+ function falsy2undef(value) {
109
+ return value === void 0 || value === null ? void 0 : value;
110
+ }
111
+ function ensureURLWithDefaultProto(url, defaultProtocol) {
112
+ if (!url) {
113
+ return new URL(`${defaultProtocol}//`);
114
+ }
115
+ if (typeof url === "string") {
116
+ try {
117
+ return new URL(url);
118
+ } catch (e) {
119
+ return new URL(`${defaultProtocol}//${url}`);
120
+ }
121
+ } else {
122
+ return url;
123
+ }
124
+ }
125
+ function isURL(value) {
126
+ return value instanceof URL || !!value && typeof value.searchParams === "object" && typeof value.searchParams.sort === "function" && typeof value.hash === "string";
127
+ }
128
+ function from(fac, strURLUri, defaultProtocol) {
129
+ switch (typeof falsy2undef(strURLUri)) {
130
+ case "undefined":
131
+ return fac(new URL(`${defaultProtocol}//`));
132
+ case "string":
133
+ return fac(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
134
+ case "object":
135
+ if (BuildURI.is(strURLUri)) {
136
+ return fac(new URL(strURLUri._url.toString()));
137
+ } else if (URI.is(strURLUri)) {
138
+ return fac(new URL(strURLUri._url.toString()));
139
+ } else if (isURL(strURLUri)) {
140
+ return fac(new URL(strURLUri.toString()));
141
+ }
142
+ throw new Error(`unknown object type: ${strURLUri}`);
143
+ default:
144
+ throw new Error(`Invalid argument: ${typeof strURLUri}`);
145
+ }
146
+ }
147
+ var BuildURI = class _BuildURI {
148
+ // pathname needs this
149
+ constructor(url) {
150
+ this._url = url;
151
+ }
152
+ static is(value) {
153
+ return value instanceof _BuildURI || !!value && typeof value.delParam === "function" && typeof value.setParam === "function";
154
+ }
155
+ static from(strURLUri, defaultProtocol = "file:") {
156
+ return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
157
+ }
158
+ hostname(h) {
159
+ this._url.hostname = h;
160
+ return this;
161
+ }
162
+ password(p) {
163
+ this._url.password = p;
164
+ return this;
165
+ }
166
+ port(p) {
167
+ this._url.port = p;
168
+ return this;
169
+ }
170
+ username(u) {
171
+ this._url.username = u;
172
+ return this;
173
+ }
174
+ search(s) {
175
+ this._url.search = s;
176
+ return this;
177
+ }
178
+ protocol(p) {
179
+ if (!p.endsWith(":")) {
180
+ p = `${p}:`;
181
+ }
182
+ const mySrc = this._url.toString();
183
+ const myDst = mySrc.replace(new RegExp(`^${this._url.protocol}`), `${p}`);
184
+ this._url = new URL(myDst);
185
+ return this;
186
+ }
187
+ pathname(p) {
188
+ const myp = this.URI().pathname;
189
+ const mySrc = this._url.toString();
190
+ const myDst = mySrc.replace(new RegExp(`^${this._url.protocol}//${myp}`), `${this._url.protocol}//${p}`);
191
+ this._url = new URL(myDst);
192
+ return this;
193
+ }
194
+ hash(h) {
195
+ this._url.hash = h;
196
+ return this;
197
+ }
198
+ host(h) {
199
+ this._url.host = h;
200
+ return this;
201
+ }
202
+ delParam(key) {
203
+ this._url.searchParams.delete(key);
204
+ return this;
205
+ }
206
+ defParam(key, str) {
207
+ if (!this._url.searchParams.has(key)) {
208
+ this._url.searchParams.set(key, str);
209
+ }
210
+ return this;
211
+ }
212
+ setParam(key, str) {
213
+ this._url.searchParams.set(key, str);
214
+ return this;
215
+ }
216
+ toString() {
217
+ this._url.searchParams.sort();
218
+ return this._url.toString();
219
+ }
220
+ URI() {
221
+ return URI.from(this._url);
222
+ }
223
+ };
224
+ var URI = class _URI {
225
+ // if no protocol is provided, default to file:
226
+ static merge(into, from2, defaultProtocol = "file:") {
227
+ const intoUrl = BuildURI.from(into, defaultProtocol);
228
+ const fromUrl = _URI.from(from2, defaultProtocol);
229
+ intoUrl.protocol(fromUrl.protocol);
230
+ if (fromUrl.pathname.length > 0) {
231
+ intoUrl.pathname(fromUrl.pathname);
232
+ }
233
+ for (const [key, value] of fromUrl.getParams) {
234
+ intoUrl.setParam(key, value);
235
+ }
236
+ return intoUrl.URI();
237
+ }
238
+ static is(value) {
239
+ return value instanceof _URI || !!value && typeof value.asURL === "function" && typeof value.getParam === "function" && typeof value.hasParam === "function";
240
+ }
241
+ // if no protocol is provided, default to file:
242
+ static from(strURLUri, defaultProtocol = "file:") {
243
+ return from((url) => new _URI(url), strURLUri, defaultProtocol);
244
+ }
245
+ constructor(url) {
246
+ this._url = url;
247
+ }
248
+ build() {
249
+ return BuildURI.from(this.asURL());
250
+ }
251
+ get hostname() {
252
+ return this._url.hostname;
253
+ }
254
+ get password() {
255
+ return this._url.password;
256
+ }
257
+ get port() {
258
+ return this._url.port;
259
+ }
260
+ get username() {
261
+ return this._url.username;
262
+ }
263
+ get search() {
264
+ return this._url.search;
265
+ }
266
+ get protocol() {
267
+ return this._url.protocol;
268
+ }
269
+ get pathname() {
270
+ return this._url.toString().replace(/^.*:\/\//, "").replace(/\?.*$/, "");
271
+ }
272
+ get hash() {
273
+ return this._url.hash;
274
+ }
275
+ get host() {
276
+ return this._url.host;
277
+ }
278
+ get getParams() {
279
+ return this._url.searchParams.entries();
280
+ }
281
+ hasParam(key) {
282
+ return this._url.searchParams.has(key);
283
+ }
284
+ getParam(key) {
285
+ return falsy2undef(this._url.searchParams.get(key));
286
+ }
287
+ clone() {
288
+ return new _URI(this.asURL());
289
+ }
290
+ asURL() {
291
+ const url = new URL(this._url.toString());
292
+ url.searchParams.sort();
293
+ return url;
294
+ }
295
+ toString() {
296
+ this._url.searchParams.sort();
297
+ return this._url.toString();
298
+ }
299
+ };
300
+
107
301
  // src/logger_impl.ts
108
302
  var encoder = new TextEncoder();
109
303
  var LevelHandlerImpl = class {
@@ -361,7 +555,7 @@ var LoggerImpl = class _LoggerImpl {
361
555
  return this;
362
556
  }
363
557
  Url(url, key = "url") {
364
- this.Ref(key, () => url.toString());
558
+ this.Ref(key, () => URI.from(url).toString());
365
559
  return this;
366
560
  }
367
561
  Str(key, value) {
@@ -775,196 +969,17 @@ function isSet(value, ref = globalThis) {
775
969
  return false;
776
970
  }
777
971
  function runtimeFn() {
778
- const isNodeIsh = isSet("process.versions.node");
779
- const isDeno = isSet("Deno");
972
+ const isReactNative = isSet("navigator.product") && globalThis.navigator.product === "ReactNative";
973
+ const isNodeIsh = isSet("process.versions.node") && !isReactNative;
974
+ const isDeno = isSet("Deno") && !isReactNative;
780
975
  return {
781
976
  isNodeIsh,
782
- isBrowser: !(isNodeIsh || isDeno),
977
+ isBrowser: !(isNodeIsh || isDeno) && !isReactNative,
783
978
  isDeno,
784
- isReactNative: false
979
+ isReactNative
785
980
  };
786
981
  }
787
982
 
788
- // src/uri.ts
789
- function falsy2undef(value) {
790
- return value === void 0 || value === null ? void 0 : value;
791
- }
792
- function ensureURLWithDefaultProto(url, defaultProtocol) {
793
- if (!url) {
794
- return new URL(`${defaultProtocol}//`);
795
- }
796
- if (typeof url === "string") {
797
- try {
798
- return new URL(url);
799
- } catch (e) {
800
- return new URL(`${defaultProtocol}//${url}`);
801
- }
802
- } else {
803
- return url;
804
- }
805
- }
806
- function isURL(value) {
807
- return value instanceof URL || !!value && typeof value.searchParams === "object" && typeof value.searchParams.sort === "function" && typeof value.hash === "string";
808
- }
809
- function from(fac, strURLUri, defaultProtocol) {
810
- switch (typeof falsy2undef(strURLUri)) {
811
- case "undefined":
812
- return fac(new URL(`${defaultProtocol}//`));
813
- case "string":
814
- return fac(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
815
- case "object":
816
- if (BuildURI.is(strURLUri)) {
817
- return fac(new URL(strURLUri._url.toString()));
818
- } else if (URI.is(strURLUri)) {
819
- return fac(new URL(strURLUri._url.toString()));
820
- } else if (isURL(strURLUri)) {
821
- return fac(new URL(strURLUri.toString()));
822
- }
823
- throw new Error(`unknown object type: ${strURLUri}`);
824
- default:
825
- throw new Error(`Invalid argument: ${typeof strURLUri}`);
826
- }
827
- }
828
- var BuildURI = class _BuildURI {
829
- constructor(url) {
830
- this._url = url;
831
- }
832
- static is(value) {
833
- return value instanceof _BuildURI || !!value && typeof value.delParam === "function" && typeof value.setParam === "function";
834
- }
835
- static from(strURLUri, defaultProtocol = "file:") {
836
- return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
837
- }
838
- hostname(h) {
839
- this._url.hostname = h;
840
- return this;
841
- }
842
- password(p) {
843
- this._url.password = p;
844
- return this;
845
- }
846
- port(p) {
847
- this._url.port = p;
848
- return this;
849
- }
850
- username(u) {
851
- this._url.username = u;
852
- return this;
853
- }
854
- search(s) {
855
- this._url.search = s;
856
- return this;
857
- }
858
- protocol(p) {
859
- this._url.protocol = p;
860
- return this;
861
- }
862
- pathname(p) {
863
- this._url.pathname = p;
864
- return this;
865
- }
866
- hash(h) {
867
- this._url.hash = h;
868
- return this;
869
- }
870
- host(h) {
871
- this._url.host = h;
872
- return this;
873
- }
874
- delParam(key) {
875
- this._url.searchParams.delete(key);
876
- return this;
877
- }
878
- defParam(key, str) {
879
- if (!this._url.searchParams.has(key)) {
880
- this._url.searchParams.set(key, str);
881
- }
882
- return this;
883
- }
884
- setParam(key, str) {
885
- this._url.searchParams.set(key, str);
886
- return this;
887
- }
888
- toString() {
889
- this._url.searchParams.sort();
890
- return this._url.toString();
891
- }
892
- URI() {
893
- return URI.from(this._url);
894
- }
895
- };
896
- var URI = class _URI {
897
- // if no protocol is provided, default to file:
898
- static merge(into, from2, defaultProtocol = "file:") {
899
- const intoUrl = _URI.from(into, defaultProtocol);
900
- const fromUrl = _URI.from(from2, defaultProtocol);
901
- for (const [key, value] of fromUrl._url.searchParams) {
902
- if (!intoUrl._url.searchParams.has(key)) {
903
- intoUrl._url.searchParams.set(key, value);
904
- }
905
- }
906
- return intoUrl;
907
- }
908
- static is(value) {
909
- return value instanceof _URI || !!value && typeof value.asURL === "function" && typeof value.getParam === "function" && typeof value.hasParam === "function";
910
- }
911
- // if no protocol is provided, default to file:
912
- static from(strURLUri, defaultProtocol = "file:") {
913
- return from((url) => new _URI(url), strURLUri, defaultProtocol);
914
- }
915
- constructor(url) {
916
- this._url = url;
917
- }
918
- build() {
919
- return BuildURI.from(this.asURL());
920
- }
921
- get hostname() {
922
- return this._url.hostname;
923
- }
924
- get password() {
925
- return this._url.password;
926
- }
927
- get port() {
928
- return this._url.port;
929
- }
930
- get username() {
931
- return this._url.username;
932
- }
933
- get search() {
934
- return this._url.search;
935
- }
936
- get protocol() {
937
- return this._url.protocol;
938
- }
939
- get pathname() {
940
- return this._url.toString().replace(/^.*:\/\//, "").replace(/\?.*$/, "");
941
- }
942
- get hash() {
943
- return this._url.hash;
944
- }
945
- get host() {
946
- return this._url.host;
947
- }
948
- hasParam(key) {
949
- return this._url.searchParams.has(key);
950
- }
951
- getParam(key) {
952
- return falsy2undef(this._url.searchParams.get(key));
953
- }
954
- clone() {
955
- return new _URI(this.asURL());
956
- }
957
- asURL() {
958
- const url = new URL(this._url.toString());
959
- url.searchParams.sort();
960
- return url;
961
- }
962
- toString() {
963
- this._url.searchParams.sort();
964
- return this._url.toString();
965
- }
966
- };
967
-
968
983
  // src/crypto.ts
969
984
  function randomBytes(size) {
970
985
  const bytes = new Uint8Array(size);