@soundscript/soundscript 0.1.9 → 0.1.10

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.
@@ -1,5 +1,5 @@
1
1
  function macroRuntimeError(name) {
2
- throw new Error(`${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`);
2
+ throw new Error(`${name}(...) is a soundscript macro and should be removed during soundscript expansion.`);
3
3
  }
4
4
  export function lazy(_value) {
5
5
  return macroRuntimeError('lazy');
@@ -1 +1 @@
1
- {"version":3,"file":"thunk.js","sourceRoot":"","sources":["../soundscript/experimental/thunk.sts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kFAAkF,CAC1F,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,IAAI,CAAC,MAAe;IAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAGD,MAAM,UAAU,IAAI,CAAC,MAAe;IAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC","sourcesContent":["function macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,\n );\n}\n\nexport function lazy<T>(_value: T): () => T;\nexport function lazy(_value: unknown): never {\n return macroRuntimeError('lazy');\n}\n\nexport function memo<T>(_value: T): () => T;\nexport function memo(_value: unknown): never {\n return macroRuntimeError('memo');\n}\n"]}
1
+ {"version":3,"file":"thunk.js","sourceRoot":"","sources":["../soundscript/experimental/thunk.sts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kFAAkF,CAC1F,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,IAAI,CAAC,MAAe;IAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAGD,MAAM,UAAU,IAAI,CAAC,MAAe;IAClC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC","sourcesContent":["function macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,\n );\n}\n\nexport function lazy<T>(_value: T): () => T;\nexport function lazy(_value: unknown): never {\n return macroRuntimeError('lazy');\n}\n\nexport function memo<T>(_value: T): () => T;\nexport function memo(_value: unknown): never {\n return macroRuntimeError('memo');\n}\n"]}
package/index.js CHANGED
@@ -2,7 +2,7 @@ export { err, isErr, isNone, isOk, isSome, none, ok, some, Try } from '@soundscr
2
2
  export { Match, where } from '@soundscript/soundscript/match';
3
3
  export { Failure } from '@soundscript/soundscript/failures';
4
4
  function macroRuntimeError(name) {
5
- throw new Error(`${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`);
5
+ throw new Error(`${name}(...) is a soundscript macro and should be removed during soundscript expansion.`);
6
6
  }
7
7
  export function Defer(_cleanup) {
8
8
  return macroRuntimeError('Defer');
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["./soundscript/index.sts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kFAAkF,CAC1F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,QAAuB;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACvE,CAAC","sourcesContent":["export type { Err, None, Ok, Option, Result, Some } from '@soundscript/soundscript/result';\n\nexport { err, isErr, isNone, isOk, isSome, none, ok, some, Try } from '@soundscript/soundscript/result';\nexport { Match, where } from '@soundscript/soundscript/match';\nexport { Failure } from '@soundscript/soundscript/failures';\n\nfunction macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,\n );\n}\n\nexport function Defer(_cleanup: () => unknown): never {\n return macroRuntimeError('Defer');\n}\n\nexport function todo(message?: string): never {\n throw new Error(message ? `TODO: ${message}` : 'TODO');\n}\n\nexport function unreachable(message?: string): never {\n throw new Error(message ? `Unreachable: ${message}` : 'Unreachable');\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["./soundscript/index.sts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACxG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kFAAkF,CAC1F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,QAAuB;IAC3C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACvE,CAAC","sourcesContent":["export type { Err, None, Ok, Option, Result, Some } from '@soundscript/soundscript/result';\n\nexport { err, isErr, isNone, isOk, isSome, none, ok, some, Try } from '@soundscript/soundscript/result';\nexport { Match, where } from '@soundscript/soundscript/match';\nexport { Failure } from '@soundscript/soundscript/failures';\n\nfunction macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,\n );\n}\n\nexport function Defer(_cleanup: () => unknown): never {\n return macroRuntimeError('Defer');\n}\n\nexport function todo(message?: string): never {\n throw new Error(message ? `TODO: ${message}` : 'TODO');\n}\n\nexport function unreachable(message?: string): never {\n throw new Error(message ? `Unreachable: ${message}` : 'Unreachable');\n}\n"]}
package/match.js CHANGED
@@ -1,14 +1,14 @@
1
1
  // `where(...)` is an ordinary helper value so TS/Deno consumers have a concrete implementation.
2
- // In the supported Soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.
2
+ // In the supported soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.
3
3
  export function where(arm, predicate) {
4
4
  return (value) => {
5
5
  if (!predicate(value)) {
6
- throw new Error('where(...) is intended for Match(...) guard arms and should be removed during Soundscript expansion.');
6
+ throw new Error('where(...) is intended for Match(...) guard arms and should be removed during soundscript expansion.');
7
7
  }
8
8
  return arm(value);
9
9
  };
10
10
  }
11
11
  export function Match(_value, _arms) {
12
- throw new Error('Match(...) is a Soundscript macro and should be removed during Soundscript expansion.');
12
+ throw new Error('Match(...) is a soundscript macro and should be removed during soundscript expansion.');
13
13
  }
14
14
  //# sourceMappingURL=match.js.map
package/match.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["./soundscript/match.sts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,qGAAqG;AACrG,MAAM,UAAU,KAAK,CACnB,GAA+B,EAC/B,SAAqC;IAErC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,MAAe,EACf,KAAiC;IAEjC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;AACJ,CAAC","sourcesContent":["export type MatchArm<TValue = unknown, TResult = unknown> = (value: TValue) => TResult;\n\n// `where(...)` is an ordinary helper value so TS/Deno consumers have a concrete implementation.\n// In the supported Soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.\nexport function where<TValue, TResult>(\n arm: (value: TValue) => TResult,\n predicate: (value: TValue) => unknown,\n): (value: TValue) => TResult {\n return (value) => {\n if (!predicate(value)) {\n throw new Error(\n 'where(...) is intended for Match(...) guard arms and should be removed during Soundscript expansion.',\n );\n }\n return arm(value);\n };\n}\n\nexport function Match<TArm extends MatchArm<any, any>>(\n _value: unknown,\n _arms: readonly [TArm, ...TArm[]],\n): ReturnType<TArm> {\n throw new Error(\n 'Match(...) is a Soundscript macro and should be removed during Soundscript expansion.',\n );\n}\n"]}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["./soundscript/match.sts"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,qGAAqG;AACrG,MAAM,UAAU,KAAK,CACnB,GAA+B,EAC/B,SAAqC;IAErC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,MAAe,EACf,KAAiC;IAEjC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;AACJ,CAAC","sourcesContent":["export type MatchArm<TValue = unknown, TResult = unknown> = (value: TValue) => TResult;\n\n// `where(...)` is an ordinary helper value so TS/Deno consumers have a concrete implementation.\n// In the supported soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.\nexport function where<TValue, TResult>(\n arm: (value: TValue) => TResult,\n predicate: (value: TValue) => unknown,\n): (value: TValue) => TResult {\n return (value) => {\n if (!predicate(value)) {\n throw new Error(\n 'where(...) is intended for Match(...) guard arms and should be removed during soundscript expansion.',\n );\n }\n return arm(value);\n };\n}\n\nexport function Match<TArm extends MatchArm<any, any>>(\n _value: unknown,\n _arms: readonly [TArm, ...TArm[]],\n): ReturnType<TArm> {\n throw new Error(\n 'Match(...) is a soundscript macro and should be removed during soundscript expansion.',\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soundscript/soundscript",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -223,11 +223,11 @@
223
223
  "soundscript/**"
224
224
  ],
225
225
  "optionalDependencies": {
226
- "@soundscript/cli-darwin-arm64": "0.1.9",
227
- "@soundscript/cli-darwin-x64": "0.1.9",
228
- "@soundscript/cli-linux-arm64": "0.1.9",
229
- "@soundscript/cli-linux-x64": "0.1.9",
230
- "@soundscript/cli-win32-x64": "0.1.9"
226
+ "@soundscript/cli-darwin-arm64": "0.1.10",
227
+ "@soundscript/cli-darwin-x64": "0.1.10",
228
+ "@soundscript/cli-linux-arm64": "0.1.10",
229
+ "@soundscript/cli-linux-x64": "0.1.10",
230
+ "@soundscript/cli-win32-x64": "0.1.10"
231
231
  },
232
232
  "repository": {
233
233
  "type": "git",
package/result.js CHANGED
@@ -132,7 +132,7 @@ export function resultMonad() {
132
132
  return createResultMonad();
133
133
  }
134
134
  function macroRuntimeError(name) {
135
- throw new Error(`${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`);
135
+ throw new Error(`${name}(...) is a soundscript macro and should be removed during soundscript expansion.`);
136
136
  }
137
137
  export function Try(_value) {
138
138
  return macroRuntimeError('Try');
package/result.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["./soundscript/result.sts"],"names":[],"mappings":"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","sourcesContent":["import { normalizeThrown } from '@soundscript/soundscript/failures';\nimport { type Bind, type Kind, type Kind2, type TypeLambda } from '@soundscript/soundscript/hkt';\nimport { type Applicative, type Functor, type Monad } from '@soundscript/soundscript/typeclasses';\nimport {\n __valueFactory,\n __valueKey,\n __valueReadonly,\n __valueShallowToken,\n} from '@soundscript/soundscript/value';\n\nconst makeOk = __valueFactory<Ok<unknown>, [unknown]>(\n (value) => __valueKey('ok', __valueShallowToken(value)),\n () => Object.create(Ok.prototype) as Ok<unknown>,\n (instance, value) => {\n __valueReadonly(instance, 'tag', 'ok');\n __valueReadonly(instance, 'value', value);\n },\n);\n\nconst makeErr = __valueFactory<Err<unknown>, [unknown]>(\n (error) => __valueKey('err', __valueShallowToken(error)),\n () => Object.create(Err.prototype) as Err<unknown>,\n (instance, error) => {\n __valueReadonly(instance, 'tag', 'err');\n __valueReadonly(instance, 'error', error);\n },\n);\n\nconst makeSome = __valueFactory<Some<unknown>, [unknown]>(\n (value) => __valueKey('some', __valueShallowToken(value)),\n () => Object.create(Some.prototype) as Some<unknown>,\n (instance, value) => {\n __valueReadonly(instance, 'tag', 'some');\n __valueReadonly(instance, 'value', value);\n },\n);\n\nconst makeNone = __valueFactory<None, []>(\n () => __valueKey('none'),\n () => Object.create(None.prototype) as None,\n (instance) => {\n __valueReadonly(instance, 'tag', 'none');\n },\n);\n\n// #[variance(T: out)]\nexport class Ok<T> {\n readonly tag!: 'ok';\n readonly value!: T;\n\n constructor(value: T) {\n return makeOk(value) as Ok<T>;\n }\n}\n\n// #[variance(E: out)]\nexport class Err<E> {\n readonly tag!: 'err';\n readonly error!: E;\n\n constructor(error: E) {\n return makeErr(error) as Err<E>;\n }\n}\n\n// #[variance(T: out, E: out)]\nexport type Result<T, E> = Ok<T> | Err<E>;\n\n// #[variance(T: out)]\nexport class Some<T> {\n readonly tag!: 'some';\n readonly value!: T;\n\n constructor(value: T) {\n return makeSome(value) as Some<T>;\n }\n}\n\nexport class None {\n readonly tag!: 'none';\n\n constructor() {\n return makeNone();\n }\n}\n\n// #[variance(T: out)]\nexport type Option<T> = Some<T> | None;\n\nexport interface OptionF extends TypeLambda {\n readonly type: Option<this['Args'][0]>;\n}\n\nexport interface ResultF extends TypeLambda {\n readonly type: Result<this['Args'][1], this['Args'][0]>;\n}\n\nexport type OptionKind<T> = Kind<OptionF, T>;\nexport type ResultKind<E, T> = Kind2<ResultF, E, T>;\n\nexport function ok<T>(value: T): Result<T, never> {\n return new Ok(value);\n}\n\nexport function err(): Result<never, void>;\nexport function err<E>(error: E): Result<never, E>;\nexport function err<E>(error?: E): Result<never, E | void> {\n return new Err(error);\n}\n\nexport function some<T>(value: T): Option<T> {\n return new Some(value);\n}\n\nexport function none(): Option<never> {\n return new None();\n}\n\nexport function isOk<T, E>(value: Result<T, E>): value is Ok<T> {\n return value instanceof Ok;\n}\n\nexport function isErr<T, E>(value: Result<T, E>): value is Err<E> {\n return value instanceof Err;\n}\n\nexport function isSome<T>(value: Option<T>): value is Some<T> {\n return value instanceof Some;\n}\n\nexport function isNone<T>(value: Option<T>): value is None {\n return value instanceof None;\n}\n\nfunction isPromiseInstance<T>(value: unknown): value is Promise<T> {\n return value instanceof Promise;\n}\n\nexport function resultOf<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;\nexport function resultOf<T, E>(\n fn: () => Promise<T>,\n mapError: (error: Error) => E,\n): Promise<Result<T, E>>;\nexport function resultOf<T>(fn: () => T): Result<T, Error>;\nexport function resultOf<T, E>(fn: () => T, mapError: (error: Error) => E): Result<T, E>;\nexport function resultOf<T, E>(\n fn: () => T | Promise<T>,\n mapError?: (error: Error) => E,\n): Result<T, E | Error> | Promise<Result<T, E | Error>> {\n try {\n const value = fn();\n if (isPromiseInstance<T>(value)) {\n return value.then(\n (resolved) => ok(resolved),\n (error) => {\n const normalized = normalizeThrown(error);\n return err(mapError ? mapError(normalized) : normalized);\n },\n );\n }\n return ok(value);\n } catch (error) {\n const normalized = normalizeThrown(error);\n return err(mapError ? mapError(normalized) : normalized);\n }\n}\n\nfunction mapOption<A, B>(value: Option<A>, f: (value: A) => B): Option<B> {\n return isSome(value) ? some(f(value.value)) : value;\n}\n\nfunction apOption<A, B>(\n fn: Option<(value: A) => B>,\n value: Option<A>,\n): Option<B> {\n if (!isSome(fn)) {\n return fn;\n }\n return isSome(value) ? some(fn.value(value.value)) : value;\n}\n\nfunction flatMapOption<A, B>(value: Option<A>, f: (value: A) => Option<B>): Option<B> {\n return isSome(value) ? f(value.value) : value;\n}\n\nconst optionMonadImpl: Monad<OptionF> = {\n ap: apOption,\n flatMap: flatMapOption,\n map: mapOption,\n pure: some,\n};\n\nexport const optionFunctor: Functor<OptionF> = optionMonadImpl;\nexport const optionApplicative: Applicative<OptionF> = optionMonadImpl;\nexport const optionMonad: Monad<OptionF> = optionMonadImpl;\n\nfunction mapResult<E, A, B>(value: Result<A, E>, f: (value: A) => B): Result<B, E> {\n return isOk(value) ? ok(f(value.value)) : value;\n}\n\nfunction apResult<E, A, B>(\n fn: Result<(value: A) => B, E>,\n value: Result<A, E>,\n): Result<B, E> {\n if (!isOk(fn)) {\n return fn;\n }\n return isOk(value) ? ok(fn.value(value.value)) : value;\n}\n\nfunction flatMapResult<E, A, B>(\n value: Result<A, E>,\n f: (value: A) => Result<B, E>,\n): Result<B, E> {\n return isOk(value) ? f(value.value) : value;\n}\n\nfunction createResultMonad<E>(): Monad<Bind<ResultF, [E]>> {\n return {\n ap: apResult,\n flatMap: flatMapResult,\n map: mapResult,\n pure: ok,\n };\n}\n\nexport function resultFunctor<E>(): Functor<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nexport function resultApplicative<E>(): Applicative<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nexport function resultMonad<E>(): Monad<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nfunction macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,\n );\n}\n\nexport function Try<T, E>(value: Result<T, E>): T;\nexport function Try(_value: unknown): never {\n return macroRuntimeError('Try');\n}\n"]}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["./soundscript/result.sts"],"names":[],"mappings":"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","sourcesContent":["import { normalizeThrown } from '@soundscript/soundscript/failures';\nimport { type Bind, type Kind, type Kind2, type TypeLambda } from '@soundscript/soundscript/hkt';\nimport { type Applicative, type Functor, type Monad } from '@soundscript/soundscript/typeclasses';\nimport {\n __valueFactory,\n __valueKey,\n __valueReadonly,\n __valueShallowToken,\n} from '@soundscript/soundscript/value';\n\nconst makeOk = __valueFactory<Ok<unknown>, [unknown]>(\n (value) => __valueKey('ok', __valueShallowToken(value)),\n () => Object.create(Ok.prototype) as Ok<unknown>,\n (instance, value) => {\n __valueReadonly(instance, 'tag', 'ok');\n __valueReadonly(instance, 'value', value);\n },\n);\n\nconst makeErr = __valueFactory<Err<unknown>, [unknown]>(\n (error) => __valueKey('err', __valueShallowToken(error)),\n () => Object.create(Err.prototype) as Err<unknown>,\n (instance, error) => {\n __valueReadonly(instance, 'tag', 'err');\n __valueReadonly(instance, 'error', error);\n },\n);\n\nconst makeSome = __valueFactory<Some<unknown>, [unknown]>(\n (value) => __valueKey('some', __valueShallowToken(value)),\n () => Object.create(Some.prototype) as Some<unknown>,\n (instance, value) => {\n __valueReadonly(instance, 'tag', 'some');\n __valueReadonly(instance, 'value', value);\n },\n);\n\nconst makeNone = __valueFactory<None, []>(\n () => __valueKey('none'),\n () => Object.create(None.prototype) as None,\n (instance) => {\n __valueReadonly(instance, 'tag', 'none');\n },\n);\n\n// #[variance(T: out)]\nexport class Ok<T> {\n readonly tag!: 'ok';\n readonly value!: T;\n\n constructor(value: T) {\n return makeOk(value) as Ok<T>;\n }\n}\n\n// #[variance(E: out)]\nexport class Err<E> {\n readonly tag!: 'err';\n readonly error!: E;\n\n constructor(error: E) {\n return makeErr(error) as Err<E>;\n }\n}\n\n// #[variance(T: out, E: out)]\nexport type Result<T, E> = Ok<T> | Err<E>;\n\n// #[variance(T: out)]\nexport class Some<T> {\n readonly tag!: 'some';\n readonly value!: T;\n\n constructor(value: T) {\n return makeSome(value) as Some<T>;\n }\n}\n\nexport class None {\n readonly tag!: 'none';\n\n constructor() {\n return makeNone();\n }\n}\n\n// #[variance(T: out)]\nexport type Option<T> = Some<T> | None;\n\nexport interface OptionF extends TypeLambda {\n readonly type: Option<this['Args'][0]>;\n}\n\nexport interface ResultF extends TypeLambda {\n readonly type: Result<this['Args'][1], this['Args'][0]>;\n}\n\nexport type OptionKind<T> = Kind<OptionF, T>;\nexport type ResultKind<E, T> = Kind2<ResultF, E, T>;\n\nexport function ok<T>(value: T): Result<T, never> {\n return new Ok(value);\n}\n\nexport function err(): Result<never, void>;\nexport function err<E>(error: E): Result<never, E>;\nexport function err<E>(error?: E): Result<never, E | void> {\n return new Err(error);\n}\n\nexport function some<T>(value: T): Option<T> {\n return new Some(value);\n}\n\nexport function none(): Option<never> {\n return new None();\n}\n\nexport function isOk<T, E>(value: Result<T, E>): value is Ok<T> {\n return value instanceof Ok;\n}\n\nexport function isErr<T, E>(value: Result<T, E>): value is Err<E> {\n return value instanceof Err;\n}\n\nexport function isSome<T>(value: Option<T>): value is Some<T> {\n return value instanceof Some;\n}\n\nexport function isNone<T>(value: Option<T>): value is None {\n return value instanceof None;\n}\n\nfunction isPromiseInstance<T>(value: unknown): value is Promise<T> {\n return value instanceof Promise;\n}\n\nexport function resultOf<T>(fn: () => Promise<T>): Promise<Result<T, Error>>;\nexport function resultOf<T, E>(\n fn: () => Promise<T>,\n mapError: (error: Error) => E,\n): Promise<Result<T, E>>;\nexport function resultOf<T>(fn: () => T): Result<T, Error>;\nexport function resultOf<T, E>(fn: () => T, mapError: (error: Error) => E): Result<T, E>;\nexport function resultOf<T, E>(\n fn: () => T | Promise<T>,\n mapError?: (error: Error) => E,\n): Result<T, E | Error> | Promise<Result<T, E | Error>> {\n try {\n const value = fn();\n if (isPromiseInstance<T>(value)) {\n return value.then(\n (resolved) => ok(resolved),\n (error) => {\n const normalized = normalizeThrown(error);\n return err(mapError ? mapError(normalized) : normalized);\n },\n );\n }\n return ok(value);\n } catch (error) {\n const normalized = normalizeThrown(error);\n return err(mapError ? mapError(normalized) : normalized);\n }\n}\n\nfunction mapOption<A, B>(value: Option<A>, f: (value: A) => B): Option<B> {\n return isSome(value) ? some(f(value.value)) : value;\n}\n\nfunction apOption<A, B>(\n fn: Option<(value: A) => B>,\n value: Option<A>,\n): Option<B> {\n if (!isSome(fn)) {\n return fn;\n }\n return isSome(value) ? some(fn.value(value.value)) : value;\n}\n\nfunction flatMapOption<A, B>(value: Option<A>, f: (value: A) => Option<B>): Option<B> {\n return isSome(value) ? f(value.value) : value;\n}\n\nconst optionMonadImpl: Monad<OptionF> = {\n ap: apOption,\n flatMap: flatMapOption,\n map: mapOption,\n pure: some,\n};\n\nexport const optionFunctor: Functor<OptionF> = optionMonadImpl;\nexport const optionApplicative: Applicative<OptionF> = optionMonadImpl;\nexport const optionMonad: Monad<OptionF> = optionMonadImpl;\n\nfunction mapResult<E, A, B>(value: Result<A, E>, f: (value: A) => B): Result<B, E> {\n return isOk(value) ? ok(f(value.value)) : value;\n}\n\nfunction apResult<E, A, B>(\n fn: Result<(value: A) => B, E>,\n value: Result<A, E>,\n): Result<B, E> {\n if (!isOk(fn)) {\n return fn;\n }\n return isOk(value) ? ok(fn.value(value.value)) : value;\n}\n\nfunction flatMapResult<E, A, B>(\n value: Result<A, E>,\n f: (value: A) => Result<B, E>,\n): Result<B, E> {\n return isOk(value) ? f(value.value) : value;\n}\n\nfunction createResultMonad<E>(): Monad<Bind<ResultF, [E]>> {\n return {\n ap: apResult,\n flatMap: flatMapResult,\n map: mapResult,\n pure: ok,\n };\n}\n\nexport function resultFunctor<E>(): Functor<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nexport function resultApplicative<E>(): Applicative<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nexport function resultMonad<E>(): Monad<Bind<ResultF, [E]>> {\n return createResultMonad<E>();\n}\n\nfunction macroRuntimeError(name: string): never {\n throw new Error(\n `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,\n );\n}\n\nexport function Try<T, E>(value: Result<T, E>): T;\nexport function Try(_value: unknown): never {\n return macroRuntimeError('Try');\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  function macroRuntimeError(name: string): never {
2
2
  throw new Error(
3
- `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,
3
+ `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,
4
4
  );
5
5
  }
6
6
 
@@ -6,7 +6,7 @@ export { Failure } from '@soundscript/soundscript/failures';
6
6
 
7
7
  function macroRuntimeError(name: string): never {
8
8
  throw new Error(
9
- `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,
9
+ `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,
10
10
  );
11
11
  }
12
12
 
@@ -1,7 +1,7 @@
1
1
  export type MatchArm<TValue = unknown, TResult = unknown> = (value: TValue) => TResult;
2
2
 
3
3
  // `where(...)` is an ordinary helper value so TS/Deno consumers have a concrete implementation.
4
- // In the supported Soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.
4
+ // In the supported soundscript pipeline, `Match(...)` consumes and strips it during macro expansion.
5
5
  export function where<TValue, TResult>(
6
6
  arm: (value: TValue) => TResult,
7
7
  predicate: (value: TValue) => unknown,
@@ -9,7 +9,7 @@ export function where<TValue, TResult>(
9
9
  return (value) => {
10
10
  if (!predicate(value)) {
11
11
  throw new Error(
12
- 'where(...) is intended for Match(...) guard arms and should be removed during Soundscript expansion.',
12
+ 'where(...) is intended for Match(...) guard arms and should be removed during soundscript expansion.',
13
13
  );
14
14
  }
15
15
  return arm(value);
@@ -21,6 +21,6 @@ export function Match<TArm extends MatchArm<any, any>>(
21
21
  _arms: readonly [TArm, ...TArm[]],
22
22
  ): ReturnType<TArm> {
23
23
  throw new Error(
24
- 'Match(...) is a Soundscript macro and should be removed during Soundscript expansion.',
24
+ 'Match(...) is a soundscript macro and should be removed during soundscript expansion.',
25
25
  );
26
26
  }
@@ -238,7 +238,7 @@ export function resultMonad<E>(): Monad<Bind<ResultF, [E]>> {
238
238
 
239
239
  function macroRuntimeError(name: string): never {
240
240
  throw new Error(
241
- `${name}(...) is a Soundscript macro and should be removed during Soundscript expansion.`,
241
+ `${name}(...) is a soundscript macro and should be removed during soundscript expansion.`,
242
242
  );
243
243
  }
244
244