@base44/functions-compiler 0.1.2 → 0.1.4
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/lib/src/esbuild/private-data-sources-virtual.js +1 -0
- package/lib/src/esbuild/private-data-sources-virtual.js.map +1 -1
- package/lib/src/private-data-sources/node-net-adapter.ts +24 -21
- package/lib/src/private-data-sources/oracle.ts +34 -0
- package/lib/src/version.d.ts +1 -1
- package/lib/src/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-data-sources-virtual.js","sourceRoot":"","sources":["../../../src/esbuild/private-data-sources-virtual.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"private-data-sources-virtual.js","sourceRoot":"","sources":["../../../src/esbuild/private-data-sources-virtual.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import nodeNet from "node:net";
|
|
|
3
3
|
import { Duplex } from "node:stream";
|
|
4
4
|
|
|
5
5
|
import { isCloudflareTcpSocket } from "./tcp";
|
|
6
|
+
import type { CloudflareTcpSocket } from "./types";
|
|
6
7
|
|
|
7
8
|
interface NodeNetSocket extends Duplex {
|
|
8
9
|
connecting: boolean;
|
|
@@ -95,10 +96,7 @@ export function buildNodeNetSocket(
|
|
|
95
96
|
label: string,
|
|
96
97
|
options: { deferConnectEvent?: boolean } = {},
|
|
97
98
|
): NodeNetSocket {
|
|
98
|
-
|
|
99
|
-
throw new Error(`${label} did not return a readable/writable TCP socket`);
|
|
100
|
-
}
|
|
101
|
-
const cloudflareSocket = socket;
|
|
99
|
+
let cloudflareSocket: CloudflareTcpSocket | undefined;
|
|
102
100
|
|
|
103
101
|
let reader: ReadableStreamDefaultReader<Uint8Array> | null = null;
|
|
104
102
|
let writer: WritableStreamDefaultWriter<Uint8Array> | null = null;
|
|
@@ -107,6 +105,14 @@ export function buildNodeNetSocket(
|
|
|
107
105
|
let readableEnded = false;
|
|
108
106
|
let timeout: ReturnType<typeof setTimeout> | null = null;
|
|
109
107
|
let writeChain = Promise.resolve();
|
|
108
|
+
const socketReady = Promise.resolve(socket).then((resolved) => {
|
|
109
|
+
if (!isCloudflareTcpSocket(resolved)) {
|
|
110
|
+
throw new Error(`${label} did not return a readable/writable TCP socket`);
|
|
111
|
+
}
|
|
112
|
+
cloudflareSocket = resolved;
|
|
113
|
+
if (closed) resolved.close?.();
|
|
114
|
+
return resolved;
|
|
115
|
+
});
|
|
110
116
|
|
|
111
117
|
function clearTimer() {
|
|
112
118
|
if (!timeout) return;
|
|
@@ -143,8 +149,9 @@ export function buildNodeNetSocket(
|
|
|
143
149
|
const bytes = chunk instanceof Uint8Array ? chunk : Buffer.from(chunk);
|
|
144
150
|
writeChain = writeChain
|
|
145
151
|
.then(async () => {
|
|
152
|
+
const connectedSocket = await socketReady;
|
|
146
153
|
if (closed) throw new Error(`${label} connection is closed`);
|
|
147
|
-
const activeWriter = writer ??
|
|
154
|
+
const activeWriter = writer ?? connectedSocket.writable.getWriter();
|
|
148
155
|
writer = activeWriter;
|
|
149
156
|
await activeWriter.write(bytes);
|
|
150
157
|
})
|
|
@@ -157,7 +164,7 @@ export function buildNodeNetSocket(
|
|
|
157
164
|
writeChain
|
|
158
165
|
.then(() => {
|
|
159
166
|
try {
|
|
160
|
-
cloudflareSocket
|
|
167
|
+
cloudflareSocket?.close?.();
|
|
161
168
|
} finally {
|
|
162
169
|
callback();
|
|
163
170
|
}
|
|
@@ -168,7 +175,7 @@ export function buildNodeNetSocket(
|
|
|
168
175
|
closed = true;
|
|
169
176
|
clearTimer();
|
|
170
177
|
try {
|
|
171
|
-
cloudflareSocket
|
|
178
|
+
cloudflareSocket?.close?.();
|
|
172
179
|
} catch {
|
|
173
180
|
// The stream is already being destroyed; surface the original error below.
|
|
174
181
|
}
|
|
@@ -192,7 +199,7 @@ export function buildNodeNetSocket(
|
|
|
192
199
|
};
|
|
193
200
|
|
|
194
201
|
async function readLoop() {
|
|
195
|
-
const activeReader = reader ?? cloudflareSocket
|
|
202
|
+
const activeReader = reader ?? cloudflareSocket!.readable.getReader();
|
|
196
203
|
reader = activeReader;
|
|
197
204
|
try {
|
|
198
205
|
while (!closed) {
|
|
@@ -226,19 +233,15 @@ export function buildNodeNetSocket(
|
|
|
226
233
|
}
|
|
227
234
|
}
|
|
228
235
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
closed = true;
|
|
239
|
-
clearTimer();
|
|
240
|
-
endReadable();
|
|
241
|
-
releaseLocks();
|
|
236
|
+
socketReady.then(async (connectedSocket) => {
|
|
237
|
+
connectedSocket.closed?.finally(() => {
|
|
238
|
+
closed = true;
|
|
239
|
+
clearTimer();
|
|
240
|
+
endReadable();
|
|
241
|
+
releaseLocks();
|
|
242
|
+
}).catch((error) => stream.destroy(error instanceof Error ? error : new Error(String(error))));
|
|
243
|
+
const info = await connectedSocket.opened;
|
|
244
|
+
scheduleConnected(info);
|
|
242
245
|
}).catch((error) => stream.destroy(error instanceof Error ? error : new Error(String(error))));
|
|
243
246
|
return stream;
|
|
244
247
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
|
|
3
|
+
import { privateDataSourceReference } from "./manifest";
|
|
4
|
+
import { installPrivateNodeNetAdapter, registerPrivateNodeNetRoute } from "./node-net-adapter";
|
|
5
|
+
import { buildTcpPrivateDataSource } from "./tcp";
|
|
6
|
+
|
|
7
|
+
export function oracle(name: unknown) {
|
|
8
|
+
installPrivateNodeNetAdapter();
|
|
9
|
+
const entry = privateDataSourceReference(name, "oracle");
|
|
10
|
+
const source = buildTcpPrivateDataSource(entry);
|
|
11
|
+
// A numeric alias avoids Oracle's client-side DNS lookup of private hostnames.
|
|
12
|
+
const hash = createHash("sha256").update(String(entry.name)).digest("hex").slice(0, 28);
|
|
13
|
+
const driverHost = `fd44:${hash.match(/.{4}/g)!.join(":")}`;
|
|
14
|
+
|
|
15
|
+
const extension = {
|
|
16
|
+
oracledbOptions() {
|
|
17
|
+
const serviceName = source.database;
|
|
18
|
+
if (!serviceName || !/^[a-zA-Z0-9_.$#-]+$/.test(serviceName)) {
|
|
19
|
+
throw new Error("Enter an Oracle service name using letters, numbers, underscores, dots, $, #, or hyphens.");
|
|
20
|
+
}
|
|
21
|
+
const port = source.port!;
|
|
22
|
+
registerPrivateNodeNetRoute(driverHost, port, {
|
|
23
|
+
label: `Oracle private data source "${entry.name}"`,
|
|
24
|
+
connect: () => source.connect(),
|
|
25
|
+
});
|
|
26
|
+
return Object.freeze({
|
|
27
|
+
user: source.username,
|
|
28
|
+
password: source.password,
|
|
29
|
+
connectString: `(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=10)(CONNECT_TIMEOUT=15)(RETRY_COUNT=0)(ADDRESS=(PROTOCOL=TCP)(HOST=${driverHost})(PORT=${port}))(CONNECT_DATA=(SERVICE_NAME=${serviceName})(SERVER=DEDICATED)))`,
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
return Object.freeze(Object.defineProperties(extension, Object.getOwnPropertyDescriptors(source)) as typeof source & typeof extension);
|
|
34
|
+
}
|
package/lib/src/version.d.ts
CHANGED
package/lib/src/version.js
CHANGED
package/package.json
CHANGED