@celsoft/platform 0.7.0 → 0.8.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/dist/adapters/cloudflare.d.ts +11 -10
- package/dist/adapters/cloudflare.js +29 -22
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/github.d.ts +2 -1
- package/dist/adapters/github.js +5 -0
- package/dist/adapters/github.js.map +1 -1
- package/dist/adapters/r2.d.ts +15 -0
- package/dist/adapters/r2.js +99 -0
- package/dist/adapters/r2.js.map +1 -0
- package/dist/adapters/registry.d.ts +14 -0
- package/dist/adapters/registry.js +42 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/cli.js +28 -7
- package/dist/cli.js.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/fakes.d.ts +19 -9
- package/dist/fakes.js +51 -20
- package/dist/fakes.js.map +1 -1
- package/dist/legacy.d.ts +10 -0
- package/dist/legacy.js +13 -0
- package/dist/legacy.js.map +1 -0
- package/dist/lifecycle.d.ts +8 -2
- package/dist/lifecycle.js +201 -77
- package/dist/lifecycle.js.map +1 -1
- package/dist/ports.d.ts +25 -10
- package/dist/runtime/files.js +1 -4
- package/dist/runtime/files.js.map +1 -1
- package/dist/target.d.ts +2 -1
- package/dist/target.js +9 -7
- package/dist/target.js.map +1 -1
- package/package.json +1 -1
- package/schema.json +1 -1
- package/dist/ownership.d.ts +0 -16
- package/dist/ownership.js +0 -40
- package/dist/ownership.js.map +0 -1
package/dist/target.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Every name is the app name, alone or followed by a suffix after `--`, which app names never
|
|
2
|
+
// contain. Prod gets its own bucket; previews share one, each under its PR's folder.
|
|
2
3
|
export function names(config, target) {
|
|
3
4
|
if (target.kind === "prod") {
|
|
4
|
-
return { worker: config.name, hyperdrive: config.name, neonBranch: undefined, bucket: `${config.name}
|
|
5
|
+
return { worker: config.name, hyperdrive: config.name, neonBranch: undefined, bucket: `${config.name}--files`, filesPrefix: "" };
|
|
5
6
|
}
|
|
6
7
|
const suffix = `pr-${target.pr}`;
|
|
7
8
|
return {
|
|
8
|
-
worker: `${config.name}
|
|
9
|
-
hyperdrive: `${config.name}
|
|
9
|
+
worker: `${config.name}--${suffix}`,
|
|
10
|
+
hyperdrive: `${config.name}--${suffix}`,
|
|
10
11
|
neonBranch: suffix,
|
|
11
|
-
bucket: `${config.name}
|
|
12
|
+
bucket: `${config.name}--previews`,
|
|
12
13
|
filesPrefix: `${suffix}/`,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
|
-
export
|
|
16
|
-
|
|
16
|
+
export const previewPattern = (app) => new RegExp(`^${app}--pr-(\\d+)$`);
|
|
17
|
+
export function previewHostname(pr, hostname) {
|
|
18
|
+
return `pr-${pr}.${hostname}`;
|
|
17
19
|
}
|
|
18
20
|
export function originOf(connectionUri) {
|
|
19
21
|
const url = new URL(connectionUri);
|
package/dist/target.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sourceRoot":"","sources":["../src/target.ts"],"names":[],"mappings":"AAYA,
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../src/target.ts"],"names":[],"mappings":"AAYA,8FAA8F;AAC9F,qFAAqF;AACrF,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,MAAc;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACnI,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC;IACjC,OAAO;QACL,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QACnC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;QACvC,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,YAAY;QAClC,WAAW,EAAE,GAAG,MAAM,GAAG;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;AAEjF,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,QAAgB;IAC1D,OAAO,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,aAAqB;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACtD,CAAC"}
|
package/package.json
CHANGED
package/schema.json
CHANGED
package/dist/ownership.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Config } from "./config.js";
|
|
2
|
-
import type { Hyperdrive, Ports } from "./ports.js";
|
|
3
|
-
export declare const PLATFORM_TAG = "celsoft-platform";
|
|
4
|
-
export declare const appTag: (app: string) => string;
|
|
5
|
-
export declare const prTag: (pr: number) => string;
|
|
6
|
-
export declare const BUCKET_MARKER = ".celsoft-platform";
|
|
7
|
-
export declare class UnprovenError extends Error {
|
|
8
|
-
constructor(kind: string, name: string, app: string);
|
|
9
|
-
}
|
|
10
|
-
export interface OwnedWorker {
|
|
11
|
-
name: string;
|
|
12
|
-
hyperdriveIds: string[];
|
|
13
|
-
}
|
|
14
|
-
export declare function ownedWorker(ports: Ports, config: Config, name: string): Promise<OwnedWorker | undefined>;
|
|
15
|
-
export declare function requireOwnedHyperdrive(ports: Ports, config: Config, hyperdrive: Hyperdrive, boundIds: string[]): Promise<void>;
|
|
16
|
-
export declare function ownedBucket(ports: Ports, config: Config, name: string): Promise<boolean>;
|
package/dist/ownership.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// Cloudflare has no project scope inside an account, so a matching name never proves the
|
|
2
|
-
// platform made a resource. Each resource carries proof instead, checked before any change.
|
|
3
|
-
export const PLATFORM_TAG = "celsoft-platform";
|
|
4
|
-
export const appTag = (app) => `app:${app}`;
|
|
5
|
-
export const prTag = (pr) => `pr:${pr}`;
|
|
6
|
-
export const BUCKET_MARKER = ".celsoft-platform";
|
|
7
|
-
export class UnprovenError extends Error {
|
|
8
|
-
constructor(kind, name, app) {
|
|
9
|
-
super(`${kind} ${name} exists, but nothing shows the platform made it for ${app}, so it was left untouched; remove it by hand if it is yours to remove, or choose another app name`);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
// Undefined when there is no such Worker; throws when it exists without this app's tags.
|
|
13
|
-
export async function ownedWorker(ports, config, name) {
|
|
14
|
-
const owner = await ports.cloudflare.workerOwner(name);
|
|
15
|
-
if (!owner)
|
|
16
|
-
return undefined;
|
|
17
|
-
if (owner.app !== config.name)
|
|
18
|
-
throw new UnprovenError("Worker", name, config.name);
|
|
19
|
-
return { name, hyperdriveIds: owner.hyperdriveIds };
|
|
20
|
-
}
|
|
21
|
-
// A Hyperdrive config is the app's when one of its Workers binds it, or when it points at a
|
|
22
|
-
// database in the app's own Neon project, which covers a config whose Worker never deployed.
|
|
23
|
-
export async function requireOwnedHyperdrive(ports, config, hyperdrive, boundIds) {
|
|
24
|
-
if (boundIds.includes(hyperdrive.id))
|
|
25
|
-
return;
|
|
26
|
-
const host = hyperdrive.origin.split("@")[1]?.split("/")[0];
|
|
27
|
-
if (config.database && host && (await ports.neon.endpointHosts(config.database.neonProject)).includes(host))
|
|
28
|
-
return;
|
|
29
|
-
throw new UnprovenError("Hyperdrive config", hyperdrive.name, config.name);
|
|
30
|
-
}
|
|
31
|
-
// True when the bucket exists and its marker names this app; throws when it names nothing or another app.
|
|
32
|
-
export async function ownedBucket(ports, config, name) {
|
|
33
|
-
const owner = await ports.cloudflare.bucketOwner(name);
|
|
34
|
-
if (owner === undefined)
|
|
35
|
-
return false;
|
|
36
|
-
if (owner !== config.name)
|
|
37
|
-
throw new UnprovenError("R2 bucket", name, config.name);
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=ownership.js.map
|
package/dist/ownership.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ownership.js","sourceRoot":"","sources":["../src/ownership.ts"],"names":[],"mappings":"AAGA,yFAAyF;AACzF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAC/C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AACpD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAEjD,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,IAAY,EAAE,IAAY,EAAE,GAAW;QACjD,KAAK,CAAC,GAAG,IAAI,IAAI,IAAI,uDAAuD,GAAG,oGAAoG,CAAC,CAAC;IACvL,CAAC;CACF;AAOD,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY;IAC1E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;AACtD,CAAC;AAED,4FAA4F;AAC5F,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAY,EAAE,MAAc,EAAE,UAAsB,EAAE,QAAkB;IACnH,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;IACpH,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,0GAA0G;AAC1G,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAY,EAAE,MAAc,EAAE,IAAY;IAC1E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,KAAK,KAAK,MAAM,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC;AACd,CAAC"}
|