create-hollware 0.9.1 → 0.10.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-hollware",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "Create a new Hollware project.",
5
5
  "homepage": "https://hollware.com",
6
6
  "bugs": {
@@ -35,7 +35,7 @@
35
35
  "@types/node": "24.19.2",
36
36
  "publint": "0.3.25",
37
37
  "typescript": "7.0.2",
38
- "vite-plus": "1.1.0"
38
+ "vite-plus": "1.2.0"
39
39
  },
40
40
  "engines": {
41
41
  "node": ">=24.11.0"
@@ -15,18 +15,18 @@
15
15
  "dependencies": {
16
16
  "@hollware/core": "HOLLWARE_VERSION",
17
17
  "@hollware/server": "HOLLWARE_VERSION",
18
- "zod": "4.6.5"
18
+ "zod": "4.6.7"
19
19
  },
20
20
  "devDependencies": {
21
- "@cloudflare/vite-plugin": "1.63.2",
22
- "@cloudflare/vitest-plugin": "1.4.1",
21
+ "@cloudflare/vite-plugin": "1.64.0",
22
+ "@cloudflare/vitest-plugin": "1.4.3",
23
23
  "@hollware/admin": "HOLLWARE_VERSION",
24
24
  "hollware": "HOLLWARE_VERSION",
25
25
  "typescript": "7.0.2",
26
- "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
27
- "vite-plus": "1.1.0",
28
- "vitest": "5.0.3",
29
- "wrangler": "4.150.0"
26
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.2.0",
27
+ "vite-plus": "1.2.0",
28
+ "vitest": "5.0.4",
29
+ "wrangler": "4.151.0"
30
30
  },
31
31
  "overrides": {
32
32
  "vite": "$vite"
@@ -31,8 +31,8 @@ export default defineConfig({
31
31
  name: 'starter:workerd',
32
32
  include: ['test/**/*.workerd.test.ts'],
33
33
  setupFiles: ['test/apply-migrations.ts'],
34
- // The default, kept explicit: @cloudflare/vitest-plugin cannot read Vitest 5's module cache from
35
- // workerd ("no such file or directory, readAll .vitest-cache/..."), cloudflare/workers-sdk#15618.
34
+ // Off: @cloudflare/vitest-plugin reads Vitest's module cache from workerd since 1.4.3
35
+ // (cloudflare/workers-sdk#15618), but it saved no time here (server:workerd, 13 s either way).
36
36
  fsModuleCache: false,
37
37
  },
38
38
  })
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
2
  // Generated by Wrangler by running `wrangler types` (hash: 9df54bbb9b67e268beea963d16f621d4)
3
- // Runtime types generated with workerd@1.20261006.1 2026-10-06 global_fetch_strictly_public,no_nodejs_compat,no_nodejs_compat_v2
3
+ // Runtime types generated with workerd@1.20261012.1 2026-10-06 global_fetch_strictly_public,no_nodejs_compat,no_nodejs_compat_v2
4
4
  interface __BaseEnv_Env {
5
5
  OAUTH_KV: KVNamespace;
6
6
  DB: D1Database;
@@ -3323,13 +3323,7 @@ declare abstract class SqlStorageStatement {
3323
3323
  }
3324
3324
  type SqlStorageValue = ArrayBuffer | string | number | null;
3325
3325
  declare abstract class SqlStorageCursor<T extends Record<string, SqlStorageValue>> {
3326
- next(): {
3327
- done?: false;
3328
- value: T;
3329
- } | {
3330
- done: true;
3331
- value?: never;
3332
- };
3326
+ next(): IteratorResult<T, undefined>;
3333
3327
  toArray(): T[];
3334
3328
  one(): T;
3335
3329
  raw<U extends SqlStorageValue[]>(): IterableIterator<U>;
@@ -3655,6 +3649,7 @@ interface Tracing {
3655
3649
  }
3656
3650
  declare abstract class Span {
3657
3651
  get isTraced(): boolean;
3652
+ spanContext(): TracingSpanContext;
3658
3653
  setAttribute(key: string, value: boolean | number | string): this;
3659
3654
  setAttributes(attributes: Record<string, boolean | number | string | undefined>): this;
3660
3655
  recordException(exception: string | {
@@ -3682,6 +3677,11 @@ interface TracingSpanStatus {
3682
3677
  code: TracingSpanStatusCode;
3683
3678
  message?: string;
3684
3679
  }
3680
+ interface TracingSpanContext {
3681
+ traceId: string;
3682
+ spanId: string;
3683
+ traceFlags: number;
3684
+ }
3685
3685
  /**
3686
3686
  * Represents the identity of a user authenticated via Cloudflare Access.
3687
3687
  * This matches the result of calling /cdn-cgi/access/get-identity.
@@ -13238,20 +13238,30 @@ interface Disposable {
13238
13238
  }
13239
13239
  declare module 'cloudflare:durable-objects' {
13240
13240
  /**
13241
- * Marks a Durable Object method as safe to run more than once. The runtime may then retry calls
13242
- * to it after a disconnect that might have happened after the method started. It does not
13241
+ * Marks Durable Object methods as safe to run more than once. The runtime may then retry calls
13242
+ * to them after a disconnect that might have happened after the method started. It does not
13243
13243
  * enable retries or change how many are made.
13244
13244
  *
13245
+ * Mark methods on the class prototype, for example from a static block:
13246
+ *
13247
+ * ```ts
13248
+ * class Counter extends DurableObject {
13249
+ * static {
13250
+ * retryable(this.prototype.reset);
13251
+ * }
13252
+ * async reset() {}
13253
+ * }
13254
+ * ```
13255
+ *
13256
+ * The mark is on the function itself. A subclass inherits it, but an override, a bound copy, or
13257
+ * a wrapper is not marked unless it is also passed to `retryable()`.
13258
+ *
13245
13259
  * Each attempt creates its own return value, so if the method returns an `RpcTarget`, its
13246
13260
  * `[Symbol.dispose]()` may run once per attempt.
13247
13261
  *
13248
- * Only public instance methods can be decorated. When composing decorators, apply `@retryable`
13249
- * outermost (first in source order) so it marks the method that is finally installed.
13250
- * Otherwise `@retryable` has no effect, and constructing the object logs a warning.
13251
- * Requires standard (not `experimentalDecorators`) decorators and a bundler that transforms
13252
- * them, such as Wrangler.
13262
+ * @throws TypeError if an argument is not a function.
13253
13263
  */
13254
- export function retryable<This, Args extends unknown[], Return>(value: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Return>): (this: This, ...args: Args) => Return;
13264
+ export function retryable(...methods: ((...args: never[]) => unknown)[]): void;
13255
13265
  }
13256
13266
  /**
13257
13267
  * The returned data after sending an email
@@ -13393,7 +13403,10 @@ declare module "cloudflare:email" {
13393
13403
  * Evaluation context for targeting rules.
13394
13404
  * Keys are attribute names (e.g. "userId", "country"), values are the attribute values.
13395
13405
  */
13396
- type FlagshipEvaluationContext = Record<string, string | number | boolean>;
13406
+ type FlagshipEvaluationContextValue = string | number | boolean | null | FlagshipEvaluationContextValue[] | {
13407
+ [key: string]: FlagshipEvaluationContextValue;
13408
+ };
13409
+ type FlagshipEvaluationContext = Record<string, FlagshipEvaluationContextValue>;
13397
13410
  interface FlagshipEvaluationDetails<T> {
13398
13411
  flagKey: string;
13399
13412
  value: T;
@@ -13402,6 +13415,7 @@ interface FlagshipEvaluationDetails<T> {
13402
13415
  errorCode?: string | undefined;
13403
13416
  errorMessage?: string | undefined;
13404
13417
  }
13418
+ type FlagshipWidenedValue<T> = T extends boolean ? boolean : T extends string ? string : T extends number ? number : T;
13405
13419
  interface FlagshipEvaluationError extends Error {
13406
13420
  }
13407
13421
  /**
@@ -13429,8 +13443,23 @@ declare abstract class Flagship {
13429
13443
  * @param flagKey The key of the flag to evaluate.
13430
13444
  * @param defaultValue Optional default value returned when evaluation fails.
13431
13445
  * @param context Optional evaluation context for targeting rules.
13446
+ * @deprecated Use getValue() instead.
13432
13447
  */
13433
13448
  get(flagKey: string, defaultValue?: unknown, context?: FlagshipEvaluationContext): Promise<unknown>;
13449
+ /**
13450
+ * Get a flag value, inferring its expected type from the default value.
13451
+ * @param flagKey The key of the flag to evaluate.
13452
+ * @param defaultValue Default value returned when evaluation fails or the flag type does not match.
13453
+ * @param context Optional evaluation context for targeting rules.
13454
+ */
13455
+ getValue<T extends boolean | string | number | Record<string, unknown> | unknown[]>(flagKey: string, defaultValue: T, context?: FlagshipEvaluationContext): Promise<FlagshipWidenedValue<T>>;
13456
+ /**
13457
+ * Get a flag value with full evaluation details, inferring its expected type from the default value.
13458
+ * @param flagKey The key of the flag to evaluate.
13459
+ * @param defaultValue Default value returned when evaluation fails or the flag type does not match.
13460
+ * @param context Optional evaluation context for targeting rules.
13461
+ */
13462
+ getDetails<T extends boolean | string | number | Record<string, unknown> | unknown[]>(flagKey: string, defaultValue: T, context?: FlagshipEvaluationContext): Promise<FlagshipEvaluationDetails<FlagshipWidenedValue<T>>>;
13434
13463
  /**
13435
13464
  * Get a boolean flag value.
13436
13465
  * @param flagKey The key of the flag to evaluate.
@@ -14231,7 +14260,7 @@ declare namespace Rpc {
14231
14260
  // Structured cloneables
14232
14261
  BaseType
14233
14262
  // Structured cloneable composites
14234
- | Map<T extends Map<infer U, unknown> ? Serializable<U> : never, T extends Map<unknown, infer U> ? Serializable<U> : never> | Set<T extends Set<infer U> ? Serializable<U> : never> | ReadonlyArray<T extends ReadonlyArray<infer U> ? Serializable<U> : never> | {
14263
+ | Map<T extends Map<infer U, unknown> ? Serializable<U> : never, T extends Map<unknown, infer U> ? Serializable<U> : never> | Set<T extends Set<infer U> ? Serializable<U> : never> | ReadonlyMap<T extends ReadonlyMap<infer U, unknown> ? Serializable<U> : never, T extends ReadonlyMap<unknown, infer U> ? Serializable<U> : never> | ReadonlySet<T extends ReadonlySet<infer U> ? Serializable<U> : never> | ReadonlyArray<T extends ReadonlyArray<infer U> ? Serializable<U> : never> | {
14235
14264
  [K in keyof T]: K extends number | string ? Serializable<T[K]> : never;
14236
14265
  }
14237
14266
  // Special types
@@ -14249,7 +14278,7 @@ declare namespace Rpc {
14249
14278
  type BaseType = void | undefined | null | boolean | number | bigint | string | TypedArray | ArrayBuffer | DataView | Date | Error | RegExp | ReadableStream<Uint8Array> | WritableStream<Uint8Array> | Request | Response | Headers;
14250
14279
  // Recursively rewrite all `Stubable` types with `Stub`s
14251
14280
  // prettier-ignore
14252
- type Stubify<T> = T extends Stubable ? Stub<T> : T extends Map<infer K, infer V> ? Map<Stubify<K>, Stubify<V>> : T extends Set<infer V> ? Set<Stubify<V>> : T extends Array<infer V> ? Array<Stubify<V>> : T extends ReadonlyArray<infer V> ? ReadonlyArray<Stubify<V>> : T extends BaseType ? T : T extends {
14281
+ type Stubify<T> = T extends Stubable ? Stub<T> : T extends Map<infer K, infer V> ? Map<Stubify<K>, Stubify<V>> : T extends Set<infer V> ? Set<Stubify<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Stubify<K>, Stubify<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Stubify<V>> : T extends Array<infer V> ? Array<Stubify<V>> : T extends ReadonlyArray<infer V> ? ReadonlyArray<Stubify<V>> : T extends BaseType ? T : T extends {
14253
14282
  [key: string | number]: any;
14254
14283
  } ? {
14255
14284
  [K in keyof T]: Stubify<T[K]>;
@@ -14258,7 +14287,7 @@ declare namespace Rpc {
14258
14287
  // Note we use `StubBase` instead of `Stub` here to avoid circular dependencies:
14259
14288
  // `Stub` depends on `Provider`, which depends on `Unstubify`, which would depend on `Stub`.
14260
14289
  // prettier-ignore
14261
- type Unstubify<T> = T extends StubBase<infer V> ? V : T extends Map<infer K, infer V> ? Map<Unstubify<K>, Unstubify<V>> : T extends Set<infer V> ? Set<Unstubify<V>> : T extends Array<infer V> ? Array<Unstubify<V>> : T extends ReadonlyArray<infer V> ? ReadonlyArray<Unstubify<V>> : T extends BaseType ? T : T extends {
14290
+ type Unstubify<T> = T extends StubBase<infer V> ? V : T extends Map<infer K, infer V> ? Map<Unstubify<K>, Unstubify<V>> : T extends Set<infer V> ? Set<Unstubify<V>> : T extends ReadonlyMap<infer K, infer V> ? ReadonlyMap<Unstubify<K>, Unstubify<V>> : T extends ReadonlySet<infer V> ? ReadonlySet<Unstubify<V>> : T extends Array<infer V> ? Array<Unstubify<V>> : T extends ReadonlyArray<infer V> ? ReadonlyArray<Unstubify<V>> : T extends BaseType ? T : T extends {
14262
14291
  [key: string | number]: unknown;
14263
14292
  } ? {
14264
14293
  [K in keyof T]: Unstubify<T[K]>;