joist-core 2.4.0-next.2 → 2.4.0-next.21
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/build/EntityManager.cjs +25 -11
- package/build/EntityManager.cjs.map +1 -1
- package/build/EntityManager.d.cts +11 -4
- package/build/EntityManager.d.cts.map +1 -1
- package/build/EntityManager.d.mts +11 -4
- package/build/EntityManager.d.mts.map +1 -1
- package/build/EntityManager.js +25 -13
- package/build/EntityManager.js.map +1 -1
- package/build/EntityMetadata.cjs +0 -1
- package/build/EntityMetadata.cjs.map +1 -1
- package/build/EntityMetadata.d.cts +8 -4
- package/build/EntityMetadata.d.cts.map +1 -1
- package/build/EntityMetadata.d.mts +8 -4
- package/build/EntityMetadata.d.mts.map +1 -1
- package/build/EntityMetadata.js +0 -1
- package/build/EntityMetadata.js.map +1 -1
- package/build/IndexManager.cjs +23 -5
- package/build/IndexManager.cjs.map +1 -1
- package/build/IndexManager.d.cts.map +1 -1
- package/build/IndexManager.d.mts.map +1 -1
- package/build/IndexManager.js +23 -5
- package/build/IndexManager.js.map +1 -1
- package/build/batchloaders/populateBatchLoader.cjs +2 -2
- package/build/batchloaders/populateBatchLoader.js +2 -2
- package/build/batchloaders/recursiveChildrenBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveChildrenBatchLoader.js +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveM2mBatchLoader.js +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.cjs +1 -1
- package/build/batchloaders/recursiveParentsBatchLoader.js +1 -1
- package/build/config.cjs +74 -1
- package/build/config.cjs.map +1 -1
- package/build/config.d.cts +83 -2
- package/build/config.d.cts.map +1 -1
- package/build/config.d.mts +83 -2
- package/build/config.d.mts.map +1 -1
- package/build/config.js +74 -1
- package/build/config.js.map +1 -1
- package/build/configure.cjs +6 -2
- package/build/configure.cjs.map +1 -1
- package/build/configure.d.cts.map +1 -1
- package/build/configure.d.mts.map +1 -1
- package/build/configure.js +6 -2
- package/build/configure.js.map +1 -1
- package/build/dataloaders/findDataLoader.cjs +1 -1
- package/build/dataloaders/findDataLoader.js +1 -1
- package/build/dataloaders/findOrCreateDataLoader.cjs +6 -2
- package/build/dataloaders/findOrCreateDataLoader.cjs.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.cts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.d.mts.map +1 -1
- package/build/dataloaders/findOrCreateDataLoader.js +7 -3
- package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
- package/build/dataloaders/findPaginatedDataLoader.cjs +1 -1
- package/build/dataloaders/findPaginatedDataLoader.js +1 -1
- package/build/defaults.cjs +2 -2
- package/build/defaults.js +2 -2
- package/build/fields.cjs +1 -0
- package/build/fields.cjs.map +1 -1
- package/build/fields.d.cts.map +1 -1
- package/build/fields.d.mts.map +1 -1
- package/build/fields.js +1 -0
- package/build/fields.js.map +1 -1
- package/build/index.cjs +13 -8
- package/build/index.cjs.map +1 -1
- package/build/index.d.cts +4 -3
- package/build/index.d.cts.map +1 -1
- package/build/index.d.mts +4 -3
- package/build/index.d.mts.map +1 -1
- package/build/index.js +13 -10
- package/build/index.js.map +1 -1
- package/build/json.cjs +3 -3
- package/build/json.js +3 -3
- package/build/loading/loadHints.cjs +1 -1
- package/build/loading/loadHints.js +1 -1
- package/build/loading/withLoaded.cjs +2 -2
- package/build/loading/withLoaded.js +2 -2
- package/build/newTestInstance.cjs +1 -0
- package/build/newTestInstance.cjs.map +1 -1
- package/build/newTestInstance.d.cts.map +1 -1
- package/build/newTestInstance.d.mts.map +1 -1
- package/build/newTestInstance.js +1 -0
- package/build/newTestInstance.js.map +1 -1
- package/build/preloading/partitionHint.cjs +1 -1
- package/build/preloading/partitionHint.js +1 -1
- package/build/queries/sql/execute.cjs +68 -89
- package/build/queries/sql/execute.cjs.map +1 -1
- package/build/queries/sql/execute.d.cts +35 -18
- package/build/queries/sql/execute.d.cts.map +1 -1
- package/build/queries/sql/execute.d.mts +35 -18
- package/build/queries/sql/execute.d.mts.map +1 -1
- package/build/queries/sql/execute.js +70 -91
- package/build/queries/sql/execute.js.map +1 -1
- package/build/queries/sql/query.cjs +77 -30
- package/build/queries/sql/query.cjs.map +1 -1
- package/build/queries/sql/query.d.cts +64 -21
- package/build/queries/sql/query.d.cts.map +1 -1
- package/build/queries/sql/query.d.mts +64 -21
- package/build/queries/sql/query.d.mts.map +1 -1
- package/build/queries/sql/query.js +75 -30
- package/build/queries/sql/query.js.map +1 -1
- package/build/reactivity/ReactionsManager.cjs +168 -2
- package/build/reactivity/ReactionsManager.cjs.map +1 -1
- package/build/reactivity/ReactionsManager.d.cts +54 -1
- package/build/reactivity/ReactionsManager.d.cts.map +1 -1
- package/build/reactivity/ReactionsManager.d.mts +54 -1
- package/build/reactivity/ReactionsManager.d.mts.map +1 -1
- package/build/reactivity/ReactionsManager.js +169 -3
- package/build/reactivity/ReactionsManager.js.map +1 -1
- package/build/reactivity/reactiveHints.cjs +3 -3
- package/build/reactivity/reactiveHints.cjs.map +1 -1
- package/build/reactivity/reactiveHints.d.cts.map +1 -1
- package/build/reactivity/reactiveHints.d.mts.map +1 -1
- package/build/reactivity/reactiveHints.js +3 -3
- package/build/reactivity/reactiveHints.js.map +1 -1
- package/build/relations/AsyncReactiveField.cjs +3 -3
- package/build/relations/AsyncReactiveField.js +3 -3
- package/build/relations/LazyField.cjs +14 -0
- package/build/relations/LazyField.cjs.map +1 -1
- package/build/relations/LazyField.d.cts +6 -0
- package/build/relations/LazyField.d.cts.map +1 -1
- package/build/relations/LazyField.d.mts +6 -0
- package/build/relations/LazyField.d.mts.map +1 -1
- package/build/relations/LazyField.js +14 -0
- package/build/relations/LazyField.js.map +1 -1
- package/build/relations/ReactiveField.cjs +2 -2
- package/build/relations/ReactiveField.js +2 -2
- package/build/relations/ReactiveManyToMany.cjs +1 -1
- package/build/relations/ReactiveManyToMany.js +1 -1
- package/build/relations/ReactiveReference.cjs +1 -1
- package/build/relations/ReactiveReference.js +1 -1
- package/build/relations/RecursiveCollection.cjs +3 -3
- package/build/relations/RecursiveCollection.js +3 -3
- package/build/relations/hasProperty.cjs +2 -2
- package/build/relations/hasProperty.js +2 -2
- package/build/relations/index.cjs +5 -5
- package/build/relations/index.js +5 -5
- package/build/resurrection.cjs +11 -1
- package/build/resurrection.cjs.map +1 -1
- package/build/resurrection.d.cts +4 -1
- package/build/resurrection.d.cts.map +1 -1
- package/build/resurrection.d.mts +4 -1
- package/build/resurrection.d.mts.map +1 -1
- package/build/resurrection.js +11 -2
- package/build/resurrection.js.map +1 -1
- package/build/transitions.cjs +89 -0
- package/build/transitions.cjs.map +1 -0
- package/build/transitions.d.cts +110 -0
- package/build/transitions.d.cts.map +1 -0
- package/build/transitions.d.mts +110 -0
- package/build/transitions.d.mts.map +1 -0
- package/build/transitions.js +84 -0
- package/build/transitions.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.d.mts","names":[],"sources":["../src/transitions.ts"],"mappings":";;;;;;;;;;UAUiB,qBAAqB;EACpC,OAAO,aAAa;EACpB,KAAK,aAAa;;;;;;;UAQH,kBAAkB,WAAW,qBAAqB;;;;;;;EAOjE;;EAEA;;;KAIU,gBAAgB,UAAU,eAAe,QAAQ,OAAO,YAAY;;;;;;;UAQ/D,WAAW;EAC1B,MAAM;EACN,IAAI;;;cAIO;;UAGI;EACf;EACA;;;UAIe,sBAAsB,UAAU,SAAS;EACxD,OAAO;EACP,IAAI,QAAQ,GAAG,MAAM,iBAAiB,aAAa;;;UAIpC,yBAAyB,UAAU,SAAS,QAAQ;EACnE;EACA,OAAO;EACP,IAAI,QAAQ,GAAG,KAAK,GAAG,MAAM,iBAAiB;;;UAI/B,uBAAuB,UAAU,SAAS,QAAQ;;EAEjE,QAAQ;EACR,QAAQ,sBAAsB;EAC9B,WAAW,yBAAyB,GAAG;;;UAIxB;;EAEf;;EAEA;;EAEA;;;UAIe;EACf,SAAS;EACT,IAAI,QAAQ,QAAQ,MAAM,iBAAiB,aAAa;;;UAIzC;EACf;EACA;EACA,SAAS;EACT,IAAI,QAAQ,QAAQ,cAAc,MAAM,iBAAiB;;;UAI1C;;EAEf,QAAQ;EACR,QAAQ;EACR,WAAW;;;iBAIG,aAAa,MAAM,iBAAiB;;;;;;iBASpC,sBAAsB,MAAM,iBAAiB,YAAY;;iBAoBzD,kBAAkB,SAAS,mBAAmB,MAAM;;iBAUpD,cAAc,MAAM,gBAAgB,mBAAmB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { fail } from "./utils.js";
|
|
2
|
+
import { getBaseAndSelfMetas } from "./EntityMetadata.js";
|
|
3
|
+
//#region src/transitions.ts
|
|
4
|
+
/** The "from" state of a just-created entity, because `undefined` can be a real field value. */
|
|
5
|
+
const created = Symbol("created");
|
|
6
|
+
/** Converts an internal step to the `Transition` that guards and reactions receive. */
|
|
7
|
+
function toTransition(step) {
|
|
8
|
+
return {
|
|
9
|
+
from: step.from === created ? void 0 : step.from,
|
|
10
|
+
to: step.to
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Merges the transition config of `meta` and its base types by field, converting accessors to codes.
|
|
15
|
+
*
|
|
16
|
+
* This runs after boot, because the config is written before the enum metadata exists.
|
|
17
|
+
*/
|
|
18
|
+
function buildFieldTransitions(meta) {
|
|
19
|
+
const byField = /* @__PURE__ */ new Map();
|
|
20
|
+
for (const m of getBaseAndSelfMetas(meta)) for (const [fieldName, config] of Object.entries(m.config.__data.transitions)) {
|
|
21
|
+
let merged = byField.get(fieldName);
|
|
22
|
+
if (!merged) byField.set(fieldName, merged = {
|
|
23
|
+
tables: [],
|
|
24
|
+
guards: [],
|
|
25
|
+
callbacks: []
|
|
26
|
+
});
|
|
27
|
+
if (config.table) merged.tables.push(toCodesTable(meta, fieldName, config.table));
|
|
28
|
+
for (const { match, run } of config.guards) merged.guards.push({
|
|
29
|
+
matcher: toMatcher(meta, fieldName, match),
|
|
30
|
+
run
|
|
31
|
+
});
|
|
32
|
+
for (const { name, match, run } of config.callbacks) {
|
|
33
|
+
const matcher = toMatcher(meta, fieldName, match);
|
|
34
|
+
merged.callbacks.push({
|
|
35
|
+
name,
|
|
36
|
+
phase: match.phase ?? "flush",
|
|
37
|
+
matcher,
|
|
38
|
+
run
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return byField;
|
|
43
|
+
}
|
|
44
|
+
/** Returns whether `step` matches `matcher`'s `from`, `to`, and `onCreate` settings. */
|
|
45
|
+
function matchesTransition(matcher, step) {
|
|
46
|
+
if (step.from === created) {
|
|
47
|
+
if (!matcher.onCreate) return false;
|
|
48
|
+
} else if (matcher.from && !matcher.from.includes(step.from)) return false;
|
|
49
|
+
return !matcher.to || matcher.to.includes(step.to);
|
|
50
|
+
}
|
|
51
|
+
/** Uses the enum's display name in error messages when there is one, i.e. `Approved` instead of `APPROVED`. */
|
|
52
|
+
function describeValue(meta, fieldName, value) {
|
|
53
|
+
if (value === void 0) return "unset";
|
|
54
|
+
const field = meta.allFields[fieldName];
|
|
55
|
+
return field?.kind === "enum" ? field.enumDetailType.getByCode(value)?.name ?? String(value) : String(value);
|
|
56
|
+
}
|
|
57
|
+
/** Converts a `transitions` table's keys and values to codes, so it can be compared to field values. */
|
|
58
|
+
function toCodesTable(meta, fieldName, table) {
|
|
59
|
+
return new Map(Object.entries(table).map(([from, tos]) => [accessorToCode(meta, fieldName, from), toCodes(meta, fieldName, tos ?? [])]));
|
|
60
|
+
}
|
|
61
|
+
/** Converts a `match`'s accessors to codes. */
|
|
62
|
+
function toMatcher(meta, fieldName, match) {
|
|
63
|
+
return {
|
|
64
|
+
from: toCodes(meta, fieldName, match.from),
|
|
65
|
+
to: toCodes(meta, fieldName, match.to),
|
|
66
|
+
onCreate: match.onCreate !== false && match.from === void 0
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Converts an enum accessor, i.e. `Rejected`, to its code, i.e. `REJECTED`, and fails on anything else. */
|
|
70
|
+
function accessorToCode(meta, fieldName, value) {
|
|
71
|
+
const field = meta.allFields[fieldName];
|
|
72
|
+
if (field?.kind !== "enum") fail(`${meta.type}.${fieldName} is not an enum field, so it can't have transitions`);
|
|
73
|
+
if (typeof value !== "string" || !Object.hasOwn(field.enumType, value)) fail(`Unknown ${meta.type}.${fieldName} accessor ${String(value)}, i.e. use "Draft" for AuthorStatus.Draft`);
|
|
74
|
+
return field.enumType[value];
|
|
75
|
+
}
|
|
76
|
+
/** Converts one or more enum accessors to an array of codes, preserving an omitted match. */
|
|
77
|
+
function toCodes(meta, fieldName, values) {
|
|
78
|
+
if (values === void 0) return void 0;
|
|
79
|
+
return typeof values === "string" ? [accessorToCode(meta, fieldName, values)] : values.map((v) => accessorToCode(meta, fieldName, v));
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { buildFieldTransitions, created, describeValue, matchesTransition, toTransition };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","names":[],"sources":["../src/transitions.ts"],"sourcesContent":["import type { Entity } from \"src/Entity.ts\";\nimport { type EntityMetadata, getBaseAndSelfMetas } from \"src/EntityMetadata.ts\";\nimport type { ValidationRuleResult } from \"src/rules.ts\";\nimport { type MaybePromise, fail } from \"src/utils.ts\";\n\n/**\n * Which state transitions of an enum field a `guardTransition` cares about.\n *\n * Omitting `from` or `to` matches any state. Guards never run on creation.\n */\nexport interface GuardTransitionMatch<V> {\n from?: V | readonly V[];\n to?: V | readonly V[];\n}\n\n/**\n * Which state transitions of an enum field an `onTransition` callback handles.\n *\n * Creating an entity with a matching `to` state also matches, unless `from` is set or `onCreate` is `false`.\n */\nexport interface OnTransitionMatch<V> extends GuardTransitionMatch<V> {\n /**\n * Whether `onTransition` fires when an entity is created with a matching `to` state, defaults to `true`.\n *\n * Entering a state by creation usually needs the same side effects as entering it by a transition, and\n * forgetting them is easy to miss. Set `false` for reactions that only make sense for a transition.\n */\n onCreate?: boolean;\n /** `commit` runs in `beforeCommit`, i.e. to enqueue jobs; `flush` (the default) runs as a reaction. */\n phase?: \"flush\" | \"commit\";\n}\n\n/** Maps each state to the states it may transition to, i.e. `{ Draft: [\"Open\"], Open: [\"Closed\"] }`. */\nexport type TransitionTable<V extends PropertyKey> = Partial<Record<V, readonly V[]>>;\n\n/**\n * The transition a guard or reaction is handling, i.e. `{ from: \"DRAFT\", to: \"OPEN\" }`.\n *\n * Guards and callbacks run during reaction passes, after the assignment, so the entity may already be in a\n * later state. This tells them which transition they're handling. `from` is `undefined` for creation.\n */\nexport interface Transition<V> {\n from: V | undefined;\n to: V;\n}\n\n/** The \"from\" state of a just-created entity, because `undefined` can be a real field value. */\nexport const created: unique symbol = Symbol(\"created\");\n\n/** A single recorded transition of a field, with `from` as `created` for creation. */\nexport interface TransitionStep {\n from: unknown;\n to: unknown;\n}\n\n/** A `guardTransition` as registered in config, with its `match` still using accessors. */\nexport interface TransitionGuardConfig<T extends Entity = Entity> {\n match: GuardTransitionMatch<string>;\n run(entity: T, step: TransitionStep): MaybePromise<ValidationRuleResult>;\n}\n\n/** An `onTransition` as registered in config, with its `match` still using accessors. */\nexport interface TransitionCallbackConfig<T extends Entity = Entity, C = unknown> {\n name: string;\n match: OnTransitionMatch<string>;\n run(entity: T, ctx: C, step: TransitionStep): MaybePromise<unknown>;\n}\n\n/** One field's `transitions`, `guardTransition`, and `onTransition` config on a single entity type. */\nexport interface FieldTransitionsConfig<T extends Entity = Entity, C = unknown> {\n /** The `transitions` table, if any; subtypes add their own tables on their own configs. */\n table?: TransitionTable<string>;\n guards: TransitionGuardConfig<T>[];\n callbacks: TransitionCallbackConfig<T, C>[];\n}\n\n/** A `match` with accessors converted to codes, so it can be compared to recorded steps. */\nexport interface TransitionMatcher {\n /** The allowed previous states, or `undefined` for any state. */\n from: readonly unknown[] | undefined;\n /** The allowed new states, or `undefined` for any state. */\n to: readonly unknown[] | undefined;\n /** Whether creation matches, which is never true when `from` is set. */\n onCreate: boolean;\n}\n\n/** A guard with its `match` converted to codes. */\nexport interface TransitionGuard {\n matcher: TransitionMatcher;\n run(entity: Entity, step: TransitionStep): MaybePromise<ValidationRuleResult>;\n}\n\n/** A callback with its `match` converted to codes, dispatched only after its transition's guards pass. */\nexport interface TransitionCallback {\n name: string;\n phase: \"flush\" | \"commit\";\n matcher: TransitionMatcher;\n run(entity: Entity, ctx: unknown, step: TransitionStep): MaybePromise<unknown>;\n}\n\n/** One field's transition config from an entity type and its base types, with accessors converted to codes. */\nexport interface FieldTransitions {\n /** Each table maps a `from` code to its allowed `to` codes; every table must allow a change. */\n tables: ReadonlyMap<unknown, readonly unknown[]>[];\n guards: TransitionGuard[];\n callbacks: TransitionCallback[];\n}\n\n/** Converts an internal step to the `Transition` that guards and reactions receive. */\nexport function toTransition(step: TransitionStep): Transition<any> {\n return { from: step.from === created ? undefined : step.from, to: step.to };\n}\n\n/**\n * Merges the transition config of `meta` and its base types by field, converting accessors to codes.\n *\n * This runs after boot, because the config is written before the enum metadata exists.\n */\nexport function buildFieldTransitions(meta: EntityMetadata): Map<string, FieldTransitions> {\n const byField = new Map<string, FieldTransitions>();\n for (const m of getBaseAndSelfMetas(meta)) {\n for (const [fieldName, config] of Object.entries(m.config.__data.transitions)) {\n let merged = byField.get(fieldName);\n if (!merged) byField.set(fieldName, (merged = { tables: [], guards: [], callbacks: [] }));\n if (config.table) merged.tables.push(toCodesTable(meta, fieldName, config.table));\n for (const { match, run } of config.guards) {\n merged.guards.push({ matcher: toMatcher(meta, fieldName, match), run });\n }\n for (const { name, match, run } of config.callbacks) {\n const matcher = toMatcher(meta, fieldName, match);\n merged.callbacks.push({ name, phase: match.phase ?? \"flush\", matcher, run });\n }\n }\n }\n return byField;\n}\n\n/** Returns whether `step` matches `matcher`'s `from`, `to`, and `onCreate` settings. */\nexport function matchesTransition(matcher: TransitionMatcher, step: TransitionStep): boolean {\n if (step.from === created) {\n if (!matcher.onCreate) return false;\n } else if (matcher.from && !matcher.from.includes(step.from)) {\n return false;\n }\n return !matcher.to || matcher.to.includes(step.to);\n}\n\n/** Uses the enum's display name in error messages when there is one, i.e. `Approved` instead of `APPROVED`. */\nexport function describeValue(meta: EntityMetadata, fieldName: string, value: unknown): string {\n if (value === undefined) return \"unset\";\n const field = meta.allFields[fieldName];\n return field?.kind === \"enum\" ? (field.enumDetailType.getByCode(value)?.name ?? String(value)) : String(value);\n}\n\n/** Converts a `transitions` table's keys and values to codes, so it can be compared to field values. */\nfunction toCodesTable(\n meta: EntityMetadata,\n fieldName: string,\n table: TransitionTable<string>,\n): Map<unknown, readonly unknown[]> {\n return new Map(\n Object.entries(table).map(([from, tos]) => [\n accessorToCode(meta, fieldName, from),\n toCodes(meta, fieldName, tos ?? [])!,\n ]),\n );\n}\n\n/** Converts a `match`'s accessors to codes. */\nfunction toMatcher(meta: EntityMetadata, fieldName: string, match: OnTransitionMatch<string>): TransitionMatcher {\n return {\n from: toCodes(meta, fieldName, match.from),\n to: toCodes(meta, fieldName, match.to),\n // `from` describes a previous state, which a new entity doesn't have\n onCreate: match.onCreate !== false && match.from === undefined,\n };\n}\n\n/** Converts an enum accessor, i.e. `Rejected`, to its code, i.e. `REJECTED`, and fails on anything else. */\nfunction accessorToCode(meta: EntityMetadata, fieldName: string, value: unknown): unknown {\n const field = meta.allFields[fieldName];\n if (field?.kind !== \"enum\") fail(`${meta.type}.${fieldName} is not an enum field, so it can't have transitions`);\n // Only accessors are accepted, even from untyped callers, so every table reads the same way\n if (typeof value !== \"string\" || !Object.hasOwn(field.enumType, value)) {\n fail(`Unknown ${meta.type}.${fieldName} accessor ${String(value)}, i.e. use \"Draft\" for AuthorStatus.Draft`);\n }\n return field.enumType[value];\n}\n\n/** Converts one or more enum accessors to an array of codes, preserving an omitted match. */\nfunction toCodes(\n meta: EntityMetadata,\n fieldName: string,\n values: string | readonly string[] | undefined,\n): unknown[] | undefined {\n if (values === undefined) return undefined;\n return typeof values === \"string\"\n ? [accessorToCode(meta, fieldName, values)]\n : values.map((v) => accessorToCode(meta, fieldName, v));\n}\n"],"mappings":";;;;AA+CA,MAAa,UAAyB,OAAO,SAAS;;AA8DtD,SAAgB,aAAa,MAAuC;CAClE,OAAO;EAAE,MAAM,KAAK,SAAS,UAAU,KAAA,IAAY,KAAK;EAAM,IAAI,KAAK;CAAG;AAC5E;;;;;;AAOA,SAAgB,sBAAsB,MAAqD;CACzF,MAAM,0BAAU,IAAI,IAA8B;CAClD,KAAK,MAAM,KAAK,oBAAoB,IAAI,GACtC,KAAK,MAAM,CAAC,WAAW,WAAW,OAAO,QAAQ,EAAE,OAAO,OAAO,WAAW,GAAG;EAC7E,IAAI,SAAS,QAAQ,IAAI,SAAS;EAClC,IAAI,CAAC,QAAQ,QAAQ,IAAI,WAAY,SAAS;GAAE,QAAQ,CAAC;GAAG,QAAQ,CAAC;GAAG,WAAW,CAAC;EAAE,CAAE;EACxF,IAAI,OAAO,OAAO,OAAO,OAAO,KAAK,aAAa,MAAM,WAAW,OAAO,KAAK,CAAC;EAChF,KAAK,MAAM,EAAE,OAAO,SAAS,OAAO,QAClC,OAAO,OAAO,KAAK;GAAE,SAAS,UAAU,MAAM,WAAW,KAAK;GAAG;EAAI,CAAC;EAExE,KAAK,MAAM,EAAE,MAAM,OAAO,SAAS,OAAO,WAAW;GACnD,MAAM,UAAU,UAAU,MAAM,WAAW,KAAK;GAChD,OAAO,UAAU,KAAK;IAAE;IAAM,OAAO,MAAM,SAAS;IAAS;IAAS;GAAI,CAAC;EAC7E;CACF;CAEF,OAAO;AACT;;AAGA,SAAgB,kBAAkB,SAA4B,MAA+B;CAC3F,IAAI,KAAK,SAAS,SACZ;MAAA,CAAC,QAAQ,UAAU,OAAO;CAAA,OACzB,IAAI,QAAQ,QAAQ,CAAC,QAAQ,KAAK,SAAS,KAAK,IAAI,GACzD,OAAO;CAET,OAAO,CAAC,QAAQ,MAAM,QAAQ,GAAG,SAAS,KAAK,EAAE;AACnD;;AAGA,SAAgB,cAAc,MAAsB,WAAmB,OAAwB;CAC7F,IAAI,UAAU,KAAA,GAAW,OAAO;CAChC,MAAM,QAAQ,KAAK,UAAU;CAC7B,OAAO,OAAO,SAAS,SAAU,MAAM,eAAe,UAAU,KAAK,CAAC,EAAE,QAAQ,OAAO,KAAK,IAAK,OAAO,KAAK;AAC/G;;AAGA,SAAS,aACP,MACA,WACA,OACkC;CAClC,OAAO,IAAI,IACT,OAAO,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,SAAS,CACzC,eAAe,MAAM,WAAW,IAAI,GACpC,QAAQ,MAAM,WAAW,OAAO,CAAC,CAAC,CACpC,CAAC,CACH;AACF;;AAGA,SAAS,UAAU,MAAsB,WAAmB,OAAqD;CAC/G,OAAO;EACL,MAAM,QAAQ,MAAM,WAAW,MAAM,IAAI;EACzC,IAAI,QAAQ,MAAM,WAAW,MAAM,EAAE;EAErC,UAAU,MAAM,aAAa,SAAS,MAAM,SAAS,KAAA;CACvD;AACF;;AAGA,SAAS,eAAe,MAAsB,WAAmB,OAAyB;CACxF,MAAM,QAAQ,KAAK,UAAU;CAC7B,IAAI,OAAO,SAAS,QAAQ,KAAK,GAAG,KAAK,KAAK,GAAG,UAAU,oDAAoD;CAE/G,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,OAAO,MAAM,UAAU,KAAK,GACnE,KAAK,WAAW,KAAK,KAAK,GAAG,UAAU,YAAY,OAAO,KAAK,EAAE,0CAA0C;CAE7G,OAAO,MAAM,SAAS;AACxB;;AAGA,SAAS,QACP,MACA,WACA,QACuB;CACvB,IAAI,WAAW,KAAA,GAAW,OAAO,KAAA;CACjC,OAAO,OAAO,WAAW,WACrB,CAAC,eAAe,MAAM,WAAW,MAAM,CAAC,IACxC,OAAO,KAAK,MAAM,eAAe,MAAM,WAAW,CAAC,CAAC;AAC1D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-core",
|
|
3
|
-
"version": "2.4.0-next.
|
|
3
|
+
"version": "2.4.0-next.21",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"build"
|
|
43
43
|
],
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"joist-utils": "2.4.0-next.
|
|
45
|
+
"joist-utils": "2.4.0-next.21"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"ansis": "^4.3.1",
|