@alienplatform/sdk 1.14.1 → 2.0.1
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/dist.js +371 -275
- package/dist/index.d.ts +22 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -14356
- package/dist/native.d.ts +26 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +2 -0
- package/dist/worker-runtime/channel.d.ts +25 -0
- package/dist/worker-runtime/channel.d.ts.map +1 -0
- package/dist/worker-runtime/errors.d.ts +79 -0
- package/dist/worker-runtime/errors.d.ts.map +1 -0
- package/dist/worker-runtime/event-loop.d.ts +43 -0
- package/dist/worker-runtime/event-loop.d.ts.map +1 -0
- package/dist/{generated → worker-runtime/generated}/control.d.ts +15 -15
- package/dist/worker-runtime/generated/control.d.ts.map +1 -0
- package/dist/worker-runtime/generated/google/protobuf/duration.d.ts.map +1 -0
- package/dist/worker-runtime/generated/google/protobuf/timestamp.d.ts.map +1 -0
- package/dist/{generated → worker-runtime/generated}/wait_until.d.ts +29 -29
- package/dist/worker-runtime/generated/wait_until.d.ts.map +1 -0
- package/dist/worker-runtime/grpc-utils.d.ts +23 -0
- package/dist/worker-runtime/grpc-utils.d.ts.map +1 -0
- package/dist/worker-runtime/index.d.ts +33 -0
- package/dist/worker-runtime/index.d.ts.map +1 -0
- package/dist/{src.js → worker-runtime/index.js} +9370 -4035
- package/dist/worker-runtime/registry.d.ts +169 -0
- package/dist/worker-runtime/registry.d.ts.map +1 -0
- package/dist/worker-runtime/service-definitions.d.ts +12 -0
- package/dist/worker-runtime/service-definitions.d.ts.map +1 -0
- package/dist/worker-runtime/wait-until-manager.d.ts +34 -0
- package/dist/worker-runtime/wait-until-manager.d.ts.map +1 -0
- package/package.json +18 -38
- package/.turbo/turbo-build.log +0 -30
- package/AGENTS.md +0 -70
- package/dist/bearerTokenAuthenticationPolicy.js +0 -3028
- package/dist/bindings/artifact-registry.d.ts +0 -88
- package/dist/bindings/artifact-registry.d.ts.map +0 -1
- package/dist/bindings/build.d.ts +0 -67
- package/dist/bindings/build.d.ts.map +0 -1
- package/dist/bindings/index.d.ts +0 -13
- package/dist/bindings/index.d.ts.map +0 -1
- package/dist/bindings/kv.d.ts +0 -113
- package/dist/bindings/kv.d.ts.map +0 -1
- package/dist/bindings/postgres.d.ts +0 -90
- package/dist/bindings/postgres.d.ts.map +0 -1
- package/dist/bindings/postgres.test.d.ts +0 -2
- package/dist/bindings/postgres.test.d.ts.map +0 -1
- package/dist/bindings/queue.d.ts +0 -81
- package/dist/bindings/queue.d.ts.map +0 -1
- package/dist/bindings/service-account.d.ts +0 -46
- package/dist/bindings/service-account.d.ts.map +0 -1
- package/dist/bindings/storage.d.ts +0 -164
- package/dist/bindings/storage.d.ts.map +0 -1
- package/dist/bindings/vault.d.ts +0 -65
- package/dist/bindings/vault.d.ts.map +0 -1
- package/dist/bindings/worker.d.ts +0 -72
- package/dist/bindings/worker.d.ts.map +0 -1
- package/dist/channel.d.ts +0 -39
- package/dist/channel.d.ts.map +0 -1
- package/dist/checksum.js +0 -6176
- package/dist/commands/client.d.ts +0 -47
- package/dist/commands/client.d.ts.map +0 -1
- package/dist/commands/errors.d.ts +0 -198
- package/dist/commands/errors.d.ts.map +0 -1
- package/dist/commands/index.d.ts +0 -23
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/index.js +0 -387
- package/dist/commands/types.d.ts +0 -40
- package/dist/commands/types.d.ts.map +0 -1
- package/dist/commands.d.ts +0 -55
- package/dist/commands.d.ts.map +0 -1
- package/dist/context.d.ts +0 -182
- package/dist/context.d.ts.map +0 -1
- package/dist/dist-cjs.js +0 -15258
- package/dist/dist2.js +0 -1239
- package/dist/errors.d.ts +0 -359
- package/dist/errors.d.ts.map +0 -1
- package/dist/es5.js +0 -1720
- package/dist/esm.js +0 -18068
- package/dist/esm2.js +0 -3166
- package/dist/event-streams.js +0 -770
- package/dist/events.d.ts +0 -163
- package/dist/events.d.ts.map +0 -1
- package/dist/generated/artifact_registry.d.ts +0 -302
- package/dist/generated/artifact_registry.d.ts.map +0 -1
- package/dist/generated/build.d.ts +0 -184
- package/dist/generated/build.d.ts.map +0 -1
- package/dist/generated/container.d.ts +0 -101
- package/dist/generated/container.d.ts.map +0 -1
- package/dist/generated/control.d.ts.map +0 -1
- package/dist/generated/google/protobuf/duration.d.ts.map +0 -1
- package/dist/generated/google/protobuf/timestamp.d.ts.map +0 -1
- package/dist/generated/kv.d.ts +0 -182
- package/dist/generated/kv.d.ts.map +0 -1
- package/dist/generated/queue.d.ts +0 -127
- package/dist/generated/queue.d.ts.map +0 -1
- package/dist/generated/service_account.d.ts +0 -112
- package/dist/generated/service_account.d.ts.map +0 -1
- package/dist/generated/storage.d.ts +0 -784
- package/dist/generated/storage.d.ts.map +0 -1
- package/dist/generated/vault.d.ts +0 -107
- package/dist/generated/vault.d.ts.map +0 -1
- package/dist/generated/wait_until.d.ts.map +0 -1
- package/dist/generated/worker.d.ts +0 -107
- package/dist/generated/worker.d.ts.map +0 -1
- package/dist/global.d.ts +0 -208
- package/dist/global.d.ts.map +0 -1
- package/dist/grpc-utils.d.ts +0 -25
- package/dist/grpc-utils.d.ts.map +0 -1
- package/dist/jws.js +0 -611
- package/dist/open.js +0 -461
- package/dist/rolldown-runtime.js +0 -44
- package/dist/src2.js +0 -114032
- package/dist/types.d.ts +0 -337
- package/dist/types.d.ts.map +0 -1
- package/dist/wait-until.d.ts +0 -115
- package/dist/wait-until.d.ts.map +0 -1
- package/scripts/generate-proto.sh +0 -46
- package/src/bindings/AGENTS.md +0 -105
- package/src/bindings/artifact-registry.ts +0 -317
- package/src/bindings/build.ts +0 -195
- package/src/bindings/index.ts +0 -13
- package/src/bindings/kv.ts +0 -240
- package/src/bindings/postgres.test.ts +0 -17
- package/src/bindings/postgres.ts +0 -446
- package/src/bindings/queue.ts +0 -191
- package/src/bindings/service-account.ts +0 -113
- package/src/bindings/storage.ts +0 -536
- package/src/bindings/vault.ts +0 -133
- package/src/bindings/worker.ts +0 -164
- package/src/channel.ts +0 -102
- package/src/commands/client.ts +0 -446
- package/src/commands/errors.ts +0 -126
- package/src/commands/index.ts +0 -41
- package/src/commands/types.ts +0 -52
- package/src/commands.ts +0 -76
- package/src/context.ts +0 -368
- package/src/errors.ts +0 -280
- package/src/events.ts +0 -511
- package/src/generated/artifact_registry.ts +0 -2096
- package/src/generated/build.ts +0 -1311
- package/src/generated/container.ts +0 -503
- package/src/generated/control.ts +0 -2018
- package/src/generated/google/protobuf/duration.ts +0 -196
- package/src/generated/google/protobuf/timestamp.ts +0 -226
- package/src/generated/kv.ts +0 -1169
- package/src/generated/queue.ts +0 -753
- package/src/generated/service_account.ts +0 -814
- package/src/generated/storage.ts +0 -3820
- package/src/generated/vault.ts +0 -543
- package/src/generated/wait_until.ts +0 -829
- package/src/generated/worker.ts +0 -759
- package/src/global.ts +0 -287
- package/src/grpc-utils.ts +0 -159
- package/src/index.ts +0 -160
- package/src/types.ts +0 -397
- package/src/wait-until.ts +0 -273
- package/tsconfig.json +0 -8
- package/tsdown.config.ts +0 -17
- /package/dist/{generated → worker-runtime/generated}/google/protobuf/duration.d.ts +0 -0
- /package/dist/{generated → worker-runtime/generated}/google/protobuf/timestamp.d.ts +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker handler registries — the facade's protocol-only surface.
|
|
3
|
+
*
|
|
4
|
+
* `command`, `onStorageEvent`, `onCronEvent`, `onQueueMessage`, and `waitUntil`
|
|
5
|
+
* register into these in-memory maps; {@link runWorker} (in `./index.ts`) reads
|
|
6
|
+
* them to register handlers with the runtime and dispatch tasks. There is no
|
|
7
|
+
* gRPC here — this module is what the facade root re-exports, so the facade
|
|
8
|
+
* bundle stays free of Worker-protocol dependencies.
|
|
9
|
+
*
|
|
10
|
+
* The `@alienplatform/sdk` root (`dist/index.js`) and the
|
|
11
|
+
* `@alienplatform/sdk/worker-runtime` subpath (`dist/worker-runtime/index.js`)
|
|
12
|
+
* are separate entry bundles. A user's app registers handlers by importing the
|
|
13
|
+
* root; the generated bootstrap drives them by importing the subpath. For those
|
|
14
|
+
* two bundles to observe the SAME registration state, the maps are stored on
|
|
15
|
+
* `globalThis` under a shared `Symbol.for` key rather than as ordinary
|
|
16
|
+
* module-level state (which would be duplicated per bundle).
|
|
17
|
+
*/
|
|
18
|
+
import type { QueueMessage, ScheduledEvent, StorageEvent, StorageEventType } from "@alienplatform/core";
|
|
19
|
+
export type { StorageEvent, StorageEventType, ScheduledEvent, QueueMessage };
|
|
20
|
+
/**
|
|
21
|
+
* Cron/scheduled event with schedule info.
|
|
22
|
+
*/
|
|
23
|
+
export interface CronEvent extends ScheduledEvent {
|
|
24
|
+
/** Schedule name */
|
|
25
|
+
scheduleName: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Queue message event with queue context.
|
|
29
|
+
*/
|
|
30
|
+
export interface QueueMessageEvent<T = unknown> {
|
|
31
|
+
/** Message ID */
|
|
32
|
+
id: string;
|
|
33
|
+
/** Source queue name */
|
|
34
|
+
source: string;
|
|
35
|
+
/** Receipt handle for acknowledgment */
|
|
36
|
+
receiptHandle: string;
|
|
37
|
+
/** Message payload */
|
|
38
|
+
payload: T;
|
|
39
|
+
/** Delivery attempt count */
|
|
40
|
+
attemptCount: number;
|
|
41
|
+
/** Message timestamp */
|
|
42
|
+
timestamp: Date;
|
|
43
|
+
/** Platform-specific message attributes */
|
|
44
|
+
attributes?: {
|
|
45
|
+
[key: string]: string;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Per-invocation metadata passed to a Worker command handler alongside its
|
|
50
|
+
* params. Mirrors the pull receiver's context: `attempt > 1` means
|
|
51
|
+
* redelivery (at-least-once semantics), and `deadline` bounds execution.
|
|
52
|
+
*/
|
|
53
|
+
export interface WorkerCommandContext {
|
|
54
|
+
/** Unique command identifier. */
|
|
55
|
+
commandId: string;
|
|
56
|
+
/** Delivery attempt, starting at 1. */
|
|
57
|
+
attempt: number;
|
|
58
|
+
/** Deadline for completion, when the sender set one. */
|
|
59
|
+
deadline?: Date;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Command definition.
|
|
63
|
+
*/
|
|
64
|
+
export interface CommandDefinition {
|
|
65
|
+
/** Command name */
|
|
66
|
+
name: string;
|
|
67
|
+
/** Handler function that receives params and returns a result */
|
|
68
|
+
handler: (params: unknown, context: WorkerCommandContext) => Promise<unknown>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Event handler registration.
|
|
72
|
+
*/
|
|
73
|
+
export interface EventRegistration {
|
|
74
|
+
/** Handler ID */
|
|
75
|
+
id: string;
|
|
76
|
+
/** Event type */
|
|
77
|
+
type: "storage" | "cron" | "queue";
|
|
78
|
+
/** Source filter (bucket name, queue name, etc.) */
|
|
79
|
+
source: string;
|
|
80
|
+
/** Optional prefix filter (for storage events) */
|
|
81
|
+
prefix?: string;
|
|
82
|
+
}
|
|
83
|
+
/** A single registered event handler. */
|
|
84
|
+
export interface EventHandlerEntry {
|
|
85
|
+
registration: EventRegistration;
|
|
86
|
+
handler: (event: unknown) => Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A tracked `waitUntil` background task.
|
|
90
|
+
*/
|
|
91
|
+
export interface TaskTracker {
|
|
92
|
+
/** Unique task ID */
|
|
93
|
+
id: string;
|
|
94
|
+
/** Task promise */
|
|
95
|
+
promise: Promise<unknown>;
|
|
96
|
+
/** When the task was registered */
|
|
97
|
+
registeredAt: Date;
|
|
98
|
+
/** Whether the task has completed */
|
|
99
|
+
completed: boolean;
|
|
100
|
+
/** Error if the task failed */
|
|
101
|
+
error?: Error;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Register a command handler.
|
|
105
|
+
*
|
|
106
|
+
* The handler receives the decoded params and, optionally, a
|
|
107
|
+
* {@link WorkerCommandContext} with `commandId`, `attempt`, and `deadline` —
|
|
108
|
+
* use `attempt` to make redeliveries idempotent (at-least-once semantics).
|
|
109
|
+
*
|
|
110
|
+
* @param name - Command name
|
|
111
|
+
* @param handler - Handler that receives params (and optionally the context)
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { command } from "@alienplatform/sdk"
|
|
116
|
+
*
|
|
117
|
+
* command("echo", async ({ message }: { message: string }, { attempt }) => {
|
|
118
|
+
* return { message, attempt, timestamp: new Date().toISOString() }
|
|
119
|
+
* })
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function command<TParams = unknown, TResult = unknown>(name: string, handler: (params: TParams, context: WorkerCommandContext) => Promise<TResult>): void;
|
|
123
|
+
/** Get all registered commands. @internal */
|
|
124
|
+
export declare function getCommands(): Map<string, CommandDefinition>;
|
|
125
|
+
/** Execute a registered command by name. @internal */
|
|
126
|
+
export declare function runCommand(name: string, params: unknown, context: WorkerCommandContext): Promise<unknown>;
|
|
127
|
+
/**
|
|
128
|
+
* Register a storage event handler.
|
|
129
|
+
*
|
|
130
|
+
* @param bucket - Bucket name (or `"*"` for all buckets)
|
|
131
|
+
* @param handler - Handler function for storage events
|
|
132
|
+
* @param options - Handler options
|
|
133
|
+
* @returns Unsubscribe function
|
|
134
|
+
*/
|
|
135
|
+
export declare function onStorageEvent(bucket: string, handler: (event: StorageEvent) => Promise<void>, options?: {
|
|
136
|
+
prefix?: string;
|
|
137
|
+
}): () => void;
|
|
138
|
+
/**
|
|
139
|
+
* Register a cron/scheduled event handler.
|
|
140
|
+
*
|
|
141
|
+
* @param scheduleName - Schedule name (or `"*"` for all schedules)
|
|
142
|
+
* @param handler - Handler function for scheduled events
|
|
143
|
+
* @returns Unsubscribe function
|
|
144
|
+
*/
|
|
145
|
+
export declare function onCronEvent(scheduleName: string, handler: (event: CronEvent) => Promise<void>): () => void;
|
|
146
|
+
/**
|
|
147
|
+
* Register a queue message handler.
|
|
148
|
+
*
|
|
149
|
+
* @param queueName - Queue name (or `"*"` for all queues)
|
|
150
|
+
* @param handler - Handler function for queue messages
|
|
151
|
+
* @returns Unsubscribe function
|
|
152
|
+
*/
|
|
153
|
+
export declare function onQueueMessage<T = unknown>(queueName: string, handler: (message: QueueMessageEvent<T>) => Promise<void>): () => void;
|
|
154
|
+
/** Get all registered event handlers. @internal */
|
|
155
|
+
export declare function getEventHandlers(): Map<string, EventHandlerEntry>;
|
|
156
|
+
/**
|
|
157
|
+
* Register a background task to continue after the response.
|
|
158
|
+
*
|
|
159
|
+
* The runtime waits for all registered tasks to complete before shutting down.
|
|
160
|
+
* This is the protocol-only registrar: it tracks the promise and (inside a
|
|
161
|
+
* running Worker) notifies the runtime via the installed hook. The gRPC drain
|
|
162
|
+
* coordination lives in {@link runWorker}.
|
|
163
|
+
*
|
|
164
|
+
* @param promise - The promise to track
|
|
165
|
+
*/
|
|
166
|
+
export declare function waitUntil(promise: Promise<unknown>): void;
|
|
167
|
+
/** Install the runtime's task-registered hook. @internal */
|
|
168
|
+
export declare function setOnTaskRegistered(hook: ((tracker: TaskTracker) => void) | undefined): void;
|
|
169
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type WorkerProtocolGeneration } from "./channel.js";
|
|
2
|
+
import { ControlServiceDefinition } from "./generated/control.js";
|
|
3
|
+
import { WaitUntilServiceDefinition } from "./generated/wait_until.js";
|
|
4
|
+
export type ControlService = Omit<typeof ControlServiceDefinition, "fullName"> & {
|
|
5
|
+
readonly fullName: string;
|
|
6
|
+
};
|
|
7
|
+
export type WaitUntilService = Omit<typeof WaitUntilServiceDefinition, "fullName"> & {
|
|
8
|
+
readonly fullName: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function getControlServiceDefinition(generation?: WorkerProtocolGeneration): ControlService;
|
|
11
|
+
export declare function getWaitUntilServiceDefinition(generation?: WorkerProtocolGeneration): WaitUntilService;
|
|
12
|
+
//# sourceMappingURL=service-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-definitions.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/service-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAyB,MAAM,cAAc,CAAA;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAEtE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,wBAAwB,EAAE,UAAU,CAAC,GAAG;IAC/E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,0BAA0B,EAAE,UAAU,CAAC,GAAG;IACnF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAYD,wBAAgB,2BAA2B,CACzC,UAAU,GAAE,wBAA6D,GACxE,cAAc,CAEhB;AAED,wBAAgB,6BAA6B,CAC3C,UAAU,GAAE,wBAA6D,GACxE,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WaitUntil coordination.
|
|
3
|
+
*
|
|
4
|
+
* The facade's {@link waitUntil} registrar (in `./registry.ts`) tracks promises
|
|
5
|
+
* with no gRPC. This manager is the runtime half: it notifies the runtime each
|
|
6
|
+
* time a background task is registered.
|
|
7
|
+
*
|
|
8
|
+
* Graceful drain-on-shutdown (waiting for tracked tasks to settle before the
|
|
9
|
+
* process exits) is a planned future feature; the runtime-side drain protocol
|
|
10
|
+
* (WaitForDrainSignal/NotifyDrainComplete) exists in the generated client but
|
|
11
|
+
* is not yet wired here.
|
|
12
|
+
*/
|
|
13
|
+
import { type Channel } from "nice-grpc";
|
|
14
|
+
import type { getWaitUntilServiceDefinition } from "./service-definitions.js";
|
|
15
|
+
/**
|
|
16
|
+
* WaitUntil manager for coordinating background tasks with the runtime.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare class WaitUntilManager {
|
|
21
|
+
private readonly client;
|
|
22
|
+
private readonly applicationId;
|
|
23
|
+
constructor(channel: Channel, applicationId: string, service: ReturnType<typeof getWaitUntilServiceDefinition>);
|
|
24
|
+
/**
|
|
25
|
+
* Install this manager as the registry's task-registered hook so each
|
|
26
|
+
* `waitUntil` call notifies the runtime that a background task exists.
|
|
27
|
+
*/
|
|
28
|
+
install(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Notify the runtime that a new background task was registered.
|
|
31
|
+
*/
|
|
32
|
+
notifyTaskRegistered(description?: string): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=wait-until-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-until-manager.d.ts","sourceRoot":"","sources":["../../src/worker-runtime/wait-until-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,WAAW,CAAA;AAItD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAA;AAE7E;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGpC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,UAAU,CAAC,OAAO,6BAA6B,CAAC;IAM3D;;;OAGG;IACH,OAAO,IAAI,IAAI;IAQf;;OAEG;IACG,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQhE"}
|
package/package.json
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alienplatform/sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"files": [
|
|
6
|
+
"dist"
|
|
7
|
+
],
|
|
5
8
|
"exports": {
|
|
6
9
|
".": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./worker-runtime": {
|
|
14
|
+
"types": "./dist/worker-runtime/index.d.ts",
|
|
15
|
+
"import": "./dist/worker-runtime/index.js"
|
|
9
16
|
},
|
|
10
|
-
"./
|
|
11
|
-
"
|
|
12
|
-
"
|
|
17
|
+
"./native": {
|
|
18
|
+
"types": "./dist/native.d.ts",
|
|
19
|
+
"import": "./dist/native.js"
|
|
13
20
|
}
|
|
14
21
|
},
|
|
15
22
|
"sideEffects": false,
|
|
16
23
|
"keywords": [
|
|
17
24
|
"alien",
|
|
18
25
|
"sdk",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"grpc"
|
|
26
|
+
"worker",
|
|
27
|
+
"bindings"
|
|
22
28
|
],
|
|
23
29
|
"author": "Alien Software, Inc. <hi@alien.dev>",
|
|
24
30
|
"license": "FSL-1.1-Apache-2.0",
|
|
25
31
|
"homepage": "https://alien.dev",
|
|
26
|
-
"description": "TypeScript SDK for Alien
|
|
32
|
+
"description": "TypeScript SDK for Alien Worker apps — handler APIs and re-exported binding factories",
|
|
27
33
|
"repository": {
|
|
28
34
|
"type": "git",
|
|
29
35
|
"url": "https://github.com/alienplatform/alien.git",
|
|
@@ -33,11 +39,7 @@
|
|
|
33
39
|
"access": "public"
|
|
34
40
|
},
|
|
35
41
|
"devDependencies": {
|
|
36
|
-
"@aws-sdk/client-secrets-manager": "^3.0.0",
|
|
37
|
-
"@azure/identity": "^4.0.0",
|
|
38
|
-
"@azure/keyvault-secrets": "^4.0.0",
|
|
39
42
|
"@biomejs/biome": "^1.9.4",
|
|
40
|
-
"@google-cloud/secret-manager": "^5.0.0",
|
|
41
43
|
"@types/node": "^24.0.15",
|
|
42
44
|
"ts-proto": "^2.7.0",
|
|
43
45
|
"tsdown": "^0.13.0",
|
|
@@ -48,33 +50,11 @@
|
|
|
48
50
|
"dependencies": {
|
|
49
51
|
"@bufbuild/protobuf": "^2.5.3",
|
|
50
52
|
"@grpc/grpc-js": "^1.14.4",
|
|
51
|
-
"long": "^5.3.2",
|
|
52
53
|
"nice-grpc": "^2.1.11",
|
|
53
54
|
"nice-grpc-common": "^2.0.2",
|
|
54
|
-
"protobufjs": "^7.6.5",
|
|
55
|
-
"ts-pattern": "^5.7.1",
|
|
56
55
|
"zod": "4.3.2",
|
|
57
|
-
"@alienplatform/
|
|
58
|
-
|
|
59
|
-
"peerDependencies": {
|
|
60
|
-
"@aws-sdk/client-secrets-manager": "^3.0.0",
|
|
61
|
-
"@azure/identity": "^4.0.0",
|
|
62
|
-
"@azure/keyvault-secrets": "^4.0.0",
|
|
63
|
-
"@google-cloud/secret-manager": "^5.0.0"
|
|
64
|
-
},
|
|
65
|
-
"peerDependenciesMeta": {
|
|
66
|
-
"@aws-sdk/client-secrets-manager": {
|
|
67
|
-
"optional": true
|
|
68
|
-
},
|
|
69
|
-
"@azure/identity": {
|
|
70
|
-
"optional": true
|
|
71
|
-
},
|
|
72
|
-
"@azure/keyvault-secrets": {
|
|
73
|
-
"optional": true
|
|
74
|
-
},
|
|
75
|
-
"@google-cloud/secret-manager": {
|
|
76
|
-
"optional": true
|
|
77
|
-
}
|
|
56
|
+
"@alienplatform/bindings": "^2.0.1",
|
|
57
|
+
"@alienplatform/core": "^2.0.1"
|
|
78
58
|
},
|
|
79
59
|
"scripts": {
|
|
80
60
|
"build": "tsdown && tsc --emitDeclarationOnly",
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> @alienplatform/sdk@1.14.1 build /home/runner/work/alien/alien/packages/sdk
|
|
3
|
-
> tsdown && tsc --emitDeclarationOnly
|
|
4
|
-
|
|
5
|
-
[34mℹ[39m tsdown [2mv0.13.5[22m powered by rolldown [2mv1.1.4[22m
|
|
6
|
-
[34mℹ[39m Using tsdown config: [4m/home/runner/work/alien/alien/packages/sdk/tsdown.config.ts[24m
|
|
7
|
-
[34mℹ[39m entry: [34msrc/index.ts, src/commands/index.ts[39m
|
|
8
|
-
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
|
-
[34mℹ[39m Build start
|
|
10
|
-
[34mℹ[39m Cleaning 97 files
|
|
11
|
-
[33mWarning: Invalid input options (1 issue found)
|
|
12
|
-
- For the "define". Invalid key: Expected never but received "define". [0m
|
|
13
|
-
[34mℹ[39m [2mdist/[22m[1mindex.js[22m [2m 468.18 kB[22m [2m│ gzip: 66.23 kB[22m
|
|
14
|
-
[34mℹ[39m [2mdist/[22m[1mcommands/index.js[22m [2m 12.03 kB[22m [2m│ gzip: 3.11 kB[22m
|
|
15
|
-
[34mℹ[39m [2mdist/[22msrc2.js [2m3976.54 kB[22m
|
|
16
|
-
[34mℹ[39m [2mdist/[22msrc.js [2m 902.50 kB[22m [2m│ gzip: 180.01 kB[22m
|
|
17
|
-
[34mℹ[39m [2mdist/[22mesm.js [2m 770.38 kB[22m [2m│ gzip: 156.72 kB[22m
|
|
18
|
-
[34mℹ[39m [2mdist/[22mdist-cjs.js [2m 550.90 kB[22m [2m│ gzip: 107.14 kB[22m
|
|
19
|
-
[34mℹ[39m [2mdist/[22mdist.js [2m 371.78 kB[22m [2m│ gzip: 69.89 kB[22m
|
|
20
|
-
[34mℹ[39m [2mdist/[22mchecksum.js [2m 240.44 kB[22m [2m│ gzip: 51.34 kB[22m
|
|
21
|
-
[34mℹ[39m [2mdist/[22mesm2.js [2m 128.87 kB[22m [2m│ gzip: 25.10 kB[22m
|
|
22
|
-
[34mℹ[39m [2mdist/[22mbearerTokenAuthenticationPolicy.js [2m 111.58 kB[22m [2m│ gzip: 27.57 kB[22m
|
|
23
|
-
[34mℹ[39m [2mdist/[22mes5.js [2m 52.89 kB[22m [2m│ gzip: 8.47 kB[22m
|
|
24
|
-
[34mℹ[39m [2mdist/[22mdist2.js [2m 37.64 kB[22m [2m│ gzip: 10.53 kB[22m
|
|
25
|
-
[34mℹ[39m [2mdist/[22mevent-streams.js [2m 28.96 kB[22m [2m│ gzip: 6.35 kB[22m
|
|
26
|
-
[34mℹ[39m [2mdist/[22mjws.js [2m 23.27 kB[22m [2m│ gzip: 5.32 kB[22m
|
|
27
|
-
[34mℹ[39m [2mdist/[22mopen.js [2m 15.30 kB[22m [2m│ gzip: 4.62 kB[22m
|
|
28
|
-
[34mℹ[39m [2mdist/[22mrolldown-runtime.js [2m 1.89 kB[22m [2m│ gzip: 0.86 kB[22m
|
|
29
|
-
[34mℹ[39m 16 files, total: 7693.17 kB
|
|
30
|
-
[32m✔[39m Build complete in [32m486ms[39m
|
package/AGENTS.md
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
# @alienplatform/sdk
|
|
2
|
-
|
|
3
|
-
TypeScript SDK for Alien bindings. Provides gRPC clients for Storage, KV, Queue, Vault, Build, ArtifactRegistry, Worker, and ServiceAccount.
|
|
4
|
-
|
|
5
|
-
## Commands
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
pnpm generate # Regenerate TypeScript from Proto
|
|
9
|
-
pnpm build # Build the package
|
|
10
|
-
pnpm test:ts # Type check
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Type Architecture
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
┌─────────────────┐
|
|
17
|
-
│ Rust Types │ ← Source of truth (alien-core)
|
|
18
|
-
└────────┬────────┘
|
|
19
|
-
│
|
|
20
|
-
┌────┴────┐
|
|
21
|
-
▼ ▼
|
|
22
|
-
┌───────┐ ┌───────────┐
|
|
23
|
-
│ Proto │ │ OpenAPI │
|
|
24
|
-
│ (wire)│ │ (schema) │
|
|
25
|
-
└───┬───┘ └─────┬─────┘
|
|
26
|
-
│ │
|
|
27
|
-
▼ ▼
|
|
28
|
-
┌─────────┐ ┌────────────┐
|
|
29
|
-
│ts-proto │ │ Kubb/Zod │
|
|
30
|
-
│(internal)│ │(@alien/core)│ ← Public API types
|
|
31
|
-
└────┬────┘ └──────┬─────┘
|
|
32
|
-
│ │
|
|
33
|
-
└──────┬───────┘
|
|
34
|
-
▼
|
|
35
|
-
Transform proto → core types
|
|
36
|
-
in binding implementations
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
**Key principle:** Domain types (`BuildStatus`, `StorageEvent`, etc.) come from `@alienplatform/core`. Proto types are internal - used only for gRPC wire format. Bindings transform proto ↔ public types.
|
|
40
|
-
|
|
41
|
-
## Package Structure
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
src/
|
|
45
|
-
├── generated/ # Auto-generated from Proto (DO NOT EDIT)
|
|
46
|
-
├── bindings/ # Individual binding clients (see bindings/AGENTS.md)
|
|
47
|
-
├── context.ts # AlienContext - main entry point
|
|
48
|
-
├── events.ts # Event handlers (storage, cron, queue)
|
|
49
|
-
├── types.ts # SDK-specific types (options, results)
|
|
50
|
-
└── index.ts # Public exports
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Proto Definitions
|
|
54
|
-
|
|
55
|
-
Protos live in `crates/alien-bindings/proto/`. When modified:
|
|
56
|
-
|
|
57
|
-
1. Run `pnpm generate` in this package
|
|
58
|
-
2. Update binding implementations to match new proto types
|
|
59
|
-
3. Verify TypeScript matches Rust behavior (see `src/bindings/AGENTS.md`)
|
|
60
|
-
|
|
61
|
-
## Adding New Bindings
|
|
62
|
-
|
|
63
|
-
1. Add proto in `crates/alien-bindings/proto/`
|
|
64
|
-
2. Run `pnpm generate`
|
|
65
|
-
3. Create binding in `src/bindings/<name>.ts`
|
|
66
|
-
4. Add types to `src/types.ts` (public API)
|
|
67
|
-
5. Export from `src/bindings/index.ts` and `src/index.ts`
|
|
68
|
-
6. Add accessor method to `AlienContext`
|
|
69
|
-
|
|
70
|
-
See `src/bindings/AGENTS.md` for implementation guidelines.
|