@ember-data/model 5.4.0-alpha.143 → 5.4.0-alpha.145

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 +1 @@
1
- {"version":3,"file":"migration-support.js","sources":["../src/migration-support.ts"],"sourcesContent":["import type Store from '@ember-data/store';\nimport { recordIdentifierFor } from '@ember-data/store';\nimport type { SchemaService } from '@ember-data/store/types';\nimport { ENABLE_LEGACY_SCHEMA_SERVICE } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableRecordIdentifier } from '@warp-drive/core-types';\nimport { getOrSetGlobal } from '@warp-drive/core-types/-private';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\nimport type { TypedRecordInstance } from '@warp-drive/core-types/record';\nimport type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n FieldSchema,\n GenericField,\n HashField,\n ObjectField,\n ResourceSchema,\n} from '@warp-drive/core-types/schema/fields';\nimport { Type } from '@warp-drive/core-types/symbols';\nimport type { WithPartial } from '@warp-drive/core-types/utils';\n\nimport { Errors } from './-private';\nimport type { MinimalLegacyRecord } from './-private/model-methods';\nimport {\n belongsTo,\n changedAttributes,\n createSnapshot,\n deleteRecord,\n destroyRecord,\n hasMany,\n reload,\n rollbackAttributes,\n save,\n serialize,\n unloadRecord,\n} from './-private/model-methods';\nimport RecordState from './-private/record-state';\nimport { buildSchema } from './hooks';\n\nexport type WithLegacyDerivations<T extends TypedRecordInstance> = T &\n MinimalLegacyRecord & {\n belongsTo: typeof belongsTo;\n hasMany: typeof hasMany;\n };\n\ntype AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;\ntype RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;\n\n// 'isDestroying', 'isDestroyed'\nconst LegacyFields = [\n '_createSnapshot',\n 'adapterError',\n 'belongsTo',\n 'changedAttributes',\n 'constructor',\n 'currentState',\n 'deleteRecord',\n 'destroyRecord',\n 'dirtyType',\n 'errors',\n 'hasDirtyAttributes',\n 'hasMany',\n 'isDeleted',\n 'isEmpty',\n 'isError',\n 'isLoaded',\n 'isLoading',\n 'isNew',\n 'isSaving',\n 'isValid',\n 'reload',\n 'rollbackAttributes',\n 'save',\n 'serialize',\n 'unloadRecord',\n];\n\nconst LegacySupport = getOrSetGlobal('LegacySupport', new WeakMap<MinimalLegacyRecord, Record<string, unknown>>());\n\nfunction legacySupport(record: MinimalLegacyRecord, options: ObjectValue | null, prop: string): unknown {\n let state = LegacySupport.get(record);\n if (!state) {\n state = {};\n LegacySupport.set(record, state);\n }\n\n switch (prop) {\n case '_createSnapshot':\n return createSnapshot;\n case 'adapterError':\n return record.currentState.adapterError;\n case 'belongsTo':\n return belongsTo;\n case 'changedAttributes':\n return changedAttributes;\n case 'constructor':\n return (state._constructor = state._constructor || {\n isModel: true,\n name: `Record<${recordIdentifierFor(record).type}>`,\n modelName: recordIdentifierFor(record).type,\n });\n case 'currentState':\n return (state.recordState = state.recordState || new RecordState(record));\n case 'deleteRecord':\n return deleteRecord;\n case 'destroyRecord':\n return destroyRecord;\n case 'dirtyType':\n return record.currentState.dirtyType;\n case 'errors':\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return (state.errors = state.errors || Errors.create({ __record: record }));\n case 'hasDirtyAttributes':\n return record.currentState.isDirty;\n case 'hasMany':\n return hasMany;\n case 'isDeleted':\n return record.currentState.isDeleted;\n case 'isEmpty':\n return record.currentState.isEmpty;\n case 'isError':\n return record.currentState.isError;\n case 'isLoaded':\n return record.currentState.isLoaded;\n case 'isLoading':\n return record.currentState.isLoading;\n case 'isNew':\n return record.currentState.isNew;\n case 'isSaving':\n return record.currentState.isSaving;\n case 'isValid':\n return record.currentState.isValid;\n case 'reload':\n return reload;\n case 'rollbackAttributes':\n return rollbackAttributes;\n case 'save':\n return save;\n case 'serialize':\n return serialize;\n case 'unloadRecord':\n return unloadRecord;\n default:\n assert(`${prop} is not a supported legacy field`, false);\n }\n}\nlegacySupport[Type] = '@legacy';\n\nexport function withDefaults(schema: WithPartial<ResourceSchema, 'legacy' | 'identity'>): ResourceSchema {\n schema.legacy = true;\n schema.identity = { kind: '@id', name: 'id' };\n\n LegacyFields.forEach((field) => {\n schema.fields.push({\n type: '@legacy',\n name: field,\n kind: 'derived',\n });\n });\n schema.fields.push({\n name: 'isReloading',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n schema.fields.push({\n name: 'isDestroying',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n schema.fields.push({\n name: 'isDestroyed',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n return schema as ResourceSchema;\n}\n\nexport function registerDerivations(schema: SchemaService) {\n schema.registerDerivation(legacySupport);\n}\n\nexport interface DelegatingSchemaService {\n attributesDefinitionFor?(resource: StableRecordIdentifier | { type: string }): AttributesSchema;\n relationshipsDefinitionFor?(resource: StableRecordIdentifier | { type: string }): RelationshipsSchema;\n doesTypeExist?(type: string): boolean;\n}\nexport class DelegatingSchemaService implements SchemaService {\n _preferred!: SchemaService;\n _secondary!: SchemaService;\n\n constructor(store: Store, schema: SchemaService) {\n this._preferred = schema;\n this._secondary = buildSchema(store);\n }\n hasResource(resource: StableRecordIdentifier | { type: string }): boolean {\n return this._preferred.hasResource(resource) || this._secondary.hasResource(resource);\n }\n hasTrait(type: string): boolean {\n if (this._preferred.hasResource({ type })) {\n return this._preferred.hasTrait(type);\n }\n return this._secondary.hasTrait(type);\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.resourceHasTrait(resource, trait);\n }\n return this._secondary.resourceHasTrait(resource, trait);\n }\n fields(resource: StableRecordIdentifier | { type: string }): Map<string, FieldSchema> {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.fields(resource);\n }\n return this._secondary.fields(resource);\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n return this._preferred.transformation(field);\n }\n hashFn(field: HashField | { type: string }): HashFn {\n return this._preferred.hashFn(field);\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n return this._preferred.derivation(field);\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.resource(resource);\n }\n return this._secondary.resource(resource);\n }\n registerResources(schemas: ResourceSchema[]): void {\n this._preferred.registerResources(schemas);\n }\n registerResource(schema: ResourceSchema): void {\n this._preferred.registerResource(schema);\n }\n registerTransformation(transform: Transformation): void {\n this._preferred.registerTransformation(transform);\n }\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n this._preferred.registerDerivation(derivation);\n }\n registerHashFn(hashFn: HashFn): void {\n this._preferred.registerHashFn(hashFn);\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n DelegatingSchemaService.prototype.attributesDefinitionFor = function (\n resource: StableRecordIdentifier | { type: string }\n ) {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.attributesDefinitionFor!(resource);\n }\n\n return this._secondary.attributesDefinitionFor!(resource);\n };\n DelegatingSchemaService.prototype.relationshipsDefinitionFor = function (\n resource: StableRecordIdentifier | { type: string }\n ) {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.relationshipsDefinitionFor!(resource);\n }\n\n return this._secondary.relationshipsDefinitionFor!(resource);\n };\n DelegatingSchemaService.prototype.doesTypeExist = function (type: string) {\n return this._preferred.doesTypeExist?.(type) || this._secondary.doesTypeExist?.(type) || false;\n };\n}\n"],"names":["LegacyFields","LegacySupport","getOrSetGlobal","WeakMap","legacySupport","record","options","prop","state","get","set","createSnapshot","currentState","adapterError","belongsTo","changedAttributes","_constructor","isModel","name","recordIdentifierFor","type","modelName","recordState","RecordState","deleteRecord","destroyRecord","dirtyType","errors","Errors","create","__record","isDirty","hasMany","isDeleted","isEmpty","isError","isLoaded","isLoading","isNew","isSaving","isValid","reload","rollbackAttributes","save","serialize","unloadRecord","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","Type","withDefaults","schema","legacy","identity","kind","forEach","field","fields","push","defaultValue","registerDerivations","registerDerivation","DelegatingSchemaService","_preferred","_secondary","constructor","store","buildSchema","hasResource","resource","hasTrait","resourceHasTrait","trait","transformation","hashFn","derivation","registerResources","schemas","registerResource","registerTransformation","transform","registerHashFn","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","attributesDefinitionFor","relationshipsDefinitionFor","doesTypeExist"],"mappings":"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"}
1
+ {"version":3,"file":"migration-support.js","sources":["../src/migration-support.ts"],"sourcesContent":["import type Store from '@ember-data/store';\nimport { recordIdentifierFor } from '@ember-data/store';\nimport type { SchemaService } from '@ember-data/store/types';\nimport { ENABLE_LEGACY_SCHEMA_SERVICE } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { StableRecordIdentifier } from '@warp-drive/core-types';\nimport { getOrSetGlobal } from '@warp-drive/core-types/-private';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\nimport type { TypedRecordInstance } from '@warp-drive/core-types/record';\nimport type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n FieldSchema,\n GenericField,\n HashField,\n ObjectField,\n ObjectSchema,\n ResourceSchema,\n} from '@warp-drive/core-types/schema/fields';\nimport { Type } from '@warp-drive/core-types/symbols';\nimport type { WithPartial } from '@warp-drive/core-types/utils';\n\nimport { Errors } from './-private';\nimport type { MinimalLegacyRecord } from './-private/model-methods';\nimport {\n belongsTo,\n changedAttributes,\n createSnapshot,\n deleteRecord,\n destroyRecord,\n hasMany,\n reload,\n rollbackAttributes,\n save,\n serialize,\n unloadRecord,\n} from './-private/model-methods';\nimport RecordState from './-private/record-state';\nimport { buildSchema } from './hooks';\n\nexport type WithLegacyDerivations<T extends TypedRecordInstance> = T &\n MinimalLegacyRecord & {\n belongsTo: typeof belongsTo;\n hasMany: typeof hasMany;\n };\n\ntype AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;\ntype RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;\n\n// 'isDestroying', 'isDestroyed'\nconst LegacyFields = [\n '_createSnapshot',\n 'adapterError',\n 'belongsTo',\n 'changedAttributes',\n 'constructor',\n 'currentState',\n 'deleteRecord',\n 'destroyRecord',\n 'dirtyType',\n 'errors',\n 'hasDirtyAttributes',\n 'hasMany',\n 'isDeleted',\n 'isEmpty',\n 'isError',\n 'isLoaded',\n 'isLoading',\n 'isNew',\n 'isSaving',\n 'isValid',\n 'reload',\n 'rollbackAttributes',\n 'save',\n 'serialize',\n 'unloadRecord',\n];\n\nconst LegacySupport = getOrSetGlobal('LegacySupport', new WeakMap<MinimalLegacyRecord, Record<string, unknown>>());\n\nfunction legacySupport(record: MinimalLegacyRecord, options: ObjectValue | null, prop: string): unknown {\n let state = LegacySupport.get(record);\n if (!state) {\n state = {};\n LegacySupport.set(record, state);\n }\n\n switch (prop) {\n case '_createSnapshot':\n return createSnapshot;\n case 'adapterError':\n return record.currentState.adapterError;\n case 'belongsTo':\n return belongsTo;\n case 'changedAttributes':\n return changedAttributes;\n case 'constructor':\n return (state._constructor = state._constructor || {\n isModel: true,\n name: `Record<${recordIdentifierFor(record).type}>`,\n modelName: recordIdentifierFor(record).type,\n });\n case 'currentState':\n return (state.recordState = state.recordState || new RecordState(record));\n case 'deleteRecord':\n return deleteRecord;\n case 'destroyRecord':\n return destroyRecord;\n case 'dirtyType':\n return record.currentState.dirtyType;\n case 'errors':\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n return (state.errors = state.errors || Errors.create({ __record: record }));\n case 'hasDirtyAttributes':\n return record.currentState.isDirty;\n case 'hasMany':\n return hasMany;\n case 'isDeleted':\n return record.currentState.isDeleted;\n case 'isEmpty':\n return record.currentState.isEmpty;\n case 'isError':\n return record.currentState.isError;\n case 'isLoaded':\n return record.currentState.isLoaded;\n case 'isLoading':\n return record.currentState.isLoading;\n case 'isNew':\n return record.currentState.isNew;\n case 'isSaving':\n return record.currentState.isSaving;\n case 'isValid':\n return record.currentState.isValid;\n case 'reload':\n return reload;\n case 'rollbackAttributes':\n return rollbackAttributes;\n case 'save':\n return save;\n case 'serialize':\n return serialize;\n case 'unloadRecord':\n return unloadRecord;\n default:\n assert(`${prop} is not a supported legacy field`, false);\n }\n}\nlegacySupport[Type] = '@legacy';\n\nexport function withDefaults(schema: WithPartial<ResourceSchema, 'legacy' | 'identity'>): ResourceSchema {\n schema.legacy = true;\n schema.identity = { kind: '@id', name: 'id' };\n\n LegacyFields.forEach((field) => {\n schema.fields.push({\n type: '@legacy',\n name: field,\n kind: 'derived',\n });\n });\n schema.fields.push({\n name: 'isReloading',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n schema.fields.push({\n name: 'isDestroying',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n schema.fields.push({\n name: 'isDestroyed',\n kind: '@local',\n type: 'boolean',\n options: { defaultValue: false },\n });\n return schema as ResourceSchema;\n}\n\nexport function registerDerivations(schema: SchemaService) {\n schema.registerDerivation(legacySupport);\n}\n\nexport interface DelegatingSchemaService {\n attributesDefinitionFor?(resource: StableRecordIdentifier | { type: string }): AttributesSchema;\n relationshipsDefinitionFor?(resource: StableRecordIdentifier | { type: string }): RelationshipsSchema;\n doesTypeExist?(type: string): boolean;\n}\nexport class DelegatingSchemaService implements SchemaService {\n _preferred!: SchemaService;\n _secondary!: SchemaService;\n\n constructor(store: Store, schema: SchemaService) {\n this._preferred = schema;\n this._secondary = buildSchema(store);\n }\n hasResource(resource: StableRecordIdentifier | { type: string }): boolean {\n return this._preferred.hasResource(resource) || this._secondary.hasResource(resource);\n }\n hasTrait(type: string): boolean {\n if (this._preferred.hasResource({ type })) {\n return this._preferred.hasTrait(type);\n }\n return this._secondary.hasTrait(type);\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.resourceHasTrait(resource, trait);\n }\n return this._secondary.resourceHasTrait(resource, trait);\n }\n fields(resource: StableRecordIdentifier | { type: string }): Map<string, FieldSchema> {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.fields(resource);\n }\n return this._secondary.fields(resource);\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n return this._preferred.transformation(field);\n }\n hashFn(field: HashField | { type: string }): HashFn {\n return this._preferred.hashFn(field);\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n return this._preferred.derivation(field);\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema | ObjectSchema {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.resource(resource);\n }\n return this._secondary.resource(resource);\n }\n registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void {\n this._preferred.registerResources(schemas);\n }\n registerResource(schema: ResourceSchema | ObjectSchema): void {\n this._preferred.registerResource(schema);\n }\n registerTransformation(transform: Transformation): void {\n this._preferred.registerTransformation(transform);\n }\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n this._preferred.registerDerivation(derivation);\n }\n registerHashFn(hashFn: HashFn): void {\n this._preferred.registerHashFn(hashFn);\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n DelegatingSchemaService.prototype.attributesDefinitionFor = function (\n resource: StableRecordIdentifier | { type: string }\n ) {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.attributesDefinitionFor!(resource);\n }\n\n return this._secondary.attributesDefinitionFor!(resource);\n };\n DelegatingSchemaService.prototype.relationshipsDefinitionFor = function (\n resource: StableRecordIdentifier | { type: string }\n ) {\n if (this._preferred.hasResource(resource)) {\n return this._preferred.relationshipsDefinitionFor!(resource);\n }\n\n return this._secondary.relationshipsDefinitionFor!(resource);\n };\n DelegatingSchemaService.prototype.doesTypeExist = function (type: string) {\n return this._preferred.doesTypeExist?.(type) || this._secondary.doesTypeExist?.(type) || false;\n };\n}\n"],"names":["LegacyFields","LegacySupport","getOrSetGlobal","WeakMap","legacySupport","record","options","prop","state","get","set","createSnapshot","currentState","adapterError","belongsTo","changedAttributes","_constructor","isModel","name","recordIdentifierFor","type","modelName","recordState","RecordState","deleteRecord","destroyRecord","dirtyType","errors","Errors","create","__record","isDirty","hasMany","isDeleted","isEmpty","isError","isLoaded","isLoading","isNew","isSaving","isValid","reload","rollbackAttributes","save","serialize","unloadRecord","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","Type","withDefaults","schema","legacy","identity","kind","forEach","field","fields","push","defaultValue","registerDerivations","registerDerivation","DelegatingSchemaService","_preferred","_secondary","constructor","store","buildSchema","hasResource","resource","hasTrait","resourceHasTrait","trait","transformation","hashFn","derivation","registerResources","schemas","registerResource","registerTransformation","transform","registerHashFn","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","attributesDefinitionFor","relationshipsDefinitionFor","doesTypeExist"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-provider-D_VKN7Wh.js","sources":["../src/-private/model-for-mixin.ts","../src/-private/schema-provider.ts"],"sourcesContent":["import { getOwner } from '@ember/application';\n\nimport type Store from '@ember-data/store';\n\nimport { Model, type ModelFactory } from './model';\n\n/*\n In case someone defined a relationship to a mixin, for example:\n ```ts\n class CommentModel extends Model {\n @belongsTo('commentable', { polymorphic: true }) owner;\n }\n\n let Commentable = Mixin.create({\n @hasMany('comment') comments;\n });\n ```\n we want to look up a Commentable class which has all the necessary\n relationship meta data. Thus, we look up the mixin and create a mock\n Model, so we can access the relationship CPs of the mixin (`comments`)\n in this case\n */\nexport default function modelForMixin(store: Store, normalizedModelName: string): ModelFactory | undefined {\n const owner = getOwner(store)!;\n const MaybeMixin = owner.factoryFor(`mixin:${normalizedModelName}`);\n const mixin = MaybeMixin && MaybeMixin.class;\n if (mixin) {\n const ModelForMixin = Model.extend(mixin) as unknown as { __isMixin: boolean; __mixin: typeof mixin };\n ModelForMixin.__isMixin = true;\n ModelForMixin.__mixin = mixin;\n //Cache the class as a model\n owner.register(`model:${normalizedModelName}`, ModelForMixin);\n }\n return owner.factoryFor(`model:${normalizedModelName}`) as ModelFactory | undefined;\n}\n","import { getOwner } from '@ember/application';\nimport { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport type { SchemaService } from '@ember-data/store/types';\nimport { ENABLE_LEGACY_SCHEMA_SERVICE } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { RecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\nimport type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n GenericField,\n HashField,\n LegacyAttributeField,\n LegacyFieldSchema,\n LegacyRelationshipSchema,\n ObjectField,\n ResourceSchema,\n} from '@warp-drive/core-types/schema/fields';\n\nimport type { FactoryCache, Model, ModelFactory, ModelStore } from './model';\nimport _modelForMixin from './model-for-mixin';\nimport { normalizeModelName } from './util';\n\ntype AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;\ntype RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;\n\ntype InternalSchema = {\n schema: ResourceSchema;\n fields: Map<string, LegacyAttributeField | LegacyRelationshipSchema>;\n attributes: Record<string, LegacyAttributeField>;\n relationships: Record<string, LegacyRelationshipSchema>;\n};\n\nexport interface ModelSchemaProvider {\n attributesDefinitionFor(resource: RecordIdentifier | { type: string }): AttributesSchema;\n\n relationshipsDefinitionFor(resource: RecordIdentifier | { type: string }): RelationshipsSchema;\n\n doesTypeExist(type: string): boolean;\n}\nexport class ModelSchemaProvider implements SchemaService {\n declare store: ModelStore;\n declare _schemas: Map<string, InternalSchema>;\n declare _typeMisses: Set<string>;\n\n constructor(store: ModelStore) {\n this.store = store;\n this._schemas = new Map();\n this._typeMisses = new Set();\n }\n\n hasTrait(type: string): boolean {\n assert(`hasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n assert(`resourceHasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n assert(`transformation is not available with @ember-data/model's SchemaService`);\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n assert(`derivation is not available with @ember-data/model's SchemaService`);\n }\n hashFn(field: HashField | { type: string }): HashFn {\n assert(`hashFn is not available with @ember-data/model's SchemaService`);\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.schema;\n }\n registerResources(schemas: ResourceSchema[]): void {\n assert(`registerResources is not available with @ember-data/model's SchemaService`);\n }\n registerResource(schema: ResourceSchema): void {\n assert(`registerResource is not available with @ember-data/model's SchemaService`);\n }\n registerTransformation(transform: Transformation): void {\n assert(`registerTransformation is not available with @ember-data/model's SchemaService`);\n }\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n assert(`registerDerivation is not available with @ember-data/model's SchemaService`);\n }\n registerHashFn(hashFn: HashFn): void {\n assert(`registerHashFn is not available with @ember-data/model's SchemaService`);\n }\n _loadModelSchema(type: string) {\n const modelClass = this.store.modelFor(type) as typeof Model;\n const attributeMap = modelClass.attributes;\n\n const attributes = Object.create(null) as AttributesSchema;\n attributeMap.forEach((meta, name) => (attributes[name] = meta));\n const relationships = modelClass.relationshipsObject || null;\n const fields = new Map<string, LegacyAttributeField | LegacyRelationshipSchema>();\n\n for (const attr of Object.values(attributes)) {\n fields.set(attr.name, attr);\n }\n\n for (const rel of Object.values(relationships)) {\n fields.set(rel.name, rel);\n }\n\n const schema: ResourceSchema = {\n legacy: true,\n identity: { name: 'id', kind: '@id' },\n type,\n fields: Array.from(fields.values()),\n };\n\n const internalSchema: InternalSchema = {\n schema,\n attributes,\n relationships,\n fields,\n };\n\n this._schemas.set(type, internalSchema);\n\n return internalSchema;\n }\n\n fields(resource: RecordIdentifier | { type: string }): Map<string, LegacyFieldSchema> {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.fields;\n }\n\n hasResource(resource: { type: string }): boolean {\n const type = normalizeModelName(resource.type);\n\n if (this._schemas.has(type)) {\n return true;\n }\n\n if (this._typeMisses.has(type)) {\n return false;\n }\n\n const factory = getModelFactory(this.store, type);\n const exists = factory !== null;\n\n if (!exists) {\n this._typeMisses.add(type);\n return false;\n }\n\n return true;\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n ModelSchemaProvider.prototype.doesTypeExist = function (type: string): boolean {\n deprecate(`Use \\`schema.hasResource({ type })\\` instead of \\`schema.doesTypeExist(type)\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n return this.hasResource({ type });\n };\n\n ModelSchemaProvider.prototype.attributesDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): AttributesSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.attributesDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.attributes;\n };\n\n ModelSchemaProvider.prototype.relationshipsDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): RelationshipsSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.relationshipsDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.relationships;\n };\n}\n\nexport function buildSchema(store: Store): SchemaService {\n return new ModelSchemaProvider(store as ModelStore);\n}\n\nexport function getModelFactory(store: ModelStore, type: string): ModelFactory | null {\n if (!store._modelFactoryCache) {\n store._modelFactoryCache = Object.create(null) as FactoryCache;\n }\n const cache = store._modelFactoryCache;\n let factory: ModelFactory | undefined = cache[type];\n\n if (!factory) {\n const owner = getOwner(store)!;\n factory = owner.factoryFor(`model:${type}`) as ModelFactory | undefined;\n\n if (!factory) {\n //Support looking up mixins as base types for polymorphic relationships\n factory = _modelForMixin(store, type);\n }\n\n if (!factory) {\n // we don't cache misses in case someone wants to register a missing model\n return null;\n }\n\n const klass = factory.class;\n\n if (klass.isModel) {\n const hasOwnModelNameSet = klass.modelName && Object.prototype.hasOwnProperty.call(klass, 'modelName');\n if (!hasOwnModelNameSet) {\n Object.defineProperty(klass, 'modelName', { value: type });\n }\n }\n\n cache[type] = factory;\n }\n\n return factory;\n}\n"],"names":["modelForMixin","store","normalizedModelName","owner","getOwner","MaybeMixin","factoryFor","mixin","class","ModelForMixin","Model","extend","__isMixin","__mixin","register","ModelSchemaProvider","constructor","_schemas","Map","_typeMisses","Set","hasTrait","type","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","resourceHasTrait","resource","trait","transformation","field","derivation","hashFn","normalizeModelName","has","_loadModelSchema","get","schema","registerResources","schemas","registerResource","registerTransformation","transform","registerDerivation","registerHashFn","modelClass","modelFor","attributeMap","attributes","Object","create","forEach","meta","name","relationships","relationshipsObject","fields","attr","values","set","rel","legacy","identity","kind","Array","from","internalSchema","hasResource","factory","getModelFactory","exists","add","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","doesTypeExist","deprecate","id","until","for","since","available","enabled","attributesDefinitionFor","relationshipsDefinitionFor","buildSchema","_modelFactoryCache","cache","_modelForMixin","klass","isModel","hasOwnModelNameSet","modelName","hasOwnProperty","call","defineProperty","value"],"mappings":"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"}
1
+ {"version":3,"file":"schema-provider-D_VKN7Wh.js","sources":["../src/-private/model-for-mixin.ts","../src/-private/schema-provider.ts"],"sourcesContent":["import { getOwner } from '@ember/application';\n\nimport type Store from '@ember-data/store';\n\nimport { Model, type ModelFactory } from './model';\n\n/*\n In case someone defined a relationship to a mixin, for example:\n ```ts\n class CommentModel extends Model {\n @belongsTo('commentable', { polymorphic: true }) owner;\n }\n\n let Commentable = Mixin.create({\n @hasMany('comment') comments;\n });\n ```\n we want to look up a Commentable class which has all the necessary\n relationship meta data. Thus, we look up the mixin and create a mock\n Model, so we can access the relationship CPs of the mixin (`comments`)\n in this case\n */\nexport default function modelForMixin(store: Store, normalizedModelName: string): ModelFactory | undefined {\n const owner = getOwner(store)!;\n const MaybeMixin = owner.factoryFor(`mixin:${normalizedModelName}`);\n const mixin = MaybeMixin && MaybeMixin.class;\n if (mixin) {\n const ModelForMixin = Model.extend(mixin) as unknown as { __isMixin: boolean; __mixin: typeof mixin };\n ModelForMixin.__isMixin = true;\n ModelForMixin.__mixin = mixin;\n //Cache the class as a model\n owner.register(`model:${normalizedModelName}`, ModelForMixin);\n }\n return owner.factoryFor(`model:${normalizedModelName}`) as ModelFactory | undefined;\n}\n","import { getOwner } from '@ember/application';\nimport { deprecate } from '@ember/debug';\n\nimport type Store from '@ember-data/store';\nimport type { SchemaService } from '@ember-data/store/types';\nimport { ENABLE_LEGACY_SCHEMA_SERVICE } from '@warp-drive/build-config/deprecations';\nimport { assert } from '@warp-drive/build-config/macros';\nimport type { RecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';\nimport type { ObjectValue } from '@warp-drive/core-types/json/raw';\nimport type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n GenericField,\n HashField,\n LegacyAttributeField,\n LegacyFieldSchema,\n LegacyRelationshipSchema,\n ObjectField,\n ObjectSchema,\n ResourceSchema,\n} from '@warp-drive/core-types/schema/fields';\n\nimport type { FactoryCache, Model, ModelFactory, ModelStore } from './model';\nimport _modelForMixin from './model-for-mixin';\nimport { normalizeModelName } from './util';\n\ntype AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;\ntype RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;\n\ntype InternalSchema = {\n schema: ResourceSchema;\n fields: Map<string, LegacyAttributeField | LegacyRelationshipSchema>;\n attributes: Record<string, LegacyAttributeField>;\n relationships: Record<string, LegacyRelationshipSchema>;\n};\n\nexport interface ModelSchemaProvider {\n attributesDefinitionFor(resource: RecordIdentifier | { type: string }): AttributesSchema;\n\n relationshipsDefinitionFor(resource: RecordIdentifier | { type: string }): RelationshipsSchema;\n\n doesTypeExist(type: string): boolean;\n}\nexport class ModelSchemaProvider implements SchemaService {\n declare store: ModelStore;\n declare _schemas: Map<string, InternalSchema>;\n declare _typeMisses: Set<string>;\n\n constructor(store: ModelStore) {\n this.store = store;\n this._schemas = new Map();\n this._typeMisses = new Set();\n }\n\n hasTrait(type: string): boolean {\n assert(`hasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n assert(`resourceHasTrait is not available with @ember-data/model's SchemaService`);\n return false;\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n assert(`transformation is not available with @ember-data/model's SchemaService`);\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n assert(`derivation is not available with @ember-data/model's SchemaService`);\n }\n hashFn(field: HashField | { type: string }): HashFn {\n assert(`hashFn is not available with @ember-data/model's SchemaService`);\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema | ObjectSchema {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.schema;\n }\n registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void {\n assert(`registerResources is not available with @ember-data/model's SchemaService`);\n }\n registerResource(schema: ResourceSchema | ObjectSchema): void {\n assert(`registerResource is not available with @ember-data/model's SchemaService`);\n }\n registerTransformation(transform: Transformation): void {\n assert(`registerTransformation is not available with @ember-data/model's SchemaService`);\n }\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n assert(`registerDerivation is not available with @ember-data/model's SchemaService`);\n }\n registerHashFn(hashFn: HashFn): void {\n assert(`registerHashFn is not available with @ember-data/model's SchemaService`);\n }\n _loadModelSchema(type: string) {\n const modelClass = this.store.modelFor(type) as typeof Model;\n const attributeMap = modelClass.attributes;\n\n const attributes = Object.create(null) as AttributesSchema;\n attributeMap.forEach((meta, name) => (attributes[name] = meta));\n const relationships = modelClass.relationshipsObject || null;\n const fields = new Map<string, LegacyAttributeField | LegacyRelationshipSchema>();\n\n for (const attr of Object.values(attributes)) {\n fields.set(attr.name, attr);\n }\n\n for (const rel of Object.values(relationships)) {\n fields.set(rel.name, rel);\n }\n\n const schema: ResourceSchema = {\n legacy: true,\n identity: { name: 'id', kind: '@id' },\n type,\n fields: Array.from(fields.values()),\n };\n\n const internalSchema: InternalSchema = {\n schema,\n attributes,\n relationships,\n fields,\n };\n\n this._schemas.set(type, internalSchema);\n\n return internalSchema;\n }\n\n fields(resource: RecordIdentifier | { type: string }): Map<string, LegacyFieldSchema> {\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.fields;\n }\n\n hasResource(resource: { type: string }): boolean {\n const type = normalizeModelName(resource.type);\n\n if (this._schemas.has(type)) {\n return true;\n }\n\n if (this._typeMisses.has(type)) {\n return false;\n }\n\n const factory = getModelFactory(this.store, type);\n const exists = factory !== null;\n\n if (!exists) {\n this._typeMisses.add(type);\n return false;\n }\n\n return true;\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n ModelSchemaProvider.prototype.doesTypeExist = function (type: string): boolean {\n deprecate(`Use \\`schema.hasResource({ type })\\` instead of \\`schema.doesTypeExist(type)\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n return this.hasResource({ type });\n };\n\n ModelSchemaProvider.prototype.attributesDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): AttributesSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.attributesDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.attributes;\n };\n\n ModelSchemaProvider.prototype.relationshipsDefinitionFor = function (\n resource: RecordIdentifier | { type: string }\n ): RelationshipsSchema {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.relationshipsDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '6.0',\n for: 'ember-data',\n since: {\n available: '4.13',\n enabled: '5.4',\n },\n });\n const type = normalizeModelName(resource.type);\n\n if (!this._schemas.has(type)) {\n this._loadModelSchema(type);\n }\n\n return this._schemas.get(type)!.relationships;\n };\n}\n\nexport function buildSchema(store: Store): SchemaService {\n return new ModelSchemaProvider(store as ModelStore);\n}\n\nexport function getModelFactory(store: ModelStore, type: string): ModelFactory | null {\n if (!store._modelFactoryCache) {\n store._modelFactoryCache = Object.create(null) as FactoryCache;\n }\n const cache = store._modelFactoryCache;\n let factory: ModelFactory | undefined = cache[type];\n\n if (!factory) {\n const owner = getOwner(store)!;\n factory = owner.factoryFor(`model:${type}`) as ModelFactory | undefined;\n\n if (!factory) {\n //Support looking up mixins as base types for polymorphic relationships\n factory = _modelForMixin(store, type);\n }\n\n if (!factory) {\n // we don't cache misses in case someone wants to register a missing model\n return null;\n }\n\n const klass = factory.class;\n\n if (klass.isModel) {\n const hasOwnModelNameSet = klass.modelName && Object.prototype.hasOwnProperty.call(klass, 'modelName');\n if (!hasOwnModelNameSet) {\n Object.defineProperty(klass, 'modelName', { value: type });\n }\n }\n\n cache[type] = factory;\n }\n\n return factory;\n}\n"],"names":["modelForMixin","store","normalizedModelName","owner","getOwner","MaybeMixin","factoryFor","mixin","class","ModelForMixin","Model","extend","__isMixin","__mixin","register","ModelSchemaProvider","constructor","_schemas","Map","_typeMisses","Set","hasTrait","type","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","Error","resourceHasTrait","resource","trait","transformation","field","derivation","hashFn","normalizeModelName","has","_loadModelSchema","get","schema","registerResources","schemas","registerResource","registerTransformation","transform","registerDerivation","registerHashFn","modelClass","modelFor","attributeMap","attributes","Object","create","forEach","meta","name","relationships","relationshipsObject","fields","attr","values","set","rel","legacy","identity","kind","Array","from","internalSchema","hasResource","factory","getModelFactory","exists","add","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","doesTypeExist","deprecate","id","until","for","since","available","enabled","attributesDefinitionFor","relationshipsDefinitionFor","buildSchema","_modelFactoryCache","cache","_modelForMixin","klass","isModel","hasOwnModelNameSet","modelName","hasOwnProperty","call","defineProperty","value"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-data/model",
3
- "version": "5.4.0-alpha.143",
3
+ "version": "5.4.0-alpha.145",
4
4
  "description": "A basic Ember implementation of a resource presentation layer for use with @ember-data/store",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -43,13 +43,13 @@
43
43
  },
44
44
  "peerDependencies": {
45
45
  "ember-source": "3.28.12 || ^4.0.4 || ^5.0.0 || ^6.0.0",
46
- "@ember-data/graph": "5.4.0-alpha.143",
47
- "@ember-data/json-api": "5.4.0-alpha.143",
48
- "@ember-data/legacy-compat": "5.4.0-alpha.143",
49
- "@ember-data/store": "5.4.0-alpha.143",
50
- "@ember-data/tracking": "5.4.0-alpha.143",
51
- "@ember-data/request-utils": "5.4.0-alpha.143",
52
- "@warp-drive/core-types": "5.4.0-alpha.143"
46
+ "@ember-data/graph": "5.4.0-alpha.145",
47
+ "@ember-data/json-api": "5.4.0-alpha.145",
48
+ "@ember-data/legacy-compat": "5.4.0-alpha.145",
49
+ "@ember-data/store": "5.4.0-alpha.145",
50
+ "@ember-data/tracking": "5.4.0-alpha.145",
51
+ "@ember-data/request-utils": "5.4.0-alpha.145",
52
+ "@warp-drive/core-types": "5.4.0-alpha.145"
53
53
  },
54
54
  "peerDependenciesMeta": {
55
55
  "@ember-data/json-api": {
@@ -65,24 +65,24 @@
65
65
  "ember-cli-string-utils": "^1.1.0",
66
66
  "ember-cli-test-info": "^1.0.0",
67
67
  "inflection": "~3.0.2",
68
- "@warp-drive/build-config": "5.4.0-alpha.143"
68
+ "@warp-drive/build-config": "5.4.0-alpha.145"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@babel/core": "^7.26.9",
72
72
  "@babel/plugin-transform-typescript": "^7.26.8",
73
73
  "@babel/preset-env": "^7.26.9",
74
74
  "@babel/preset-typescript": "^7.26.0",
75
- "@ember-data/graph": "5.4.0-alpha.143",
76
- "@ember-data/json-api": "5.4.0-alpha.143",
77
- "@ember-data/legacy-compat": "5.4.0-alpha.143",
78
- "@ember-data/request": "5.4.0-alpha.143",
79
- "@ember-data/request-utils": "5.4.0-alpha.143",
80
- "@ember-data/store": "5.4.0-alpha.143",
81
- "@ember-data/tracking": "5.4.0-alpha.143",
75
+ "@ember-data/graph": "5.4.0-alpha.145",
76
+ "@ember-data/json-api": "5.4.0-alpha.145",
77
+ "@ember-data/legacy-compat": "5.4.0-alpha.145",
78
+ "@ember-data/request": "5.4.0-alpha.145",
79
+ "@ember-data/request-utils": "5.4.0-alpha.145",
80
+ "@ember-data/store": "5.4.0-alpha.145",
81
+ "@ember-data/tracking": "5.4.0-alpha.145",
82
82
  "@ember/test-waiters": "^3.1.0",
83
83
  "@glimmer/component": "^1.1.2",
84
- "@warp-drive/core-types": "5.4.0-alpha.143",
85
- "@warp-drive/internal-config": "5.4.0-alpha.143",
84
+ "@warp-drive/core-types": "5.4.0-alpha.145",
85
+ "@warp-drive/internal-config": "5.4.0-alpha.145",
86
86
  "decorator-transforms": "^2.3.0",
87
87
  "ember-source": "~5.12.0",
88
88
  "expect-type": "^1.2.0",
@@ -105,6 +105,7 @@
105
105
  "scripts": {
106
106
  "lint": "eslint . --quiet --cache --cache-strategy=content",
107
107
  "build:pkg": "vite build;",
108
- "sync": "echo \"syncing\""
108
+ "sync": "echo \"syncing\"",
109
+ "start": "vite"
109
110
  }
110
111
  }
@@ -4,7 +4,7 @@ declare module '@ember-data/model/-private/schema-provider' {
4
4
  import type { RecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';
5
5
  import type { ObjectValue } from '@warp-drive/core-types/json/raw';
6
6
  import type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';
7
- import type { ArrayField, DerivedField, GenericField, HashField, LegacyAttributeField, LegacyFieldSchema, LegacyRelationshipSchema, ObjectField, ResourceSchema } from '@warp-drive/core-types/schema/fields';
7
+ import type { ArrayField, DerivedField, GenericField, HashField, LegacyAttributeField, LegacyFieldSchema, LegacyRelationshipSchema, ObjectField, ObjectSchema, ResourceSchema } from '@warp-drive/core-types/schema/fields';
8
8
  import type { ModelFactory, ModelStore } from '@ember-data/model/-private/model';
9
9
  type AttributesSchema = ReturnType<Exclude<SchemaService['attributesDefinitionFor'], undefined>>;
10
10
  type RelationshipsSchema = ReturnType<Exclude<SchemaService['relationshipsDefinitionFor'], undefined>>;
@@ -43,9 +43,9 @@ declare module '@ember-data/model/-private/schema-provider' {
43
43
  }): HashFn;
44
44
  resource(resource: StableRecordIdentifier | {
45
45
  type: string;
46
- }): ResourceSchema;
47
- registerResources(schemas: ResourceSchema[]): void;
48
- registerResource(schema: ResourceSchema): void;
46
+ }): ResourceSchema | ObjectSchema;
47
+ registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
48
+ registerResource(schema: ResourceSchema | ObjectSchema): void;
49
49
  registerTransformation(transform: Transformation): void;
50
50
  registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void;
51
51
  registerHashFn(hashFn: HashFn): void;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-provider.d.ts","sourceRoot":"","sources":["../../src/-private/schema-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-provider.d.ts","sourceRoot":"","sources":["../../src/-private/schema-provider.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAuB,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI7E,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACjG,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEvG,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,wBAAwB,CAAC,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CAAC;IAEzF,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,mBAAmB,CAAC;IAE/F,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC;AACD,qBAAa,mBAAoB,YAAW,aAAa;IAC/C,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAErB,KAAK,EAAE,UAAU;IAM7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7F,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAGjG,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU;IAG9D,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAGnD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAAG,YAAY;IAS5F,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,GAAG,IAAI;IAGtE,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI;IAG7D,sBAAsB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAGvD,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;IAG/F,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAGpC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAoC7B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAUrF,WAAW,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;CAqBjD;AA2DD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAEvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkCpF"}
@@ -5,7 +5,7 @@ declare module '@ember-data/model/migration-support' {
5
5
  import type { ObjectValue } from '@warp-drive/core-types/json/raw';
6
6
  import type { TypedRecordInstance } from '@warp-drive/core-types/record';
7
7
  import type { Derivation, HashFn, Transformation } from '@warp-drive/core-types/schema/concepts';
8
- import type { ArrayField, DerivedField, FieldSchema, GenericField, HashField, ObjectField, ResourceSchema } from '@warp-drive/core-types/schema/fields';
8
+ import type { ArrayField, DerivedField, FieldSchema, GenericField, HashField, ObjectField, ObjectSchema, ResourceSchema } from '@warp-drive/core-types/schema/fields';
9
9
  import type { WithPartial } from '@warp-drive/core-types/utils';
10
10
  import type { MinimalLegacyRecord } from '@ember-data/model/-private/model-methods';
11
11
  import { belongsTo, hasMany } from '@ember-data/model/-private/model-methods';
@@ -51,9 +51,9 @@ declare module '@ember-data/model/migration-support' {
51
51
  }): Derivation;
52
52
  resource(resource: StableRecordIdentifier | {
53
53
  type: string;
54
- }): ResourceSchema;
55
- registerResources(schemas: ResourceSchema[]): void;
56
- registerResource(schema: ResourceSchema): void;
54
+ }): ResourceSchema | ObjectSchema;
55
+ registerResources(schemas: Array<ResourceSchema | ObjectSchema>): void;
56
+ registerResource(schema: ResourceSchema | ObjectSchema): void;
57
57
  registerTransformation(transform: Transformation): void;
58
58
  registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void;
59
59
  registerHashFn(hashFn: HashFn): void;
@@ -1 +1 @@
1
- {"version":3,"file":"migration-support.d.ts","sourceRoot":"","sources":["../src/migration-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-support.d.ts","sourceRoot":"","sources":["../src/migration-support.ts"],"names":[],"mappings":"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"}