Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
967216e
Change the name for the `Objects` class to `RealtimeObjects` to align…
VeskeR Jun 19, 2025
0b97dc6
Change LiveObjects entry point to `channel.object.get()` and rename `…
VeskeR Sep 16, 2025
c1c6636
Merge pull request #2043 from ably/rename-realtime-objects
VeskeR Aug 21, 2025
13819bf
Update Objects docstrings to not use "root" terminology
VeskeR Sep 24, 2025
1e85995
Add path based subscriptions support for LiveObjects
VeskeR Sep 17, 2025
f9e0437
Use stricter buffer types in the Objects plugin and web BufferUtils
VeskeR Oct 14, 2025
9425fba
Expose full operation object in `ObjectMessage.operation` field for L…
VeskeR Oct 14, 2025
c131f51
Change `WireObjectMessage` to not set undefined keys in decoded data
VeskeR Oct 22, 2025
17f6324
Implement Instance API for LiveObjects PathObject
VeskeR Sep 26, 2025
489603f
Implement LiveMap and LiveCounter creation via value types
VeskeR Sep 17, 2025
72dc80d
Remove obsolete LiveObject subscription API
VeskeR Oct 15, 2025
9e67419
Implement base PathObject class with access and mutation methods
VeskeR Sep 16, 2025
9833a3b
Return `undefined` from Instance access methods on wrong underlying type
VeskeR Oct 10, 2025
0dc0ce6
Remove RealtimeObject.createMap() and .createCounter() methods
VeskeR Oct 10, 2025
1d98cc3
Streamline handling of OBJECT_DELETE operations
VeskeR Nov 4, 2025
79adf75
Merge pull request #2087 from ably/PUB-2059/lo-entry-point-change
VeskeR Oct 9, 2025
b0a5dbe
Merge pull request #2090 from ably/liveobjects/entry-point-docs-change
VeskeR Oct 9, 2025
00a1784
Merge pull request #2091 from ably/PUB-2057/path-object-access-mutation
VeskeR Oct 10, 2025
23b1d35
Merge pull request #2092 from ably/PUB-2063/path-object-instance-api
VeskeR Oct 15, 2025
eb9c2d7
Implement .compact() method for PathObject and Instance types for Liv…
VeskeR Oct 3, 2025
21cb3b0
Merge pull request #2096 from ably/PUB-2060/value-types-object-creation
VeskeR Oct 29, 2025
1c87d9c
Change PathObject/Instance .compact() to return base64-encoded string…
VeskeR Nov 4, 2025
26f2357
Merge pull request #2097 from ably/PUB-2061/pathobject-subscription
VeskeR Nov 4, 2025
63eb761
Implement async iterator subscriptions API for LiveObjects
VeskeR Oct 9, 2025
dd94233
Update LiveObjects batch API to use PathObject/Instance and handle ob…
VeskeR Nov 7, 2025
3838862
Merge pull request #2098 from ably/PUB-2064/compact-representation
VeskeR Nov 5, 2025
1cf3adb
Remove BatchContextOperations conditional type and use explicit typin…
VeskeR Nov 11, 2025
859b87e
Merge pull request #2101 from ably/PUB-2062/subscription-async-iterator
VeskeR Nov 6, 2025
ba2d842
Remove non-path-based API from LiveObjects
VeskeR Nov 11, 2025
89bc5d4
Merge pull request #2107 from ably/PUB-2065/path-based-batch-api
VeskeR Nov 14, 2025
093fd4b
Remove AblyObjectsTypes and expect the types for the object structure…
VeskeR Nov 19, 2025
7b34807
Merge pull request #2108 from ably/liveobjects/remove-non-path-based-api
VeskeR Nov 26, 2025
2d0ff92
Merge pull request #2113 from ably/PUB-3439/remove-AblyObjectsTypes
VeskeR Dec 1, 2025
48cb02c
Fix using CompactedValue incorrectly resolves all primitives to `string`
VeskeR Dec 3, 2025
4bca506
Handle cyclic references in PathObject/Instance .compact() methods
VeskeR Dec 5, 2025
ed761da
Merge pull request #2120 from ably/AIT-45/fix-CompactedValue-resolves…
VeskeR Dec 5, 2025
759e678
Fix type inference in LiveMap.create to catch type errors
VeskeR Dec 10, 2025
050ebdb
Merge pull request #2122 from ably/AIT-29/compact-handle-cyclic-refer…
VeskeR Dec 9, 2025
bb9cf35
Change Instance.id() to Instance.id getter property to better align w…
VeskeR Dec 17, 2025
842fb31
Merge pull request #2125 from ably/AIT-46/fix-livemap.create-type-check
VeskeR Dec 11, 2025
bea397a
Merge pull request #2128 from ably/liveobjects/id-prop
VeskeR Dec 17, 2025
71ca6ef
Add RealtimeChannel.ensureAttached and use it in RealtimePresence
VeskeR Dec 10, 2025
9bde15e
Implicit attach on channel.object.get()
VeskeR Dec 3, 2025
aa0431b
Fix incorrect ObjectIdReference for CompactedJsonValue type
VeskeR Dec 18, 2025
3887fe9
Split PathObject/Instance.compact() into compact() and compactJson()
VeskeR Dec 17, 2025
8dfcbd5
Merge pull request #2119 from ably/AIT-119/object.get-implicit-attach
VeskeR Dec 17, 2025
0f55261
Enable named exports from 'ably/objects' for ESM and CJS consumers
VeskeR Dec 18, 2025
8cd8401
Merge pull request #2129 from ably/liveobjects/compact-and-compactJSON
VeskeR Dec 18, 2025
8e87464
Move Objects types from ably.d.ts to objects.d.ts
VeskeR Dec 18, 2025
1e79b40
Fix typedoc build failing after Objects types move from ably.d.ts to …
VeskeR Dec 18, 2025
8cf606e
Merge pull request #2131 from ably/liveobjects/fix-named-exports
VeskeR Dec 18, 2025
5576f85
Change library/import naming from Objects to LiveObjects
VeskeR Dec 18, 2025
68ab761
Merge pull request #2130 from ably/liveobjects/export-types-from-objects
VeskeR Dec 18, 2025
f9c7d38
Merge pull request #2133 from ably/liveobjects/plugin-name-change
VeskeR Dec 18, 2025
3d96faf
Fix bundle size and liveobjects tests added in https://github.com/abl…
VeskeR Dec 18, 2025
8bbf173
Fix LiveObjects module augmentation for nodenext/node16 `moduleResolu…
VeskeR Dec 18, 2025
918290d
Fix TypeDoc error for "RealtimeChannel.object" link
VeskeR Dec 18, 2025
401130b
Merge pull request #2135 from ably/liveobjects/post-rebase-fixes
VeskeR Dec 19, 2025
e6239d6
Merge pull request #2136 from ably/liveobjects/module-augmentation-wi…
VeskeR Dec 19, 2025
2d49166
Remove @experimental tag for LiveObjects API
VeskeR Dec 19, 2025
09ecb55
Remove RealtimeObject.offAll
VeskeR Dec 19, 2025
96c39f9
Document RealtimeObject.get implicitly attaches now
VeskeR Dec 19, 2025
a7462b1
Handle channel configuration checks on PathObject/Instance level inst…
VeskeR Dec 19, 2025
1e340cf
Merge pull request #2137 from ably/liveobjects/release-todos
VeskeR Dec 19, 2025
0e2063f
Remove unnecessary OnObjectsEventResponse
VeskeR Dec 10, 2025
a72adeb
LiveObjects Path-based API migration guide
VeskeR Dec 10, 2025
108a66d
Phrasing change based on https://github.com/ably/docs/pull/3019#discu…
VeskeR Dec 17, 2025
760ddc2
Add plugin import and `offAll` changes to LiveObjects migration guide
VeskeR Dec 19, 2025
a1fd40c
Merge pull request #2139 from ably/liveobjects/remove-dupe-OnObjectsE…
VeskeR Dec 19, 2025
dc0db9f
Merge pull request #2124 from ably/AIT-31/objects-migration-guide
VeskeR Dec 19, 2025
6782bcd
Make PathObjectSubscriptionRegister.subscribe options null check more…
VeskeR Dec 19, 2025
fc9f7a3
Merge pull request #2140 from ably/liveobjects/null-check-fix
VeskeR Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ ably-js.iml
node_modules
npm-debug.log
.tool-versions
liveobjects.d.mts
build/
react/
typedoc/generated/
Expand Down
26 changes: 20 additions & 6 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ module.exports = function (grunt) {
});
});

