@warp-drive/schema-record 0.0.0-beta.8 → 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sources":["../src/schema.ts"],"sourcesContent":["import { deprecate } from '@ember/debug';\n\nimport { recordIdentifierFor } from '@ember-data/store';\nimport type { SchemaService as SchemaServiceInterface } from '@ember-data/store/types';\nimport { createCache, getValue } from '@ember-data/tracking';\nimport type { Signal } from '@ember-data/tracking/-private';\nimport { Signals } from '@ember-data/tracking/-private';\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, Value } from '@warp-drive/core-types/json/raw';\nimport type { Derivation, HashFn } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n FieldSchema,\n GenericField,\n HashField,\n LegacyAttributeField,\n LegacyRelationshipSchema,\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 type { SchemaRecord } from './record';\nimport { Identifier } from './symbols';\n\nconst Support = getOrSetGlobal('Support', new WeakMap<WeakKey, Record<string, unknown>>());\n\nexport const SchemaRecordFields: FieldSchema[] = [\n {\n type: '@constructor',\n name: 'constructor',\n kind: 'derived',\n },\n {\n type: '@identity',\n name: '$type',\n kind: 'derived',\n options: { key: 'type' },\n },\n];\n\nfunction _constructor(record: SchemaRecord) {\n let state = Support.get(record as WeakKey);\n if (!state) {\n state = {};\n Support.set(record as WeakKey, state);\n }\n\n return (state._constructor = state._constructor || {\n name: `SchemaRecord<${recordIdentifierFor(record).type}>`,\n get modelName() {\n throw new Error('Cannot access record.constructor.modelName on non-Legacy Schema Records.');\n },\n });\n}\n_constructor[Type] = '@constructor';\n\nexport function withDefaults(schema: WithPartial<ResourceSchema, 'identity'>): ResourceSchema {\n schema.identity = schema.identity || { name: 'id', kind: '@id' };\n schema.fields.push(...SchemaRecordFields);\n return schema as ResourceSchema;\n}\n\nexport function fromIdentity(record: SchemaRecord, options: { key: 'lid' } | { key: 'type' }, key: string): string;\nexport function fromIdentity(record: SchemaRecord, options: { key: 'id' }, key: string): string | null;\nexport function fromIdentity(record: SchemaRecord, options: { key: '^' }, key: string): StableRecordIdentifier;\nexport function fromIdentity(record: SchemaRecord, options: null, key: string): asserts options;\nexport function fromIdentity(\n record: SchemaRecord,\n options: { key: 'id' | 'lid' | 'type' | '^' } | null,\n key: string\n): StableRecordIdentifier | string | null {\n const identifier = record[Identifier];\n assert(`Cannot compute @identity for a record without an identifier`, identifier);\n assert(\n `Expected to receive a key to compute @identity, but got ${String(options)}`,\n options?.key && ['lid', 'id', 'type', '^'].includes(options.key)\n );\n\n return options.key === '^' ? identifier : identifier[options.key];\n}\nfromIdentity[Type] = '@identity';\n\nexport function registerDerivations(schema: SchemaServiceInterface) {\n schema.registerDerivation(fromIdentity);\n schema.registerDerivation(_constructor);\n}\n\ntype InternalSchema = {\n original: ResourceSchema;\n traits: Set<string>;\n fields: Map<string, FieldSchema>;\n attributes: Record<string, LegacyAttributeField>;\n relationships: Record<string, LegacyRelationshipSchema>;\n};\n\nexport type Transformation<T extends Value = Value, PT = unknown> = {\n serialize(value: PT, options: Record<string, unknown> | null, record: SchemaRecord): T;\n hydrate(value: T | undefined, options: Record<string, unknown> | null, record: SchemaRecord): PT;\n defaultValue?(options: Record<string, unknown> | null, identifier: StableRecordIdentifier): T;\n [Type]: string;\n};\n\n/**\n * Wraps a derivation in a new function with Derivation signature but that looks\n * up the value in the cache before recomputing.\n *\n * @param record\n * @param options\n * @param prop\n */\nfunction makeCachedDerivation<R, T, FM extends ObjectValue | null>(\n derivation: Derivation<R, T, FM>\n): Derivation<R, T, FM> {\n const memoizedDerivation = (record: R, options: FM, prop: string): T => {\n const signals = (record as { [Signals]: Map<string, Signal> })[Signals];\n let signal = signals.get(prop);\n if (!signal) {\n signal = createCache(() => {\n return derivation(record, options, prop);\n }) as unknown as Signal; // a total lie, for convenience of reusing the storage\n signals.set(prop, signal);\n }\n\n return getValue(signal as unknown as ReturnType<typeof createCache>) as T;\n };\n memoizedDerivation[Type] = derivation[Type];\n return memoizedDerivation;\n}\n\nexport interface SchemaService {\n doesTypeExist(type: string): boolean;\n attributesDefinitionFor(identifier: { type: string }): InternalSchema['attributes'];\n relationshipsDefinitionFor(identifier: { type: string }): InternalSchema['relationships'];\n}\nexport class SchemaService implements SchemaServiceInterface {\n declare _schemas: Map<string, InternalSchema>;\n declare _transforms: Map<string, Transformation>;\n declare _hashFns: Map<string, HashFn>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n declare _derivations: Map<string, Derivation<any, any, any>>;\n declare _traits: Set<string>;\n\n constructor() {\n this._schemas = new Map();\n this._transforms = new Map();\n this._hashFns = new Map();\n this._derivations = new Map();\n }\n hasTrait(type: string): boolean {\n return this._traits.has(type);\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n return this._schemas.get(resource.type)!.traits.has(trait);\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `'${kind}' fields cannot be transformed. Only fields of kind 'field' 'object' or 'array' can specify a transformation. Attempted to find '${field.type ?? '<unknown type>'}' on field '${name}'.`,\n !('kind' in field) || ['field', 'object', 'array'].includes(kind)\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a transformation via 'field.type', but none was present`,\n field.type\n );\n assert(\n `No transformation registered with name '${field.type}' for '${kind}' field '${name}'`,\n this._transforms.has(field.type)\n );\n return this._transforms.get(field.type)!;\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `The '${kind}' field '${name}' is not derived and so cannot be used to lookup a derivation`,\n !('kind' in field) || kind === 'derived'\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a derivation via 'field.type', but no value was present`,\n field.type\n );\n assert(\n `No '${field.type}' derivation registered for use by the '${kind}' field '${name}'`,\n this._derivations.has(field.type)\n );\n return this._derivations.get(field.type)!;\n }\n hashFn(field: HashField | { type: string }): HashFn {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `The '${kind}' field '${name}' is not a HashField and so cannot be used to lookup a hash function`,\n !('kind' in field) || kind === '@hash'\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a hash function via 'field.type', but no value was present`,\n field.type\n );\n assert(\n `No '${field.type}' hash function is registered for use by the '${kind}' field '${name}'`,\n this._hashFns.has(field.type)\n );\n return this._hashFns.get(field.type)!;\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema {\n assert(`No resource registered with name '${resource.type}'`, this._schemas.has(resource.type));\n return this._schemas.get(resource.type)!.original;\n }\n registerResources(schemas: ResourceSchema[]): void {\n schemas.forEach((schema) => {\n this.registerResource(schema);\n });\n }\n registerResource(schema: ResourceSchema): void {\n const fields = new Map<string, FieldSchema>();\n const relationships: Record<string, LegacyRelationshipSchema> = {};\n const attributes: Record<string, LegacyAttributeField> = {};\n\n schema.fields.forEach((field) => {\n assert(\n `${field.kind} is not valid inside a ResourceSchema's fields.`,\n // @ts-expect-error we are checking for mistakes at runtime\n field.kind !== '@id' && field.kind !== '@hash'\n );\n fields.set(field.name, field);\n if (field.kind === 'attribute') {\n attributes[field.name] = field;\n } else if (field.kind === 'belongsTo' || field.kind === 'hasMany') {\n relationships[field.name] = field;\n }\n });\n\n const traits = new Set<string>(schema.traits);\n traits.forEach((trait) => {\n this._traits.add(trait);\n });\n\n const internalSchema: InternalSchema = { original: schema, fields, relationships, attributes, traits };\n this._schemas.set(schema.type, internalSchema);\n }\n\n registerTransformation<T extends Value = string, PT = unknown>(transformation: Transformation<T, PT>): void {\n this._transforms.set(transformation[Type], transformation as Transformation);\n }\n\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n this._derivations.set(derivation[Type], makeCachedDerivation(derivation));\n }\n\n registerHashFn<T extends object>(hashFn: HashFn<T>): void {\n this._hashFns.set(hashFn[Type], hashFn as HashFn);\n }\n\n fields({ type }: { type: string }): InternalSchema['fields'] {\n const schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.fields;\n }\n\n hasResource(resource: { type: string }): boolean {\n return this._schemas.has(resource.type);\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n SchemaService.prototype.attributesDefinitionFor = function ({\n type,\n }: {\n type: string;\n }): InternalSchema['attributes'] {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.attributesDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n const schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.attributes;\n };\n\n SchemaService.prototype.relationshipsDefinitionFor = function ({\n type,\n }: {\n type: string;\n }): InternalSchema['relationships'] {\n deprecate(`Use \\`schema.fields({ type })\\` instead of \\`schema.relationshipsDefinitionFor({ type })\\``, false, {\n id: 'ember-data:schema-service-updates',\n until: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n const schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.relationships;\n };\n\n SchemaService.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: '5.0',\n for: 'ember-data',\n since: {\n available: '5.4',\n enabled: '5.4',\n },\n });\n return this._schemas.has(type);\n };\n}\n"],"names":["Support","getOrSetGlobal","WeakMap","SchemaRecordFields","type","name","kind","options","key","_constructor","record","state","get","set","recordIdentifierFor","modelName","Error","Type","withDefaults","schema","identity","fields","push","fromIdentity","identifier","Identifier","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","String","includes","registerDerivations","registerDerivation","makeCachedDerivation","derivation","memoizedDerivation","prop","signals","Signals","signal","createCache","getValue","SchemaService","constructor","_schemas","Map","_transforms","_hashFns","_derivations","hasTrait","_traits","has","resourceHasTrait","resource","trait","traits","transformation","field","hashFn","original","registerResources","schemas","forEach","registerResource","relationships","attributes","Set","add","internalSchema","registerTransformation","registerHashFn","hasResource","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","attributesDefinitionFor","deprecate","id","until","for","since","available","enabled","relationshipsDefinitionFor","doesTypeExist"],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sources":["../src/schema.ts"],"sourcesContent":["import { deprecate } from '@ember/debug';\n\nimport { recordIdentifierFor } from '@ember-data/store';\nimport type { SchemaService as SchemaServiceInterface } from '@ember-data/store/types';\nimport { createCache, getValue } from '@ember-data/tracking';\nimport type { Signal } from '@ember-data/tracking/-private';\nimport { Signals } from '@ember-data/tracking/-private';\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, Value } from '@warp-drive/core-types/json/raw';\nimport type { Derivation, HashFn } from '@warp-drive/core-types/schema/concepts';\nimport type {\n ArrayField,\n DerivedField,\n FieldSchema,\n GenericField,\n HashField,\n LegacyAttributeField,\n LegacyRelationshipSchema,\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 type { SchemaRecord } from './record';\nimport { Identifier } from './symbols';\n\nconst Support = getOrSetGlobal('Support', new WeakMap<WeakKey, Record<string, unknown>>());\n\nexport const SchemaRecordFields: FieldSchema[] = [\n {\n type: '@constructor',\n name: 'constructor',\n kind: 'derived',\n },\n {\n type: '@identity',\n name: '$type',\n kind: 'derived',\n options: { key: 'type' },\n },\n];\n\nfunction _constructor(record: SchemaRecord) {\n let state = Support.get(record as WeakKey);\n if (!state) {\n state = {};\n Support.set(record as WeakKey, state);\n }\n\n return (state._constructor = state._constructor || {\n name: `SchemaRecord<${recordIdentifierFor(record).type}>`,\n get modelName() {\n throw new Error('Cannot access record.constructor.modelName on non-Legacy Schema Records.');\n },\n });\n}\n_constructor[Type] = '@constructor';\n\nexport function withDefaults(schema: WithPartial<ResourceSchema, 'identity'>): ResourceSchema {\n schema.identity = schema.identity || { name: 'id', kind: '@id' };\n schema.fields.push(...SchemaRecordFields);\n return schema as ResourceSchema;\n}\n\nexport function fromIdentity(record: SchemaRecord, options: { key: 'lid' } | { key: 'type' }, key: string): string;\nexport function fromIdentity(record: SchemaRecord, options: { key: 'id' }, key: string): string | null;\nexport function fromIdentity(record: SchemaRecord, options: { key: '^' }, key: string): StableRecordIdentifier;\nexport function fromIdentity(record: SchemaRecord, options: null, key: string): asserts options;\nexport function fromIdentity(\n record: SchemaRecord,\n options: { key: 'id' | 'lid' | 'type' | '^' } | null,\n key: string\n): StableRecordIdentifier | string | null {\n const identifier = record[Identifier];\n assert(`Cannot compute @identity for a record without an identifier`, identifier);\n assert(\n `Expected to receive a key to compute @identity, but got ${String(options)}`,\n options?.key && ['lid', 'id', 'type', '^'].includes(options.key)\n );\n\n return options.key === '^' ? identifier : identifier[options.key];\n}\nfromIdentity[Type] = '@identity';\n\nexport function registerDerivations(schema: SchemaServiceInterface) {\n schema.registerDerivation(fromIdentity);\n schema.registerDerivation(_constructor);\n}\n\ntype InternalSchema = {\n original: ResourceSchema;\n traits: Set<string>;\n fields: Map<string, FieldSchema>;\n attributes: Record<string, LegacyAttributeField>;\n relationships: Record<string, LegacyRelationshipSchema>;\n};\n\nexport type Transformation<T extends Value = Value, PT = unknown> = {\n serialize(value: PT, options: Record<string, unknown> | null, record: SchemaRecord): T;\n hydrate(value: T | undefined, options: Record<string, unknown> | null, record: SchemaRecord): PT;\n defaultValue?(options: Record<string, unknown> | null, identifier: StableRecordIdentifier): T;\n [Type]: string;\n};\n\n/**\n * Wraps a derivation in a new function with Derivation signature but that looks\n * up the value in the cache before recomputing.\n *\n * @param record\n * @param options\n * @param prop\n */\nfunction makeCachedDerivation<R, T, FM extends ObjectValue | null>(\n derivation: Derivation<R, T, FM>\n): Derivation<R, T, FM> {\n const memoizedDerivation = (record: R, options: FM, prop: string): T => {\n const signals = (record as { [Signals]: Map<string, Signal> })[Signals];\n let signal = signals.get(prop);\n if (!signal) {\n signal = createCache(() => {\n return derivation(record, options, prop);\n }) as unknown as Signal; // a total lie, for convenience of reusing the storage\n signals.set(prop, signal);\n }\n\n return getValue(signal as unknown as ReturnType<typeof createCache>) as T;\n };\n memoizedDerivation[Type] = derivation[Type];\n return memoizedDerivation;\n}\n\nexport interface SchemaService {\n doesTypeExist(type: string): boolean;\n attributesDefinitionFor(identifier: { type: string }): InternalSchema['attributes'];\n relationshipsDefinitionFor(identifier: { type: string }): InternalSchema['relationships'];\n}\nexport class SchemaService implements SchemaServiceInterface {\n declare _schemas: Map<string, InternalSchema>;\n declare _transforms: Map<string, Transformation>;\n declare _hashFns: Map<string, HashFn>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n declare _derivations: Map<string, Derivation<any, any, any>>;\n declare _traits: Set<string>;\n\n constructor() {\n this._schemas = new Map();\n this._transforms = new Map();\n this._hashFns = new Map();\n this._derivations = new Map();\n }\n hasTrait(type: string): boolean {\n return this._traits.has(type);\n }\n resourceHasTrait(resource: StableRecordIdentifier | { type: string }, trait: string): boolean {\n return this._schemas.get(resource.type)!.traits.has(trait);\n }\n transformation(field: GenericField | ObjectField | ArrayField | { type: string }): Transformation {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `'${kind}' fields cannot be transformed. Only fields of kind 'field' 'object' or 'array' can specify a transformation. Attempted to find '${field.type ?? '<unknown type>'}' on field '${name}'.`,\n !('kind' in field) || ['field', 'object', 'array'].includes(kind)\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a transformation via 'field.type', but none was present`,\n field.type\n );\n assert(\n `No transformation registered with name '${field.type}' for '${kind}' field '${name}'`,\n this._transforms.has(field.type)\n );\n return this._transforms.get(field.type)!;\n }\n derivation(field: DerivedField | { type: string }): Derivation {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `The '${kind}' field '${name}' is not derived and so cannot be used to lookup a derivation`,\n !('kind' in field) || kind === 'derived'\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a derivation via 'field.type', but no value was present`,\n field.type\n );\n assert(\n `No '${field.type}' derivation registered for use by the '${kind}' field '${name}'`,\n this._derivations.has(field.type)\n );\n return this._derivations.get(field.type)!;\n }\n hashFn(field: HashField | { type: string }): HashFn {\n const kind = 'kind' in field ? field.kind : '<unknown kind>';\n const name = 'name' in field ? field.name : '<unknown name>';\n assert(\n `The '${kind}' field '${name}' is not a HashField and so cannot be used to lookup a hash function`,\n !('kind' in field) || kind === '@hash'\n );\n assert(\n `Expected the '${kind}' field '${name}' to specify a hash function via 'field.type', but no value was present`,\n field.type\n );\n assert(\n `No '${field.type}' hash function is registered for use by the '${kind}' field '${name}'`,\n this._hashFns.has(field.type)\n );\n return this._hashFns.get(field.type)!;\n }\n resource(resource: StableRecordIdentifier | { type: string }): ResourceSchema {\n assert(`No resource registered with name '${resource.type}'`, this._schemas.has(resource.type));\n return this._schemas.get(resource.type)!.original;\n }\n registerResources(schemas: ResourceSchema[]): void {\n schemas.forEach((schema) => {\n this.registerResource(schema);\n });\n }\n registerResource(schema: ResourceSchema): void {\n const fields = new Map<string, FieldSchema>();\n const relationships: Record<string, LegacyRelationshipSchema> = {};\n const attributes: Record<string, LegacyAttributeField> = {};\n\n schema.fields.forEach((field) => {\n assert(\n `${field.kind} is not valid inside a ResourceSchema's fields.`,\n // @ts-expect-error we are checking for mistakes at runtime\n field.kind !== '@id' && field.kind !== '@hash'\n );\n fields.set(field.name, field);\n if (field.kind === 'attribute') {\n attributes[field.name] = field;\n } else if (field.kind === 'belongsTo' || field.kind === 'hasMany') {\n relationships[field.name] = field;\n }\n });\n\n const traits = new Set<string>(schema.traits);\n traits.forEach((trait) => {\n this._traits.add(trait);\n });\n\n const internalSchema: InternalSchema = { original: schema, fields, relationships, attributes, traits };\n this._schemas.set(schema.type, internalSchema);\n }\n\n registerTransformation<T extends Value = string, PT = unknown>(transformation: Transformation<T, PT>): void {\n this._transforms.set(transformation[Type], transformation as Transformation);\n }\n\n registerDerivation<R, T, FM extends ObjectValue | null>(derivation: Derivation<R, T, FM>): void {\n this._derivations.set(derivation[Type], makeCachedDerivation(derivation));\n }\n\n registerHashFn<T extends object>(hashFn: HashFn<T>): void {\n this._hashFns.set(hashFn[Type], hashFn as HashFn);\n }\n\n fields({ type }: { type: string }): InternalSchema['fields'] {\n const schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.fields;\n }\n\n hasResource(resource: { type: string }): boolean {\n return this._schemas.has(resource.type);\n }\n}\n\nif (ENABLE_LEGACY_SCHEMA_SERVICE) {\n SchemaService.prototype.attributesDefinitionFor = function ({\n type,\n }: {\n type: string;\n }): InternalSchema['attributes'] {\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 schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.attributes;\n };\n\n SchemaService.prototype.relationshipsDefinitionFor = function ({\n type,\n }: {\n type: string;\n }): InternalSchema['relationships'] {\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 schema = this._schemas.get(type);\n\n if (!schema) {\n throw new Error(`No schema defined for ${type}`);\n }\n\n return schema.relationships;\n };\n\n SchemaService.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._schemas.has(type);\n };\n}\n"],"names":["Support","getOrSetGlobal","WeakMap","SchemaRecordFields","type","name","kind","options","key","_constructor","record","state","get","set","recordIdentifierFor","modelName","Error","Type","withDefaults","schema","identity","fields","push","fromIdentity","identifier","Identifier","macroCondition","getGlobalConfig","WarpDrive","env","DEBUG","test","String","includes","registerDerivations","registerDerivation","makeCachedDerivation","derivation","memoizedDerivation","prop","signals","Signals","signal","createCache","getValue","SchemaService","constructor","_schemas","Map","_transforms","_hashFns","_derivations","hasTrait","_traits","has","resourceHasTrait","resource","trait","traits","transformation","field","hashFn","original","registerResources","schemas","forEach","registerResource","relationships","attributes","Set","add","internalSchema","registerTransformation","registerHashFn","hasResource","deprecations","ENABLE_LEGACY_SCHEMA_SERVICE","prototype","attributesDefinitionFor","deprecate","id","until","for","since","available","enabled","relationshipsDefinitionFor","doesTypeExist"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warp-drive/schema-record",
3
- "version": "0.0.0-beta.8",
3
+ "version": "0.0.0",
4
4
  "description": "Schema Driven Resource Presentation for WarpDrive and EmberData",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -12,11 +12,6 @@
12
12
  },
13
13
  "license": "MIT",
14
14
  "author": "",
15
- "scripts": {
16
- "lint": "eslint . --quiet --cache --cache-strategy=content --report-unused-disable-directives",
17
- "build:pkg": "vite build;",
18
- "sync-hardlinks": "bun run sync-dependencies-meta-injected"
19
- },
20
15
  "ember-addon": {
21
16
  "main": "addon-main.cjs",
22
17
  "type": "addon",
@@ -34,14 +29,18 @@
34
29
  "exports": {
35
30
  "./*": {
36
31
  "default": "./dist/*.js"
32
+ },
33
+ "./unstable-preview-types": {
34
+ "types": "./unstable-preview-types/index.d.ts"
37
35
  }
38
36
  },
39
37
  "peerDependencies": {
40
- "@ember-data/request": "5.4.0-beta.8",
41
- "@ember-data/model": "5.4.0-beta.8",
42
- "@ember-data/store": "5.4.0-beta.8",
43
- "@ember-data/tracking": "5.4.0-beta.8",
44
- "@warp-drive/core-types": "0.0.0-beta.8"
38
+ "ember-source": "3.28.12 || ^4.0.4 || ^5.0.0 || ^6.0.0",
39
+ "@ember-data/request": "5.3.10",
40
+ "@ember-data/model": "5.3.10",
41
+ "@ember-data/store": "5.3.10",
42
+ "@ember-data/tracking": "5.3.10",
43
+ "@warp-drive/core-types": "0.0.0"
45
44
  },
46
45
  "peerDependenciesMeta": {
47
46
  "@ember-data/model": {
@@ -75,37 +74,49 @@
75
74
  }
76
75
  },
77
76
  "dependencies": {
78
- "@embroider/macros": "^1.16.1",
79
- "@warp-drive/build-config": "0.0.0-beta.3"
77
+ "@embroider/macros": "^1.16.6",
78
+ "@warp-drive/build-config": "0.0.0"
80
79
  },
81
80
  "devDependencies": {
82
81
  "@babel/core": "^7.24.5",
83
82
  "@babel/plugin-transform-typescript": "^7.24.5",
84
83
  "@babel/preset-env": "^7.24.5",
85
84
  "@babel/preset-typescript": "^7.24.1",
86
- "@ember-data/request": "5.4.0-beta.8",
87
- "@ember-data/model": "5.4.0-beta.8",
88
- "@ember-data/store": "5.4.0-beta.8",
89
- "@ember-data/legacy-compat": "5.4.0-beta.8",
90
- "@ember-data/tracking": "5.4.0-beta.8",
91
- "@ember-data/request-utils": "5.4.0-beta.8",
85
+ "@ember-data/request": "5.3.10",
86
+ "@ember-data/model": "5.3.10",
87
+ "@ember-data/store": "5.3.10",
88
+ "@ember-data/legacy-compat": "5.3.10",
89
+ "@ember-data/tracking": "5.3.10",
90
+ "@ember-data/request-utils": "5.3.10",
92
91
  "@ember/test-waiters": "^3.1.0",
93
92
  "@glimmer/component": "^1.1.2",
94
- "@warp-drive/core-types": "0.0.0-beta.8",
95
- "@warp-drive/internal-config": "5.4.0-beta.8",
96
- "ember-source": "~5.8.0",
93
+ "@warp-drive/core-types": "0.0.0",
94
+ "@warp-drive/internal-config": "5.3.10",
95
+ "ember-source": "~5.12.0",
97
96
  "pnpm-sync-dependencies-meta-injected": "0.0.14",
98
- "typescript": "^5.4.5",
97
+ "typescript": "^5.7.2",
99
98
  "vite": "^5.2.11"
100
99
  },
101
100
  "ember": {
102
101
  "edition": "octane"
103
102
  },
104
103
  "engines": {
105
- "node": ">= 18.20.3"
104
+ "node": ">= 18.20.4"
106
105
  },
107
106
  "volta": {
108
107
  "extends": "../../package.json"
109
108
  },
110
- "packageManager": "pnpm@8.15.8"
111
- }
109
+ "packageManager": "pnpm@8.15.9",
110
+ "typesVersions": {
111
+ "*": {
112
+ "unstable-preview-types": [
113
+ "./unstable-preview-types"
114
+ ]
115
+ }
116
+ },
117
+ "scripts": {
118
+ "lint": "eslint . --quiet --cache --cache-strategy=content",
119
+ "build:pkg": "vite build;",
120
+ "sync-hardlinks": "bun run sync-dependencies-meta-injected"
121
+ }
122
+ }
@@ -7,19 +7,21 @@ declare module '@warp-drive/schema-record/-private/compute' {
7
7
  import type { ArrayField, DerivedField, FieldSchema, GenericField, LocalField, ObjectField, SchemaArrayField, SchemaObjectField } from '@warp-drive/core-types/schema/fields';
8
8
  import type { Links } from '@warp-drive/core-types/spec/json-api-raw';
9
9
  import { RecordStore } from '@warp-drive/core-types/symbols';
10
- import type { SchemaRecord } from '@warp-drive/schema-record/record';
10
+ import { SchemaRecord } from '@warp-drive/schema-record/record';
11
11
  import type { SchemaService } from '@warp-drive/schema-record/schema';
12
12
  import { Parent } from '@warp-drive/schema-record/symbols';
13
13
  import { ManagedArray } from '@warp-drive/schema-record/-private/managed-array';
14
14
  import { ManagedObject } from '@warp-drive/schema-record/-private/managed-object';
15
15
  export const ManagedArrayMap: Map<SchemaRecord, Map<FieldSchema, ManagedArray>>;
16
- export const ManagedObjectMap: Map<SchemaRecord, Map<FieldSchema, ManagedObject>>;
16
+ export const ManagedObjectMap: Map<SchemaRecord, Map<FieldSchema, SchemaRecord | ManagedObject>>;
17
17
  export function computeLocal(record: typeof Proxy<SchemaRecord>, field: LocalField, prop: string): unknown;
18
18
  export function peekManagedArray(record: SchemaRecord, field: FieldSchema): ManagedArray | undefined;
19
- export function peekManagedObject(record: SchemaRecord, field: FieldSchema): ManagedObject | undefined;
19
+ export function peekManagedObject(record: SchemaRecord, field: ObjectField): ManagedObject | undefined;
20
+ export function peekManagedObject(record: SchemaRecord, field: SchemaObjectField): SchemaRecord | undefined;
20
21
  export function computeField(schema: SchemaService, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: GenericField, prop: string | string[]): unknown;
21
- export function computeArray(store: Store, schema: SchemaService, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: ArrayField | SchemaArrayField, path: string[], isSchemaArray?: boolean): ManagedArray | null;
22
- export function computeObject(store: Store, schema: SchemaService, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: ObjectField | SchemaObjectField, prop: string, isSchemaObject?: boolean): ManagedObject | null;
22
+ export function computeArray(store: Store, schema: SchemaService, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: ArrayField | SchemaArrayField, path: string[], isSchemaArray: boolean, editable: boolean, legacy: boolean): ManagedArray | null;
23
+ export function computeObject(schema: SchemaService, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: ObjectField, path: string[], editable: boolean, legacy: boolean): SchemaRecord | ManagedObject | null;
24
+ export function computeSchemaObject(store: Store, cache: Cache, record: SchemaRecord, identifier: StableRecordIdentifier, field: SchemaObjectField, path: string[], legacy: boolean, editable: boolean): SchemaRecord | ManagedObject | null;
23
25
  export function computeAttribute(cache: Cache, identifier: StableRecordIdentifier, prop: string): unknown;
24
26
  export function computeDerivation(schema: SchemaService, record: SchemaRecord, identifier: StableRecordIdentifier, field: DerivedField, prop: string): unknown;
25
27
  class ResourceRelationship<T extends SchemaRecord = SchemaRecord> {
@@ -1 +1 @@
1
- {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../src/-private/compute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../src/-private/compute.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,20 @@ declare module '@warp-drive/schema-record/-private/managed-array' {
6
6
  import type { ArrayField, SchemaArrayField } from '@warp-drive/core-types/schema/fields';
7
7
  import { SchemaRecord } from '@warp-drive/schema-record/record';
8
8
  import type { SchemaService } from '@warp-drive/schema-record/schema';
9
- import { ARRAY_SIGNAL, MUTATE, SOURCE } from '@warp-drive/schema-record/symbols';
9
+ import { ARRAY_SIGNAL, Editable, Legacy, MUTATE, SOURCE } from '@warp-drive/schema-record/symbols';
10
10
  export function notifyArray(arr: ManagedArray): void;
11
11
  export interface ManagedArray extends Omit<Array<unknown>, '[]'> {
12
12
  [MUTATE]?(target: unknown[], receiver: typeof Proxy<unknown[]>, prop: string, args: unknown[], _SIGNAL: Signal): unknown;
13
13
  }
14
14
  export class ManagedArray {
15
15
  [SOURCE]: unknown[];
16
- address: StableRecordIdentifier;
16
+ identifier: StableRecordIdentifier;
17
17
  path: string[];
18
18
  owner: SchemaRecord;
19
19
  [ARRAY_SIGNAL]: Signal;
20
- constructor(store: Store, schema: SchemaService, cache: Cache, field: ArrayField | SchemaArrayField, data: unknown[], address: StableRecordIdentifier, path: string[], owner: SchemaRecord, isSchemaArray: boolean);
20
+ [Editable]: boolean;
21
+ [Legacy]: boolean;
22
+ constructor(store: Store, schema: SchemaService, cache: Cache, field: ArrayField | SchemaArrayField, data: unknown[], identifier: StableRecordIdentifier, path: string[], owner: SchemaRecord, isSchemaArray: boolean, editable: boolean, legacy: boolean);
21
23
  }
22
24
  }
23
25
  //# sourceMappingURL=managed-array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"managed-array.d.ts","sourceRoot":"","sources":["../../src/-private/managed-array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAG5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAK,EAAE,UAAU,EAAa,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAgC,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,QAE5C;AA+ED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAC9D,CAAC,MAAM,CAAC,CAAC,CACP,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;CACZ;AAED,qBAAa,YAAY;IACvB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACZ,OAAO,EAAE,sBAAsB,CAAC;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAG7B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,OAAO;CAwMzB"}
1
+ {"version":3,"file":"managed-array.d.ts","sourceRoot":"","sources":["../../src/-private/managed-array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAG5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAK,EAAE,UAAU,EAAa,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAc,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhG,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,QAE5C;AAkFD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAC9D,CAAC,MAAM,CAAC,CAAC,CACP,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;CACZ;AAED,qBAAa,YAAY;IACvB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACZ,UAAU,EAAE,sBAAsB,CAAC;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGxB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,IAAI,EAAE,OAAO,EAAE,EACf,UAAU,EAAE,sBAAsB,EAClC,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,YAAY,EACnB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO;CAwOlB"}
@@ -1,23 +1,23 @@
1
1
  declare module '@warp-drive/schema-record/-private/managed-object' {
2
- import type Store from '@ember-data/store';
3
2
  import type { Signal } from '@ember-data/tracking/-private';
4
3
  import type { StableRecordIdentifier } from '@warp-drive/core-types';
5
4
  import type { Cache } from '@warp-drive/core-types/cache';
6
5
  import type { ObjectField, SchemaObjectField } from '@warp-drive/core-types/schema/fields';
7
6
  import type { SchemaRecord } from '@warp-drive/schema-record/record';
8
7
  import type { SchemaService } from '@warp-drive/schema-record/schema';
9
- import { MUTATE, OBJECT_SIGNAL, SOURCE } from '@warp-drive/schema-record/symbols';
8
+ import { Editable, EmbeddedPath, Legacy, MUTATE, OBJECT_SIGNAL, Parent, SOURCE } from '@warp-drive/schema-record/symbols';
10
9
  export function notifyObject(obj: ManagedObject): void;
11
10
  export interface ManagedObject {
12
11
  [MUTATE]?(target: unknown[], receiver: typeof Proxy<unknown[]>, prop: string, args: unknown[], _SIGNAL: Signal): unknown;
13
12
  }
14
13
  export class ManagedObject {
15
14
  [SOURCE]: object;
16
- address: StableRecordIdentifier;
17
- key: string;
18
- owner: SchemaRecord;
15
+ [Parent]: StableRecordIdentifier;
16
+ [EmbeddedPath]: string[];
19
17
  [OBJECT_SIGNAL]: Signal;
20
- constructor(store: Store, schema: SchemaService, cache: Cache, field: ObjectField | SchemaObjectField, data: object, address: StableRecordIdentifier, key: string, owner: SchemaRecord, isSchemaObject: boolean);
18
+ [Editable]: boolean;
19
+ [Legacy]: boolean;
20
+ constructor(schema: SchemaService, cache: Cache, field: ObjectField | SchemaObjectField, data: object, identifier: StableRecordIdentifier, path: string[], owner: SchemaRecord, editable: boolean, legacy: boolean);
21
21
  }
22
22
  }
23
23
  //# sourceMappingURL=managed-object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"managed-object.d.ts","sourceRoot":"","sources":["../../src/-private/managed-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,QAE9C;AAID,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,CAAC,CAAC,CACP,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;CACZ;AAED,qBAAa,aAAa;IACxB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACT,OAAO,EAAE,sBAAsB,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;gBAG9B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,GAAG,iBAAiB,EACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,OAAO;CAmH1B"}
1
+ {"version":3,"file":"managed-object.d.ts","sourceRoot":"","sources":["../../src/-private/managed-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAG5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEnG,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,QAE9C;AAQD,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,CAAC,CAAC,CACP,MAAM,EAAE,OAAO,EAAE,EACjB,QAAQ,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EAAE,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;CACZ;AAED,qBAAa,aAAa;IAChB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IACjC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAGxB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,GAAG,iBAAiB,EACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,sBAAsB,EAClC,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO;CAiGlB"}
@@ -1,7 +1,7 @@
1
- /// <reference path="./symbols.d.ts" />
2
- /// <reference path="./record.d.ts" />
3
1
  /// <reference path="./hooks.d.ts" />
2
+ /// <reference path="./symbols.d.ts" />
4
3
  /// <reference path="./schema.d.ts" />
4
+ /// <reference path="./record.d.ts" />
5
5
  /// <reference path="./-private/managed-array.d.ts" />
6
- /// <reference path="./-private/managed-object.d.ts" />
7
- /// <reference path="./-private/compute.d.ts" />
6
+ /// <reference path="./-private/compute.d.ts" />
7
+ /// <reference path="./-private/managed-object.d.ts" />
@@ -4,7 +4,7 @@ declare module '@warp-drive/schema-record/record' {
4
4
  import type { StableRecordIdentifier } from '@warp-drive/core-types';
5
5
  import { RecordStore } from '@warp-drive/core-types/symbols';
6
6
  import { Checkout, Destroy, Editable, EmbeddedPath, EmbeddedType, Identifier, Legacy, Parent } from '@warp-drive/schema-record/symbols';
7
- export { Editable, Legacy } from '@warp-drive/schema-record/symbols';
7
+ export { Editable, Legacy, Checkout } from '@warp-drive/schema-record/symbols';
8
8
  export class SchemaRecord {
9
9
  [RecordStore]: Store;
10
10
  [Identifier]: StableRecordIdentifier;
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAA+C,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAElH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAgB7D,OAAO,EAEL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EAEN,MAAM,EACP,MAAM,WAAW,CAAC;AAOnB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAsB7C,qBAAa,YAAY;IACf,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IACrB,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACrC,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IACjC,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,gBAAgB,MAAM,GAAG,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC;gBAG/B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,sBAAsB,EAClC,IAAI,EAAE;QAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAChD,UAAU,UAAQ,EAClB,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,YAAY,GAAE,MAAM,EAAE,GAAG,IAAW;IAmftC,CAAC,OAAO,CAAC,IAAI,IAAI;IASjB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC;CAGpC"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAA+C,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAElH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAiB7D,OAAO,EAEL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EAEN,MAAM,EACP,MAAM,WAAW,CAAC;AAOnB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAuBvD,qBAAa,YAAY;IACf,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IACrB,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACrC,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IACjC,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,gBAAgB,MAAM,GAAG,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC;gBAG/B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,sBAAsB,EAClC,IAAI,EAAE;QAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAChD,UAAU,UAAQ,EAClB,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,YAAY,GAAE,MAAM,EAAE,GAAG,IAAW;IAkjBtC,CAAC,OAAO,CAAC,IAAI,IAAI;IASjB,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC;CA4BpC"}