@flighthq/share 0.5.1-next.815.cc08b93 → 0.5.1-next.903.f434bc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/share`. The `@flight
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/share@0.5.1-next.815.cc08b93](https://github.com/flighthq/flight/tree/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/packages/share)
17
- - [License](https://github.com/flighthq/flight/blob/cc08b93ef981080fa86bdd5143dc61dbdbf2665b/LICENSE.md)
16
+ - [Source for @flighthq/share@0.5.1-next.903.f434bc2](https://github.com/flighthq/flight/tree/f434bc233778d75aeea61995df3a8cfaec459a85/packages/share)
17
+ - [License](https://github.com/flighthq/flight/blob/f434bc233778d75aeea61995df3a8cfaec459a85/LICENSE.md)
package/dist/share.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { HasShareContent, HasShareFiles, ShareContent, ShareFile, ShareResult, ShareSignals } from '@flighthq/types/contract';
1
+ import type { EntityConstruction, HasShareContent, HasShareFiles, ShareContent, ShareFile, ShareResult, ShareSignals } from '@flighthq/types/contract';
2
2
  export declare function attachShareSignals(signals: ShareSignals): void;
3
3
  export declare function canShareContent(host: HasShareContent, content: Readonly<ShareContent>): boolean;
4
4
  export declare function canShareFiles(host: HasShareFiles, files: readonly ShareFile[]): boolean;
@@ -6,6 +6,7 @@ export declare function detachShareSignals(signals: ShareSignals): void;
6
6
  export declare function disposeShareSignals(signals: ShareSignals): void;
7
7
  export declare function enableShareSignals(): ShareSignals;
8
8
  export declare function hasShareContentFields(content: Readonly<ShareContent>): boolean;
9
+ export declare function initializeShareSignals(out: EntityConstruction<ShareSignals>): void;
9
10
  export declare function shareContent(host: HasShareContent, content: Readonly<ShareContent>): Promise<boolean>;
10
11
  export declare function shareContentWithResult(host: HasShareContent, content: Readonly<ShareContent>): Promise<ShareResult>;
11
12
  export declare function shareFiles(host: HasShareFiles, files: readonly ShareFile[]): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EAET,WAAW,EACX,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAE/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAGvF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAG/D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAK9E;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrG;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7E"}
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EAET,WAAW,EACX,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAE/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAGvF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAG/D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAIjD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAK9E;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,IAAI,CAElF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrG;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC9B,OAAO,CAAC,WAAW,CAAC,CAStB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAI7F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7E"}
package/dist/share.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { clearSignal, createSignal, emitSignal } from '@flighthq/signals/contract';
3
3
  export function attachShareSignals(signals) {
4
4
  _attachedSignals.add(signals);
@@ -20,7 +20,9 @@ export function disposeShareSignals(signals) {
20
20
  clearSignal(signals.onShareResult);
21
21
  }
22
22
  export function enableShareSignals() {
23
- return createEntity({ onShareResult: createSignal() });
23
+ const out = allocateEntity();
24
+ initializeShareSignals(out);
25
+ return finishEntity(out);
24
26
  }
25
27
  export function hasShareContentFields(content) {
26
28
  if (content.title !== undefined && content.title !== '')
@@ -31,6 +33,9 @@ export function hasShareContentFields(content) {
31
33
  return true;
32
34
  return false;
33
35
  }
36
+ export function initializeShareSignals(out) {
37
+ out.onShareResult = createSignal();
38
+ }
34
39
  export function shareContent(host, content) {
35
40
  if (!hasShareContentFields(content))
36
41
  return Promise.resolve(false);
package/dist/share.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/share",
3
- "version": "0.5.1-next.815.cc08b93",
3
+ "version": "0.5.1-next.903.f434bc2",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.815.cc08b93",
42
- "@flighthq/signals": "0.5.1-next.815.cc08b93",
43
- "@flighthq/types": "0.5.1-next.815.cc08b93"
41
+ "@flighthq/entity": "0.5.1-next.903.f434bc2",
42
+ "@flighthq/signals": "0.5.1-next.903.f434bc2",
43
+ "@flighthq/types": "0.5.1-next.903.f434bc2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.3.0"
package/src/share.test.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { createEntity } from '@flighthq/entity/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import { connectSignal } from '@flighthq/signals/contract';
3
3
  import { EntityRuntimeKey } from '@flighthq/types/contract';
4
4
  import type {
@@ -26,31 +26,32 @@ import {
26
26
  shareUrl,
27
27
  } from './share';
28
28
 
29
- type ContentImplementation = Omit<ShareContentBackend, typeof EntityRuntimeKey>;
30
- type FilesImplementation = Omit<ShareFilesBackend, typeof EntityRuntimeKey>;
31
-
32
- function contentHost(overrides: Partial<ContentImplementation> = {}): HasShareContent {
29
+ function contentHost(overrides: Partial<ShareContentBackend> = {}): HasShareContent {
33
30
  return {
34
31
  share: {
35
- content: createEntity({
36
- canShareContent: () => true,
37
- shareContent: async () => true,
38
- shareContentWithResult: async () => ({ activityType: null, completed: true, dismissed: false }),
39
- ...overrides,
40
- } satisfies ContentImplementation),
32
+ content: (() => {
33
+ const out = allocateEntity<ShareContentBackend>();
34
+ out.canShareContent = () => true;
35
+ out.shareContent = async () => true;
36
+ out.shareContentWithResult = async () => ({ activityType: null, completed: true, dismissed: false });
37
+ Object.assign(out, overrides);
38
+ return finishEntity(out);
39
+ })(),
41
40
  },
42
41
  };
43
42
  }
44
43
 
45
- function filesHost(overrides: Partial<FilesImplementation> = {}): HasShareFiles {
44
+ function filesHost(overrides: Partial<ShareFilesBackend> = {}): HasShareFiles {
46
45
  return {
47
46
  share: {
48
- files: createEntity({
49
- canShareContent: () => true,
50
- shareContent: async () => true,
51
- shareContentWithResult: async () => ({ activityType: null, completed: true, dismissed: false }),
52
- ...overrides,
53
- } satisfies FilesImplementation),
47
+ files: (() => {
48
+ const out = allocateEntity<ShareFilesBackend>();
49
+ out.canShareContent = () => true;
50
+ out.shareContent = async () => true;
51
+ out.shareContentWithResult = async () => ({ activityType: null, completed: true, dismissed: false });
52
+ Object.assign(out, overrides);
53
+ return finishEntity(out);
54
+ })(),
54
55
  },
55
56
  };
56
57
  }
@@ -139,6 +140,7 @@ describe('Share contract surface', () => {
139
140
  'disposeShareSignals',
140
141
  'enableShareSignals',
141
142
  'hasShareContentFields',
143
+ 'initializeShareSignals',
142
144
  'shareContent',
143
145
  'shareContentWithResult',
144
146
  'shareFiles',
@@ -1,20 +1,19 @@
1
- import { createEntity } from '@flighthq/entity/contract';
2
- import type { EntityRuntimeKey, HasShareContent, ShareContentBackend } from '@flighthq/types/contract';
1
+ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ import type { HasShareContent, ShareContent, ShareContentBackend } from '@flighthq/types/contract';
3
3
 
4
4
  import { shareText } from './share';
5
5
 
6
6
  function createRecordingHost(label: string, calls: string[]): HasShareContent {
7
- const content = createEntity({
8
- canShareContent: () => true,
9
- async shareContent(payload) {
10
- calls.push(`${label}:${payload.text ?? ''}`);
11
- return true;
12
- },
13
- async shareContentWithResult() {
14
- return { activityType: null, completed: true, dismissed: false };
15
- },
16
- } satisfies Omit<ShareContentBackend, typeof EntityRuntimeKey>);
17
- return { share: { content } };
7
+ const content = allocateEntity<ShareContentBackend>();
8
+ content.canShareContent = () => true;
9
+ content.shareContent = async (payload: Readonly<ShareContent>) => {
10
+ calls.push(`${label}:${payload.text ?? ''}`);
11
+ return true;
12
+ };
13
+ content.shareContentWithResult = async () => {
14
+ return { activityType: null, completed: true, dismissed: false };
15
+ };
16
+ return { share: { content: finishEntity(content) } };
18
17
  }
19
18
 
20
19
  describe('explicit Share host isolation', () => {