grunt.registerTask('build', ['webpack:all', 'build:browser', 'build:node', 'build:push', 'build:objects']);
grunt.registerTask('build', ['webpack:all', 'build:browser', 'build:node', 'build:push', 'build:liveobjects']);

grunt.registerTask('all', ['build', 'requirejs']);

Expand Down Expand Up @@ -138,13 +138,14 @@ module.exports = function (grunt) {
});
});

grunt.registerTask('build:objects', function () {
grunt.registerTask('build:liveobjects:bundle', function () {
var done = this.async();

Promise.all([
esbuild.build(esbuildConfig.objectsPluginConfig),
esbuild.build(esbuildConfig.objectsPluginCdnConfig),
esbuild.build(esbuildConfig.minifiedObjectsPluginCdnConfig),
esbuild.build(esbuildConfig.liveObjectsPluginConfig),
esbuild.build(esbuildConfig.liveObjectsPluginEsmConfig),
esbuild.build(esbuildConfig.liveObjectsPluginCdnConfig),
esbuild.build(esbuildConfig.minifiedLiveObjectsPluginCdnConfig),
])
.then(() => {
done(true);
Expand All @@ -154,10 +155,23 @@ module.exports = function (grunt) {
});
});

grunt.registerTask(
'build:liveobjects:types',
'Generate liveobjects.d.mts from liveobjects.d.ts by adding .js extensions to relative imports',
function () {
const dtsContent = fs.readFileSync('liveobjects.d.ts', 'utf8');
const mtsContent = dtsContent.replace(/from '(\.\/[^']+)'/g, "from '$1.js'");
fs.writeFileSync('liveobjects.d.mts', mtsContent);
grunt.log.ok('Generated liveobjects.d.mts from liveobjects.d.ts');
},
);

grunt.registerTask('build:liveobjects', ['build:liveobjects:bundle', 'build:liveobjects:types']);

grunt.registerTask('test:webserver', 'Launch the Mocha test web server on http://localhost:3000/', [
'build:browser',
'build:push',
'build:objects',
'build:liveobjects',
'checkGitSubmodules',
'mocha:webserver',
]);
Expand Down
Loading
Loading