velocious 1.0.319 → 1.0.321

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.
@@ -75,6 +75,50 @@ export default class FrontendModelBaseResource extends AuthorizationBaseResource
75
75
  params(): Record<string, any>;
76
76
  /** @returns {import("../configuration-types.js").FrontendModelResourceConfiguration} - Normalized resource config. */
77
77
  resourceConfiguration(): import("../configuration-types.js").FrontendModelResourceConfiguration;
78
+ /**
79
+ * Returns a Rails-strong-params / api_maker-style permit spec declaring
80
+ * which attributes and nested attributes are writable for the current
81
+ * request. Submitting an attribute or nested-relationship key that is
82
+ * not permitted raises an error and fails the write.
83
+ *
84
+ * The returned value is a flat array that mixes:
85
+ * - `"attributeName"` strings for plain attribute writes
86
+ * - `{<relationshipName>Attributes: [...]}` objects where the value
87
+ * is itself a permit spec for the nested relationship
88
+ *
89
+ * This matches Rails strong_params (`permit(:first_name, :last_name,
90
+ * contact_attributes: [:email, details_attributes: [:detail]])`) and
91
+ * the api_maker sister project. Include `"_destroy"` inside a nested
92
+ * permit to allow `_destroy: true` entries for that relationship —
93
+ * the model must also declare `acceptsNestedAttributesFor(name,
94
+ * {allowDestroy: true})` for the destroy to be applied.
95
+ *
96
+ * Example:
97
+ *
98
+ * class ProjectResource extends FrontendModelBaseResource {
99
+ * permittedParams(arg) {
100
+ * return [
101
+ * "name",
102
+ * "description",
103
+ * {tasksAttributes: ["id", "_destroy", "name",
104
+ * {subtasksAttributes: ["id", "_destroy", "name"]}
105
+ * ]}
106
+ * ]
107
+ * }
108
+ * }
109
+ *
110
+ * Default implementation returns `[]` — nothing permitted. Subclasses
111
+ * must override to enable writes. A resource that does not declare
112
+ * `permittedParams` cannot accept any write.
113
+ * @param {{action?: "create" | "update", params?: Record<string, any>, ability?: import("../authorization/ability.js").default, locals?: Record<string, any>}} [arg] - Request context.
114
+ * @returns {Array<string | Record<string, any>>} - Permit spec.
115
+ */
116
+ permittedParams(arg?: {
117
+ action?: "create" | "update";
118
+ params?: Record<string, any>;
119
+ ability?: import("../authorization/ability.js").default;
120
+ locals?: Record<string, any>;
121
+ }): Array<string | Record<string, any>>;
78
122
  /** @returns {string} - Primary key. */
79
123
  primaryKey(): string;
80
124
  /**
@@ -104,9 +148,13 @@ export default class FrontendModelBaseResource extends AuthorizationBaseResource
104
148
  find(action: "find" | "update" | "destroy" | "attach" | "download" | "url", id: string | number): Promise<import("../database/record/index.js").default | null>;
105
149
  /**
106
150
  * @param {Record<string, any>} attributes - Create attributes.
151
+ * @param {{controller?: any, nestedAttributes?: Record<string, any> | null}} [options] - Save options.
107
152
  * @returns {Promise<import("../database/record/index.js").default>} - Created model.
108
153
  */
109
- create(attributes: Record<string, any>): Promise<import("../database/record/index.js").default>;
154
+ create(attributes: Record<string, any>, options?: {
155
+ controller?: any;
156
+ nestedAttributes?: Record<string, any> | null;
157
+ }): Promise<import("../database/record/index.js").default>;
110
158
  /**
111
159
  * @param {import("../database/record/index.js").default} model - Created model.
112
160
  * @returns {Promise<void>} - Cleanup after failed authorization.
@@ -115,9 +163,13 @@ export default class FrontendModelBaseResource extends AuthorizationBaseResource
115
163
  /**
116
164
  * @param {import("../database/record/index.js").default} model - Existing model.
117
165
  * @param {Record<string, any>} attributes - Update attributes.
166
+ * @param {{controller?: any, nestedAttributes?: Record<string, any> | null}} [options] - Save options.
118
167
  * @returns {Promise<import("../database/record/index.js").default>} - Updated model.
119
168
  */
