cloesce 0.0.5-unstable.0 → 0.0.5-unstable.2
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/dist/ast.d.ts +80 -100
- package/dist/ast.js +12 -12
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +331 -368
- package/dist/extractor/err.d.ts +26 -26
- package/dist/extractor/err.js +100 -129
- package/dist/extractor/extract.d.ts +17 -60
- package/dist/extractor/extract.js +764 -826
- package/dist/generator.wasm +0 -0
- package/dist/orm.wasm +0 -0
- package/dist/router/crud.d.ts +1 -1
- package/dist/router/crud.js +43 -42
- package/dist/router/router.d.ts +98 -135
- package/dist/router/router.js +381 -424
- package/dist/router/validator.d.ts +6 -11
- package/dist/router/validator.js +144 -158
- package/dist/router/wasm.d.ts +22 -56
- package/dist/router/wasm.js +79 -91
- package/dist/ui/backend.d.ts +181 -214
- package/dist/ui/backend.js +245 -258
- package/dist/ui/client.d.ts +1 -1
- package/dist/ui/common.d.ts +31 -48
- package/dist/ui/common.d.ts.map +1 -1
- package/dist/ui/common.js +159 -178
- package/package.json +2 -2
package/dist/ui/common.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { MediaType } from "../ast.js";
|
|
2
|
-
type DeepPartialInner<T> = T extends (infer U)[]
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
? {
|
|
6
|
-
[K in keyof T]?: DeepPartialInner<T[K]>;
|
|
7
|
-
}
|
|
8
|
-
: T | (null extends T ? null : never);
|
|
2
|
+
type DeepPartialInner<T> = T extends (infer U)[] ? DeepPartialInner<U>[] : T extends object ? {
|
|
3
|
+
[K in keyof T]?: DeepPartialInner<T[K]>;
|
|
4
|
+
} : T | (null extends T ? null : never);
|
|
9
5
|
/**
|
|
10
6
|
* Recursively makes all properties of a type optional — including nested objects and arrays.
|
|
11
7
|
*
|
|
@@ -50,30 +46,27 @@ type DeepPartialInner<T> = T extends (infer U)[]
|
|
|
50
46
|
* ```
|
|
51
47
|
*/
|
|
52
48
|
export type DeepPartial<T> = DeepPartialInner<T> & {
|
|
53
|
-
|
|
49
|
+
__brand?: "Partial";
|
|
54
50
|
};
|
|
55
51
|
export declare class Either<L, R> {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
52
|
+
private readonly inner;
|
|
53
|
+
private constructor();
|
|
54
|
+
get value(): L | R;
|
|
55
|
+
static left<R>(): Either<void, R>;
|
|
56
|
+
static left<L, R = never>(value: L): Either<L, R>;
|
|
57
|
+
static right<R, L = never>(value: R): Either<L, R>;
|
|
58
|
+
isLeft(): this is Either<L, never>;
|
|
59
|
+
isRight(): this is Either<never, R>;
|
|
60
|
+
unwrap(): R;
|
|
61
|
+
unwrapLeft(): L;
|
|
62
|
+
map<B>(fn: (val: R) => B): Either<L, B>;
|
|
63
|
+
mapLeft<B>(fn: (val: L) => B): Either<B, R>;
|
|
68
64
|
}
|
|
69
65
|
/**
|
|
70
66
|
* Given a media type and some data, converts to a proper
|
|
71
67
|
* `RequestInit` body,
|
|
72
68
|
*/
|
|
73
|
-
export declare function requestBody(
|
|
74
|
-
mediaType: MediaType,
|
|
75
|
-
data: any | string | undefined,
|
|
76
|
-
): undefined | string | FormData;
|
|
69
|
+
export declare function requestBody(mediaType: MediaType, data: any | string | undefined): undefined | string | FormData;
|
|
77
70
|
/**
|
|
78
71
|
* The result of a Workers endpoint.
|
|
79
72
|
*
|
|
@@ -87,34 +80,24 @@ export declare function requestBody(
|
|
|
87
80
|
*
|
|
88
81
|
*/
|
|
89
82
|
export declare class HttpResult<T = unknown> {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
ok:
|
|
98
|
-
status: number,
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
mediaType?: MediaType | undefined,
|
|
103
|
-
);
|
|
104
|
-
static ok<T>(status: number, data?: T, init?: HeadersInit): HttpResult;
|
|
105
|
-
static fail(
|
|
106
|
-
status: number,
|
|
107
|
-
message?: string,
|
|
108
|
-
init?: HeadersInit,
|
|
109
|
-
): HttpResult<never>;
|
|
110
|
-
toResponse(): Response;
|
|
111
|
-
setMediaType(mediaType: MediaType): this;
|
|
83
|
+
ok: boolean;
|
|
84
|
+
status: number;
|
|
85
|
+
headers: Headers;
|
|
86
|
+
data?: T | undefined;
|
|
87
|
+
message?: string | undefined;
|
|
88
|
+
mediaType?: MediaType | undefined;
|
|
89
|
+
constructor(ok: boolean, status: number, headers: Headers, data?: T | undefined, message?: string | undefined, mediaType?: MediaType | undefined);
|
|
90
|
+
static ok<T>(status: number, data?: T, init?: HeadersInit): HttpResult;
|
|
91
|
+
static fail(status: number, message?: string, init?: HeadersInit): HttpResult<never>;
|
|
92
|
+
toResponse(): Response;
|
|
93
|
+
setMediaType(mediaType: MediaType): this;
|
|
94
|
+
static fromResponse(response: Response, mediaType: MediaType, ctor?: any, array?: boolean): Promise<HttpResult<any>>;
|
|
112
95
|
}
|
|
113
96
|
export type Stream = ReadableStream<Uint8Array>;
|
|
114
97
|
export declare function b64ToU8(b64: string): Uint8Array;
|
|
115
98
|
export declare function u8ToB64(u8: Uint8Array): string;
|
|
116
99
|
export type KeysOfType<T, U> = {
|
|
117
|
-
|
|
100
|
+
[K in keyof T]: T[K] extends U ? (K extends string ? K : never) : never;
|
|
118
101
|
}[keyof T];
|
|
119
102
|
export {};
|
|
120
|
-
//# sourceMappingURL=common.d.ts.map
|
|
103
|
+
//# sourceMappingURL=common.d.ts.map
|
package/dist/ui/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/ui/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC5C,gBAAgB,CAAC,CAAC,CAAC,EAAE,GACrB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3C,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3E,qBAAa,MAAM,CAAC,CAAC,EAAE,CAAC;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IADxB,OAAO;IAIP,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAEjB;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAMjD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAIlD,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IAIlC,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAInC,MAAM,IAAI,CAAC;IAOX,UAAU,IAAI,CAAC;IAOf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAMvC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;CAK5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,GAC7B,SAAS,GAAG,MAAM,GAAG,QAAQ,CAa/B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU,CAAC,CAAC,GAAG,OAAO;IAExB,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,IAAI,CAAC,EAAE,CAAC;IACR,OAAO,CAAC,EAAE,MAAM;IAChB,SAAS,CAAC,EAAE,SAAS;gBALrB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,CAAC,YAAA,EACR,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,SAAS,CAAC,EAAE,SAAS,YAAA;IAG9B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU;IAKtE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW;IAKhE,UAAU,IAAI,QAAQ;IA0BtB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/ui/common.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/common.js
CHANGED
|
@@ -1,64 +1,62 @@
|
|
|
1
1
|
import { MediaType } from "../ast.js";
|
|
2
2
|
export class Either {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
3
|
+
inner;
|
|
4
|
+
constructor(inner) {
|
|
5
|
+
this.inner = inner;
|
|
6
|
+
}
|
|
7
|
+
get value() {
|
|
8
|
+
return this.inner.ok ? this.inner.right : this.inner.left;
|
|
9
|
+
}
|
|
10
|
+
static left(value) {
|
|
11
|
+
return new Either({ ok: false, left: value });
|
|
12
|
+
}
|
|
13
|
+
static right(value) {
|
|
14
|
+
return new Either({ ok: true, right: value });
|
|
15
|
+
}
|
|
16
|
+
isLeft() {
|
|
17
|
+
return !this.inner.ok;
|
|
18
|
+
}
|
|
19
|
+
isRight() {
|
|
20
|
+
return this.inner.ok;
|
|
21
|
+
}
|
|
22
|
+
unwrap() {
|
|
23
|
+
if (!this.inner.ok) {
|
|
24
|
+
throw new Error("Tried to unwrap a Left value");
|
|
25
|
+
}
|
|
26
|
+
return this.inner.right;
|
|
27
|
+
}
|
|
28
|
+
unwrapLeft() {
|
|
29
|
+
if (this.inner.ok) {
|
|
30
|
+
throw new Error("Tried to unwrapLeft a Right value");
|
|
31
|
+
}
|
|
32
|
+
return this.inner.left;
|
|
33
|
+
}
|
|
34
|
+
map(fn) {
|
|
35
|
+
return this.inner.ok
|
|
36
|
+
? Either.right(fn(this.inner.right))
|
|
37
|
+
: Either.left(this.inner.left);
|
|
38
|
+
}
|
|
39
|
+
mapLeft(fn) {
|
|
40
|
+
return this.inner.ok
|
|
41
|
+
? Either.right(this.inner.right)
|
|
42
|
+
: Either.left(fn(this.inner.left));
|
|
43
|
+
}
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Given a media type and some data, converts to a proper
|
|
47
47
|
* `RequestInit` body,
|
|
48
48
|
*/
|
|
49
49
|
export function requestBody(mediaType, data) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
}
|
|
50
|
+
switch (mediaType) {
|
|
51
|
+
case MediaType.Json: {
|
|
52
|
+
return JSON.stringify(data ?? {}, (_, v) => v instanceof Uint8Array ? u8ToB64(v) : v);
|
|
53
|
+
}
|
|
54
|
+
case MediaType.Octet: {
|
|
55
|
+
// JSON structure isn't needed; assume the first
|
|
56
|
+
// value is the stream data
|
|
57
|
+
return Object.values(data)[0];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
62
60
|
}
|
|
63
61
|
/**
|
|
64
62
|
* The result of a Workers endpoint.
|
|
@@ -73,138 +71,121 @@ export function requestBody(mediaType, data) {
|
|
|
73
71
|
*
|
|
74
72
|
*/
|
|
75
73
|
export class HttpResult {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}
|
|
117
|
-
return new Response(requestBody(this.mediaType, this.data), {
|
|
118
|
-
status: this.status,
|
|
119
|
-
headers: this.headers,
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
setMediaType(mediaType) {
|
|
123
|
-
this.mediaType = mediaType;
|
|
124
|
-
return this;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* @internal
|
|
128
|
-
* A method utilized by generated client code to create an `HttpResult` from a Cloesce Workers
|
|
129
|
-
* `Response`. Given a ctor, assumes it is a Plain old Object or a Model.
|
|
130
|
-
*
|
|
131
|
-
* All Cloesce objects have a `static fromJson` method which recursively instantiate the object.
|
|
132
|
-
*/
|
|
133
|
-
static async fromResponse(response, mediaType, ctor, array = false) {
|
|
134
|
-
if (response.status >= 400) {
|
|
135
|
-
return new HttpResult(
|
|
136
|
-
false,
|
|
137
|
-
response.status,
|
|
138
|
-
response.headers,
|
|
139
|
-
undefined,
|
|
140
|
-
await response.text(),
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
function instantiate(json, ctor) {
|
|
144
|
-
switch (ctor) {
|
|
145
|
-
case Date: {
|
|
146
|
-
return new Date(json);
|
|
147
|
-
}
|
|
148
|
-
case Uint8Array: {
|
|
149
|
-
return b64ToU8(json);
|
|
150
|
-
}
|
|
151
|
-
case undefined: {
|
|
152
|
-
return json;
|
|
153
|
-
}
|
|
154
|
-
default: {
|
|
155
|
-
return ctor.fromJson(json);
|
|
74
|
+
ok;
|
|
75
|
+
status;
|
|
76
|
+
headers;
|
|
77
|
+
data;
|
|
78
|
+
message;
|
|
79
|
+
mediaType;
|
|
80
|
+
constructor(ok, status, headers, data, message, mediaType) {
|
|
81
|
+
this.ok = ok;
|
|
82
|
+
this.status = status;
|
|
83
|
+
this.headers = headers;
|
|
84
|
+
this.data = data;
|
|
85
|
+
this.message = message;
|
|
86
|
+
this.mediaType = mediaType;
|
|
87
|
+
}
|
|
88
|
+
static ok(status, data, init) {
|
|
89
|
+
const headers = new Headers(init);
|
|
90
|
+
return new HttpResult(true, status, headers, data, undefined);
|
|
91
|
+
}
|
|
92
|
+
static fail(status, message, init) {
|
|
93
|
+
const headers = new Headers(init);
|
|
94
|
+
return new HttpResult(false, status, headers, undefined, message);
|
|
95
|
+
}
|
|
96
|
+
toResponse() {
|
|
97
|
+
switch (this.mediaType) {
|
|
98
|
+
case MediaType.Json: {
|
|
99
|
+
this.headers.set("Content-Type", "application/json");
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
case MediaType.Octet: {
|
|
103
|
+
this.headers.set("Content-Type", "application/octet-stream");
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
case undefined: {
|
|
107
|
+
// Errors are always text.
|
|
108
|
+
this.headers.set("Content-Type", "text/plain");
|
|
109
|
+
return new Response(this.message, {
|
|
110
|
+
status: this.status,
|
|
111
|
+
headers: this.headers,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
156
114
|
}
|
|
157
|
-
|
|
115
|
+
return new Response(requestBody(this.mediaType, this.data), {
|
|
116
|
+
status: this.status,
|
|
117
|
+
headers: this.headers,
|
|
118
|
+
});
|
|
158
119
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
120
|
+
setMediaType(mediaType) {
|
|
121
|
+
this.mediaType = mediaType;
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
static async fromResponse(response, mediaType, ctor, array = false) {
|
|
125
|
+
if (response.status >= 400) {
|
|
126
|
+
return new HttpResult(false, response.status, response.headers, undefined, await response.text());
|
|
127
|
+
}
|
|
128
|
+
function instantiate(json, ctor) {
|
|
129
|
+
switch (ctor) {
|
|
130
|
+
case Date: {
|
|
131
|
+
return new Date(json);
|
|
132
|
+
}
|
|
133
|
+
case Uint8Array: {
|
|
134
|
+
return b64ToU8(json);
|
|
135
|
+
}
|
|
136
|
+
case undefined: {
|
|
137
|
+
return json;
|
|
138
|
+
}
|
|
139
|
+
default: {
|
|
140
|
+
return ctor.fromJson(json);
|
|
141
|
+
}
|
|
166
142
|
}
|
|
167
|
-
} else {
|
|
168
|
-
json = instantiate(json, ctor);
|
|
169
|
-
}
|
|
170
|
-
return json;
|
|
171
143
|
}
|
|
172
|
-
|
|
173
|
-
|
|
144
|
+
async function data() {
|
|
145
|
+
switch (mediaType) {
|
|
146
|
+
case MediaType.Json: {
|
|
147
|
+
let json = await response.json();
|
|
148
|
+
if (array) {
|
|
149
|
+
for (let i = 0; i < json.length; i++) {
|
|
150
|
+
json[i] = instantiate(json[i], ctor);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
json = instantiate(json, ctor);
|
|
155
|
+
}
|
|
156
|
+
return json;
|
|
157
|
+
}
|
|
158
|
+
case MediaType.Octet: {
|
|
159
|
+
return response.body;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
174
162
|
}
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
return new HttpResult(
|
|
178
|
-
true,
|
|
179
|
-
response.status,
|
|
180
|
-
response.headers,
|
|
181
|
-
await data(),
|
|
182
|
-
);
|
|
183
|
-
}
|
|
163
|
+
return new HttpResult(true, response.status, response.headers, await data());
|
|
164
|
+
}
|
|
184
165
|
}
|
|
185
166
|
export function b64ToU8(b64) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
167
|
+
// Prefer Buffer in Node.js environments
|
|
168
|
+
if (typeof Buffer !== "undefined") {
|
|
169
|
+
const buffer = Buffer.from(b64, "base64");
|
|
170
|
+
return new Uint8Array(buffer);
|
|
171
|
+
}
|
|
172
|
+
// Use atob only in browser environments
|
|
173
|
+
const s = atob(b64);
|
|
174
|
+
const u8 = new Uint8Array(s.length);
|
|
175
|
+
for (let i = 0; i < s.length; i++) {
|
|
176
|
+
u8[i] = s.charCodeAt(i);
|
|
177
|
+
}
|
|
178
|
+
return u8;
|
|
198
179
|
}
|
|
199
180
|
export function u8ToB64(u8) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
181
|
+
// Prefer Buffer in Node.js environments
|
|
182
|
+
if (typeof Buffer !== "undefined") {
|
|
183
|
+
return Buffer.from(u8).toString("base64");
|
|
184
|
+
}
|
|
185
|
+
// Use btoa only in browser environments
|
|
186
|
+
let s = "";
|
|
187
|
+
for (let i = 0; i < u8.length; i++) {
|
|
188
|
+
s += String.fromCharCode(u8[i]);
|
|
189
|
+
}
|
|
190
|
+
return btoa(s);
|
|
210
191
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloesce",
|
|
3
|
-
"version": "0.0.5-unstable.
|
|
3
|
+
"version": "0.0.5-unstable.2",
|
|
4
4
|
"description": "A tool to extract and compile TypeScript code into something wrangler can consume and deploy for D1 Databases and Cloudflare Workers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -68,4 +68,4 @@
|
|
|
68
68
|
"orm",
|
|
69
69
|
"cli"
|
|
70
70
|
]
|
|
71
|
-
}
|
|
71
|
+
}
|