120
- update(model: import("../database/record/index.js").default, attributes: Record<string, any>): Promise<import("../database/record/index.js").default>;
169
+ update(model: import("../database/record/index.js").default, attributes: Record<string, any>, options?: {
170
+ controller?: any;
171
+ nestedAttributes?: Record<string, any> | null;
172
+ }): Promise<import("../database/record/index.js").default>;
121
173
  /**
122
174
  * Assigns attributes to a model, using virtual setters on the resource when available.
123
175
  *
@@ -146,6 +198,110 @@ export default class FrontendModelBaseResource extends AuthorizationBaseResource
146
198
  * @returns {Promise<Record<string, any>>} - Serialized model payload.
147
199
  */
148
200
  serialize(model: import("../database/record/index.js").default, action?: "index" | "find" | "create" | "update"): Promise<Record<string, any>>;
201
+ /**
202
+ * Applies a `nestedAttributes` payload to a freshly-saved parent model,
203
+ * cascading create/update/destroy writes across the declared relationships.
204
+ *
205
+ * Each child is authorized against its own resource's abilities (never the
206
+ * parent's). Destroys run before updates, updates before creates, to avoid
207
+ * unique-constraint conflicts when replacing a child at the same natural key.
208
+ *
209
+ * Attribute filtering for nested children uses the parent resource's
210
+ * permit spec for that relationship — api_maker-style. Policy options
211
+ * (allowDestroy, limit, rejectIf) come from the MODEL's
212
+ * `acceptedNestedAttributesFor(name)` declaration.
213
+ * @param {import("../database/record/index.js").default} parent - Parent model instance.
214
+ * @param {Record<string, any>} nestedAttributes - Nested-attribute payload keyed by relationship name.
215
+ * @param {any} controller - Controller instance for resource resolution and authorization.
216
+ * @param {{attributes: string[], nested: Record<string, any>} | null} [parentPermit] - Parsed parent permit spec.
217
+ * @returns {Promise<void>}
218
+ */
219
+ _applyNestedAttributes(parent: import("../database/record/index.js").default, nestedAttributes: Record<string, any>, controller: any, parentPermit?: {
220
+ attributes: string[];
221
+ nested: Record<string, any>;
222
+ } | null): Promise<void>;
223
+ /**
224
+ * Resolves the ability action for a child resource using the child's own
225
+ * `abilities` mapping — never the parent controller's. This preserves
226
+ * custom mappings like `{update: "manage"}` and catches unmapped actions
227
+ * instead of silently defaulting to the raw action name.
228
+ *
229
+ * @param {import("../configuration-types.js").FrontendModelResourceConfiguration} childResourceConfiguration - Child resource configuration.
230
+ * @param {"create" | "update" | "destroy"} action - Frontend action.
231
+ * @returns {string} - Ability action for the child resource.
232
+ */
233
+ _resolveChildAbilityAction(childResourceConfiguration: import("../configuration-types.js").FrontendModelResourceConfiguration, action: "create" | "update" | "destroy"): string;
234
+ /**
235
+ * Finds an existing child for a nested update/destroy, scoped to the
236
+ * child's own model class, the parent's foreign key, AND the child
237
+ * resource's ability mapping for the requested action. Throws when the
238
+ * child does not exist, does not belong to the current parent, or is
239
+ * not authorized — all of which must roll the transaction back.
240
+ *
241
+ * @param {object} args - Arguments.
242
+ * @param {import("../authorization/ability.js").default | undefined} args.ability - Current ability.
243
+ * @param {"update" | "destroy"} args.action - Frontend action.
244
+ * @param {import("../configuration-types.js").FrontendModelResourceConfiguration} args.childResourceConfiguration - Child resource configuration.
245
+ * @param {string} args.foreignKey - Foreign-key attribute on the child pointing to the parent.
246
+ * @param {string | number} args.id - Child id from the payload.
247
+ * @param {import("../database/record/index.js").default} args.parent - Parent model instance.
248
+ * @param {string} args.relationshipName - Parent's relationship name (for error messages).
249
+ * @param {typeof import("../database/record/index.js").default} args.targetModelClass - Child model class.
250
+ * @returns {Promise<import("../database/record/index.js").default>} - Authorized, parent-linked child model.
251
+ */
252
+ _findScopedChild({ ability, action, childResourceConfiguration, foreignKey, id, parent, relationshipName, targetModelClass }: {
253
+ ability: import("../authorization/ability.js").default | undefined;
254
+ action: "update" | "destroy";
255
+ childResourceConfiguration: import("../configuration-types.js").FrontendModelResourceConfiguration;
256
+ foreignKey: string;
257
+ id: string | number;
258
+ parent: import("../database/record/index.js").default;
259
+ relationshipName: string;
260
+ targetModelClass: typeof import("../database/record/index.js").default;
261
+ }): Promise<import("../database/record/index.js").default>;
262
+ /**
263
+ * Verifies an already-saved nested child is authorized under the child
264
+ * resource's own `create` ability. Rolls back via thrown error when not
265
+ * authorized so the outer transaction destroys the insert.
266
+ *
267
+ * @param {object} args - Arguments.
268
+ * @param {import("../authorization/ability.js").default | undefined} args.ability - Current ability.
269
+ * @param {import("../database/record/index.js").default} args.child - Child model instance just created.
270
+ * @param {import("../configuration-types.js").FrontendModelResourceConfiguration} args.childResourceConfiguration - Child resource configuration.
271
+ * @param {string} args.relationshipName - Parent's relationship name (for error messages).
272
+ * @param {typeof import("../database/record/index.js").default} args.targetModelClass - Child model class.
273
+ * @returns {Promise<void>}
274
+ */
275
+ _authorizeCreatedChild({ ability, child, childResourceConfiguration, relationshipName, targetModelClass }: {
276
+ ability: import("../authorization/ability.js").default | undefined;
277
+ child: import("../database/record/index.js").default;
278
+ childResourceConfiguration: import("../configuration-types.js").FrontendModelResourceConfiguration;
279
+ relationshipName: string;
280
+ targetModelClass: typeof import("../database/record/index.js").default;
281
+ }): Promise<void>;
282
+ /**
283
+ * Best-effort foreign-key inference for relationships that don't declare it.
284
+ *
285
+ * @param {import("../database/record/index.js").default} parent - Parent model.
286
+ * @param {{foreignKey?: string}} definition - Relationship definition.
287
+ * @returns {string} - Foreign-key attribute name.
288
+ */
289
+ _inferForeignKey(parent: import("../database/record/index.js").default, definition: {
290
+ foreignKey?: string;
291
+ }): string;
292
+ /**
293
+ * After nested writes, preload every relationship declared in the
294
+ * parent's permit so the post-save serialize step emits them and the
295
+ * client can reconcile ids.
296
+ *
297
+ * @param {import("../database/record/index.js").default} model - Saved parent model.
298
+ * @param {{attributes: string[], nested: Record<string, any>}} permit - Parsed parent permit.
299
+ * @returns {Promise<void>}
300
+ */
301
+ _preloadNestedWritableRelationships(model: import("../database/record/index.js").default, permit: {
302
+ attributes: string[];
303
+ nested: Record<string, any>;
304
+ }): Promise<void>;
149
305
  }
150
306
  export type FrontendModelResourceControllerArgs = {
151
307
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"base-resource.d.ts","sourceRoot":"","sources":["../../../src/frontend-model-resource/base-resource.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-resource.d.ts","sourceRoot":"","sources":["../../../src/frontend-model-resource/base-resource.js"],"names":[],"mappings":"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"}