expo-linking 55.0.14 → 55.0.16

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/linking/ExpoLinkingModule.kt +4 -0
  4. package/build/ExpoLinking.d.ts +1 -0
  5. package/build/ExpoLinking.d.ts.map +1 -1
  6. package/build/ExpoLinking.js.map +1 -1
  7. package/build/ExpoLinking.web.d.ts +1 -0
  8. package/build/ExpoLinking.web.d.ts.map +1 -1
  9. package/build/ExpoLinking.web.js +1 -0
  10. package/build/ExpoLinking.web.js.map +1 -1
  11. package/build/Linking.d.ts +9 -0
  12. package/build/Linking.d.ts.map +1 -1
  13. package/build/Linking.js +11 -0
  14. package/build/Linking.js.map +1 -1
  15. package/build/Linking.server.d.ts +1 -0
  16. package/build/Linking.server.d.ts.map +1 -1
  17. package/build/Linking.server.js +1 -0
  18. package/build/Linking.server.js.map +1 -1
  19. package/expo-module.config.json +1 -1
  20. package/ios/ExpoLinkingModule.swift +4 -0
  21. package/ios/ExpoLinkingRegistry.swift +19 -2
  22. package/local-maven-repo/host/exp/exponent/expo.modules.linking/{55.0.14/expo.modules.linking-55.0.14-sources.jar → 55.0.16/expo.modules.linking-55.0.16-sources.jar} +0 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16-sources.jar.md5 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16-sources.jar.sha1 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16-sources.jar.sha256 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16-sources.jar.sha512 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.aar +0 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.aar.md5 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.aar.sha1 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.aar.sha256 +1 -0
  31. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.aar.sha512 +1 -0
  32. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.module +87 -0
  33. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.module.md5 +1 -0
  34. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.module.sha1 +1 -0
  35. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.module.sha256 +1 -0
  36. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.module.sha512 +1 -0
  37. package/local-maven-repo/host/exp/exponent/expo.modules.linking/{55.0.14/expo.modules.linking-55.0.14.pom → 55.0.16/expo.modules.linking-55.0.16.pom} +1 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.pom.md5 +1 -0
  39. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.pom.sha1 +1 -0
  40. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.pom.sha256 +1 -0
  41. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.16/expo.modules.linking-55.0.16.pom.sha512 +1 -0
  42. package/local-maven-repo/host/exp/exponent/expo.modules.linking/maven-metadata.xml +4 -4
  43. package/local-maven-repo/host/exp/exponent/expo.modules.linking/maven-metadata.xml.md5 +1 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.linking/maven-metadata.xml.sha1 +1 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.linking/maven-metadata.xml.sha256 +1 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.linking/maven-metadata.xml.sha512 +1 -1
  47. package/package.json +3 -3
  48. package/src/ExpoLinking.ts +1 -0
  49. package/src/ExpoLinking.web.ts +2 -0
  50. package/src/Linking.server.ts +2 -0
  51. package/src/Linking.ts +12 -0
  52. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14-sources.jar.md5 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14-sources.jar.sha1 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14-sources.jar.sha256 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14-sources.jar.sha512 +0 -1
  56. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.aar +0 -0
  57. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.aar.md5 +0 -1
  58. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.aar.sha1 +0 -1
  59. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.aar.sha256 +0 -1
  60. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.aar.sha512 +0 -1
  61. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.module +0 -87
  62. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.module.md5 +0 -1
  63. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.module.sha1 +0 -1
  64. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.module.sha256 +0 -1
  65. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.module.sha512 +0 -1
  66. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.pom.md5 +0 -1
  67. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.pom.sha1 +0 -1
  68. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.pom.sha256 +0 -1
  69. package/local-maven-repo/host/exp/exponent/expo.modules.linking/55.0.14/expo.modules.linking-55.0.14.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,16 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 55.0.16 — 2026-06-25
14
+
15
+ ### 🎉 New features
16
+
17
+ - Added `Linking.clearInitialURL()` to reset the cached deep-link URL. ([#46265](https://github.com/expo/expo/pull/46265) by @gabrieldonadel)
18
+
19
+ ## 55.0.15 — 2026-05-05
20
+
21
+ _This version does not introduce any user-facing changes._
22
+
13
23
  ## 55.0.14 — 2026-04-21
14
24
 
15
25
  _This version does not introduce any user-facing changes._
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '55.0.14'
7
+ version = '55.0.16'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.linking"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "55.0.14"
13
+ versionName "55.0.16"
14
14
  }
15
15
  lintOptions {
16
16
  abortOnError false
@@ -23,6 +23,10 @@ class ExpoLinkingModule : Module() {
23
23
  initialURL?.toString()
24
24
  }
25
25
 
26
+ Function("clearInitialURL") {
27
+ initialURL = null
28
+ }
29
+
26
30
  OnStartObserving("onURLReceived") {
27
31
  val weakModule = WeakReference(this@ExpoLinkingModule)
28
32
  val observer: (Uri?) -> Unit = { uri: Uri? ->
@@ -4,6 +4,7 @@ type ExpoLinkingModuleEvents = {
4
4
  };
5
5
  declare class ExpoLinkingNativeModule extends NativeModule<ExpoLinkingModuleEvents> {
6
6
  getLinkingURL(): string | null;
7
+ clearInitialURL(): void;
7
8
  }
8
9
  declare const ExpoLinking: ExpoLinkingNativeModule;
9
10
  export default ExpoLinking;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoLinking.d.ts","sourceRoot":"","sources":["../src/ExpoLinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,KAAK,uBAAuB,GAAG;IAC7B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,OAAO,OAAO,uBAAwB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IACjF,aAAa,IAAI,MAAM,GAAG,IAAI;CAC/B;AAED,QAAA,MAAM,WAAW,yBAA8D,CAAC;AAChF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ExpoLinking.d.ts","sourceRoot":"","sources":["../src/ExpoLinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtE,KAAK,uBAAuB,GAAG;IAC7B,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,OAAO,OAAO,uBAAwB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IACjF,aAAa,IAAI,MAAM,GAAG,IAAI;IAC9B,eAAe,IAAI,IAAI;CACxB;AAED,QAAA,MAAM,WAAW,yBAA8D,CAAC;AAChF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoLinking.js","sourceRoot":"","sources":["../src/ExpoLinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAgB,MAAM,mBAAmB,CAAC;AAUtE,MAAM,WAAW,GAAG,mBAAmB,CAA0B,aAAa,CAAC,CAAC;AAChF,eAAe,WAAW,CAAC","sourcesContent":["import { requireNativeModule, NativeModule } from 'expo-modules-core';\n\ntype ExpoLinkingModuleEvents = {\n onURLReceived(url: string): void;\n};\n\ndeclare class ExpoLinkingNativeModule extends NativeModule<ExpoLinkingModuleEvents> {\n getLinkingURL(): string | null;\n}\n\nconst ExpoLinking = requireNativeModule<ExpoLinkingNativeModule>('ExpoLinking');\nexport default ExpoLinking;\n"]}
1
+ {"version":3,"file":"ExpoLinking.js","sourceRoot":"","sources":["../src/ExpoLinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAgB,MAAM,mBAAmB,CAAC;AAWtE,MAAM,WAAW,GAAG,mBAAmB,CAA0B,aAAa,CAAC,CAAC;AAChF,eAAe,WAAW,CAAC","sourcesContent":["import { requireNativeModule, NativeModule } from 'expo-modules-core';\n\ntype ExpoLinkingModuleEvents = {\n onURLReceived(url: string): void;\n};\n\ndeclare class ExpoLinkingNativeModule extends NativeModule<ExpoLinkingModuleEvents> {\n getLinkingURL(): string | null;\n clearInitialURL(): void;\n}\n\nconst ExpoLinking = requireNativeModule<ExpoLinkingNativeModule>('ExpoLinking');\nexport default ExpoLinking;\n"]}
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  remove(): void;
5
5
  };
6
6
  getLinkingURL(): string;
7
+ clearInitialURL(): void;
7
8
  };
8
9
  export default _default;
9
10
  //# sourceMappingURL=ExpoLinking.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoLinking.web.d.ts","sourceRoot":"","sources":["../src/ExpoLinking.web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;2BAGrB,eAAe,GAAG,MAAM,YAAY,WAAW,GAAG;QAAE,MAAM,IAAI,IAAI,CAAA;KAAE;qBAoB1E,MAAM;;AArBzB,wBAyBE"}
1
+ {"version":3,"file":"ExpoLinking.web.d.ts","sourceRoot":"","sources":["../src/ExpoLinking.web.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;2BAGrB,eAAe,GAAG,MAAM,YAAY,WAAW,GAAG;QAAE,MAAM,IAAI,IAAI,CAAA;KAAE;qBAoB1E,MAAM;uBAKJ,IAAI;;AA1BzB,wBA2BE"}
@@ -19,5 +19,6 @@ export default {
19
19
  return '';
20
20
  return window.location.href;
21
21
  },
22
+ clearInitialURL() { },
22
23
  };
23
24
  //# sourceMappingURL=ExpoLinking.web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoLinking.web.js","sourceRoot":"","sources":["../src/ExpoLinking.web.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAIlC,eAAe;IACb,WAAW,CAAC,SAAmC,EAAE,QAAqB;QACpE,SAAS,CACP,SAAS,KAAK,eAAe,EAC7B,0BAA0B,SAAS,uBAAuB,CAC3D,CAAC;QACF,qCAAqC;QACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,KAAI,CAAC,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,WAAyB,EAAE,EAAE,CACnD,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO;YACL,MAAM,EAAE,GAAG,EAAE;gBACX,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACxD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF,CAAC","sourcesContent":["import invariant from 'invariant';\n\nimport { URLListener } from './Linking.types';\n\nexport default {\n addListener(eventName: 'onURLReceived' | string, listener: URLListener): { remove(): void } {\n invariant(\n eventName === 'onURLReceived',\n `Linking.addListener(): ${eventName} is not a valid event`\n );\n // Do nothing in Node.js environments\n if (typeof window === 'undefined') {\n return { remove() {} };\n }\n\n const nativeListener = (nativeEvent: MessageEvent) =>\n listener({ url: window.location.href, nativeEvent });\n window.addEventListener('message', nativeListener, false);\n return {\n remove: () => {\n window.removeEventListener('message', nativeListener);\n },\n };\n },\n\n getLinkingURL(): string {\n if (typeof window === 'undefined') return '';\n return window.location.href;\n },\n};\n"]}
1
+ {"version":3,"file":"ExpoLinking.web.js","sourceRoot":"","sources":["../src/ExpoLinking.web.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAC;AAIlC,eAAe;IACb,WAAW,CAAC,SAAmC,EAAE,QAAqB;QACpE,SAAS,CACP,SAAS,KAAK,eAAe,EAC7B,0BAA0B,SAAS,uBAAuB,CAC3D,CAAC;QACF,qCAAqC;QACrC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,KAAI,CAAC,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,WAAyB,EAAE,EAAE,CACnD,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO;YACL,MAAM,EAAE,GAAG,EAAE;gBACX,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACxD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,eAAe,KAAU,CAAC;CAC3B,CAAC","sourcesContent":["import invariant from 'invariant';\n\nimport { URLListener } from './Linking.types';\n\nexport default {\n addListener(eventName: 'onURLReceived' | string, listener: URLListener): { remove(): void } {\n invariant(\n eventName === 'onURLReceived',\n `Linking.addListener(): ${eventName} is not a valid event`\n );\n // Do nothing in Node.js environments\n if (typeof window === 'undefined') {\n return { remove() {} };\n }\n\n const nativeListener = (nativeEvent: MessageEvent) =>\n listener({ url: window.location.href, nativeEvent });\n window.addEventListener('message', nativeListener, false);\n return {\n remove: () => {\n window.removeEventListener('message', nativeListener);\n },\n };\n },\n\n getLinkingURL(): string {\n if (typeof window === 'undefined') return '';\n return window.location.href;\n },\n\n clearInitialURL(): void {},\n};\n"]}
@@ -39,6 +39,15 @@ export declare function getInitialURL(): Promise<string | null>;
39
39
  * @return The URL string that launched your app, or `null`.
40
40
  */
41
41
  export declare function getLinkingURL(): string | null;
42
+ /**
43
+ * Clears the cached initial URL used to launch the app, subsequent
44
+ * calls to [`getLinkingURL()`] return `null` until a new deep link is received.
45
+ *
46
+ * On web this is a no-op.
47
+ * @platform android
48
+ * @platform ios
49
+ */
50
+ export declare function clearInitialURL(): void;
42
51
  /**
43
52
  * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)
44
53
  * for more information.
@@ -1 +1 @@
1
- {"version":3,"file":"Linking.d.ts","sourceRoot":"","sources":["../src/Linking.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAY,MAAM,cAAc,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM3E;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,mBAAmB,CAEvF;AAGD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAY/D;AAGD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3F;AAGD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlD;AAGD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C;AAGD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxD;AAGD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAGD;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,MAAM,GAAG,IAAI,CActC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAa7C;AAED,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"Linking.d.ts","sourceRoot":"","sources":["../src/Linking.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAY,MAAM,cAAc,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM3E;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,mBAAmB,CAEvF;AAGD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAY/D;AAGD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3F;AAGD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlD;AAGD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAGD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxD;AAGD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9D;AAGD;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,MAAM,GAAG,IAAI,CActC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAa7C;AAED,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/build/Linking.js CHANGED
@@ -79,6 +79,17 @@ export async function getInitialURL() {
79
79
  export function getLinkingURL() {
80
80
  return ExpoLinking.getLinkingURL();
81
81
  }
82
+ /**
83
+ * Clears the cached initial URL used to launch the app, subsequent
84
+ * calls to [`getLinkingURL()`] return `null` until a new deep link is received.
85
+ *
86
+ * On web this is a no-op.
87
+ * @platform android
88
+ * @platform ios
89
+ */
90
+ export function clearInitialURL() {
91
+ ExpoLinking.clearInitialURL?.();
92
+ }
82
93
  // @needsAudit
83
94
  /**
84
95
  * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)
@@ -1 +1 @@
1
- {"version":3,"file":"Linking.js","sourceRoot":"","sources":["../src/Linking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAuB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,cAAc;AACd;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAW,EAAE,OAAoB;IAChE,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,cAAc;AACd;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC;AAED,cAAc;AACd;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,MAA2B;IAC1E,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,cAAc;AACd;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;AACjC,CAAC;AAED,cAAc;AACd;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,CAAC,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC;AACrC,CAAC;AAED,cAAc;AACd;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,cAAc;AACd;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,cAAc;AACd;;;;GAIG;AACH,MAAM,UAAU,MAAM;IACpB,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAErD,SAAS,QAAQ,CAAC,KAAsB;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,WAAW,CAAC,aAAa,CAAC,CAAC;IAE1E,SAAS,QAAQ,CAAC,KAAsB;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,eAAe,EAAE,QAAe,CAAC,CAAC;QAC/E,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\nimport { useEffect, useState } from 'react';\nimport { EmitterSubscription, Platform } from 'react-native';\n\nimport ExpoLinking from './ExpoLinking';\nimport { ParsedURL, SendIntentExtras, URLListener } from './Linking.types';\nimport RNLinking from './RNLinking';\nimport { parse } from './createURL';\nimport { validateURL } from './validateURL';\n\n// @needsAudit\n/**\n * Add a handler to `Linking` changes by listening to the `url` event type and providing the handler.\n * It is recommended to use the [`useURL()`](#useurl) hook instead.\n * @param type The only valid type is `'url'`.\n * @param handler An [`URLListener`](#urllistener) function that takes an `event` object of the type\n * [`EventType`](#eventtype).\n * @return An EmitterSubscription that has the remove method from EventSubscription\n * @see [React Native documentation on Linking](https://reactnative.dev/docs/linking#addeventlistener).\n */\nexport function addEventListener(type: 'url', handler: URLListener): EmitterSubscription {\n return RNLinking.addEventListener(type, handler);\n}\n\n// @needsAudit\n/**\n * Helper method which wraps React Native's `Linking.getInitialURL()` in `Linking.parse()`.\n * Parses the deep link information out of the URL used to open the experience initially.\n * If no link opened the app, all the fields will be `null`.\n * > On the web it parses the current window URL.\n * @return A promise that resolves with `ParsedURL` object.\n */\nexport async function parseInitialURLAsync(): Promise<ParsedURL> {\n const initialUrl = await RNLinking.getInitialURL();\n if (!initialUrl) {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n }\n\n return parse(initialUrl);\n}\n\n// @needsAudit\n/**\n * Launch an Android intent with extras.\n * > Use [`expo-intent-launcher`](./intent-launcher) instead. `sendIntent` is only included in\n * > `Linking` for API compatibility with React Native's Linking API.\n * @platform android\n */\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise<void> {\n if (Platform.OS === 'android') {\n return await RNLinking.sendIntent(action, extras);\n }\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\n// @needsAudit\n/**\n * Open the operating system settings app and displays the app’s custom settings, if it has any.\n */\nexport async function openSettings(): Promise<void> {\n if (Platform.OS === 'web') {\n throw new UnavailabilityError('Linking', 'openSettings');\n }\n if (RNLinking.openSettings) {\n return await RNLinking.openSettings();\n }\n await openURL('app-settings:');\n}\n\n// @needsAudit\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport async function getInitialURL(): Promise<string | null> {\n return (await RNLinking.getInitialURL()) ?? null;\n}\n\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport function getLinkingURL(): string | null {\n return ExpoLinking.getLinkingURL();\n}\n\n// @needsAudit\n/**\n * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)\n * for more information.\n * @param url A URL for the operating system to open. For example: `tel:5555555`, `exp://`.\n * @return A `Promise` that is fulfilled with `true` if the link is opened operating system\n * automatically or the user confirms the prompt to open the link. The `Promise` rejects if there\n * are no applications registered for the URL or the user cancels the dialog.\n */\nexport async function openURL(url: string): Promise<true> {\n validateURL(url);\n return await RNLinking.openURL(url);\n}\n\n// @needsAudit\n/**\n * Determine whether or not an installed app can handle a given URL.\n * On web this always returns `true` because there is no API for detecting what URLs can be opened.\n * @param url The URL that you want to test can be opened.\n * @return A `Promise` object that is fulfilled with `true` if the URL can be handled, otherwise it\n * `false` if not.\n * The `Promise` will reject on Android if it was impossible to check if the URL can be opened, and\n * on iOS if you didn't [add the specific scheme in the `LSApplicationQueriesSchemes` key inside **Info.plist**](/guides/linking#linking-from-your-app).\n */\nexport async function canOpenURL(url: string): Promise<boolean> {\n validateURL(url);\n return await RNLinking.canOpenURL(url);\n}\n\n// @needsAudit\n/**\n * Returns the initial URL followed by any subsequent changes to the URL.\n * @deprecated Use `useLinkingURL` hook instead.\n * @return Returns the initial URL or `null`.\n */\nexport function useURL(): string | null {\n const [url, setLink] = useState<string | null>(null);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n getInitialURL().then((url) => setLink(url));\n const subscription = addEventListener('url', onChange);\n return () => subscription.remove();\n }, []);\n\n return url;\n}\n\n/**\n * Returns the linking URL followed by any subsequent changes to the URL.\n * Always returns the initial URL immediately on reload.\n * @return Returns the initial URL or `null`.\n */\nexport function useLinkingURL(): string | null {\n const [url, setLink] = useState<string | null>(ExpoLinking.getLinkingURL);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n const subscription = ExpoLinking.addListener('onURLReceived', onChange as any);\n return () => subscription.remove();\n }, []);\n\n return url ?? null;\n}\n\nexport * from './Linking.types';\nexport * from './Schemes';\nexport { parse, createURL } from './createURL';\n"]}
1
+ {"version":3,"file":"Linking.js","sourceRoot":"","sources":["../src/Linking.ts"],"names":[],"mappings":"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","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\nimport { useEffect, useState } from 'react';\nimport { EmitterSubscription, Platform } from 'react-native';\n\nimport ExpoLinking from './ExpoLinking';\nimport { ParsedURL, SendIntentExtras, URLListener } from './Linking.types';\nimport RNLinking from './RNLinking';\nimport { parse } from './createURL';\nimport { validateURL } from './validateURL';\n\n// @needsAudit\n/**\n * Add a handler to `Linking` changes by listening to the `url` event type and providing the handler.\n * It is recommended to use the [`useURL()`](#useurl) hook instead.\n * @param type The only valid type is `'url'`.\n * @param handler An [`URLListener`](#urllistener) function that takes an `event` object of the type\n * [`EventType`](#eventtype).\n * @return An EmitterSubscription that has the remove method from EventSubscription\n * @see [React Native documentation on Linking](https://reactnative.dev/docs/linking#addeventlistener).\n */\nexport function addEventListener(type: 'url', handler: URLListener): EmitterSubscription {\n return RNLinking.addEventListener(type, handler);\n}\n\n// @needsAudit\n/**\n * Helper method which wraps React Native's `Linking.getInitialURL()` in `Linking.parse()`.\n * Parses the deep link information out of the URL used to open the experience initially.\n * If no link opened the app, all the fields will be `null`.\n * > On the web it parses the current window URL.\n * @return A promise that resolves with `ParsedURL` object.\n */\nexport async function parseInitialURLAsync(): Promise<ParsedURL> {\n const initialUrl = await RNLinking.getInitialURL();\n if (!initialUrl) {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n }\n\n return parse(initialUrl);\n}\n\n// @needsAudit\n/**\n * Launch an Android intent with extras.\n * > Use [`expo-intent-launcher`](./intent-launcher) instead. `sendIntent` is only included in\n * > `Linking` for API compatibility with React Native's Linking API.\n * @platform android\n */\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise<void> {\n if (Platform.OS === 'android') {\n return await RNLinking.sendIntent(action, extras);\n }\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\n// @needsAudit\n/**\n * Open the operating system settings app and displays the app’s custom settings, if it has any.\n */\nexport async function openSettings(): Promise<void> {\n if (Platform.OS === 'web') {\n throw new UnavailabilityError('Linking', 'openSettings');\n }\n if (RNLinking.openSettings) {\n return await RNLinking.openSettings();\n }\n await openURL('app-settings:');\n}\n\n// @needsAudit\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport async function getInitialURL(): Promise<string | null> {\n return (await RNLinking.getInitialURL()) ?? null;\n}\n\n/**\n * Get the URL that was used to launch the app if it was launched by a link.\n * @return The URL string that launched your app, or `null`.\n */\nexport function getLinkingURL(): string | null {\n return ExpoLinking.getLinkingURL();\n}\n\n/**\n * Clears the cached initial URL used to launch the app, subsequent\n * calls to [`getLinkingURL()`] return `null` until a new deep link is received.\n *\n * On web this is a no-op.\n * @platform android\n * @platform ios\n */\nexport function clearInitialURL(): void {\n ExpoLinking.clearInitialURL?.();\n}\n\n// @needsAudit\n/**\n * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)\n * for more information.\n * @param url A URL for the operating system to open. For example: `tel:5555555`, `exp://`.\n * @return A `Promise` that is fulfilled with `true` if the link is opened operating system\n * automatically or the user confirms the prompt to open the link. The `Promise` rejects if there\n * are no applications registered for the URL or the user cancels the dialog.\n */\nexport async function openURL(url: string): Promise<true> {\n validateURL(url);\n return await RNLinking.openURL(url);\n}\n\n// @needsAudit\n/**\n * Determine whether or not an installed app can handle a given URL.\n * On web this always returns `true` because there is no API for detecting what URLs can be opened.\n * @param url The URL that you want to test can be opened.\n * @return A `Promise` object that is fulfilled with `true` if the URL can be handled, otherwise it\n * `false` if not.\n * The `Promise` will reject on Android if it was impossible to check if the URL can be opened, and\n * on iOS if you didn't [add the specific scheme in the `LSApplicationQueriesSchemes` key inside **Info.plist**](/guides/linking#linking-from-your-app).\n */\nexport async function canOpenURL(url: string): Promise<boolean> {\n validateURL(url);\n return await RNLinking.canOpenURL(url);\n}\n\n// @needsAudit\n/**\n * Returns the initial URL followed by any subsequent changes to the URL.\n * @deprecated Use `useLinkingURL` hook instead.\n * @return Returns the initial URL or `null`.\n */\nexport function useURL(): string | null {\n const [url, setLink] = useState<string | null>(null);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n getInitialURL().then((url) => setLink(url));\n const subscription = addEventListener('url', onChange);\n return () => subscription.remove();\n }, []);\n\n return url;\n}\n\n/**\n * Returns the linking URL followed by any subsequent changes to the URL.\n * Always returns the initial URL immediately on reload.\n * @return Returns the initial URL or `null`.\n */\nexport function useLinkingURL(): string | null {\n const [url, setLink] = useState<string | null>(ExpoLinking.getLinkingURL);\n\n function onChange(event: { url: string }) {\n setLink(event.url);\n }\n\n useEffect(() => {\n const subscription = ExpoLinking.addListener('onURLReceived', onChange as any);\n return () => subscription.remove();\n }, []);\n\n return url ?? null;\n}\n\nexport * from './Linking.types';\nexport * from './Schemes';\nexport { parse, createURL } from './createURL';\n"]}
@@ -7,6 +7,7 @@ export declare function sendIntent(action: string, extras?: SendIntentExtras[]):
7
7
  export declare function openSettings(): Promise<void>;
8
8
  export declare function getInitialURL(): Promise<string | null>;
9
9
  export declare function getLinkingURL(): string;
10
+ export declare function clearInitialURL(): void;
10
11
  export declare function openURL(url: string): Promise<true>;
11
12
  export declare function canOpenURL(): Promise<boolean>;
12
13
  export declare function useURL(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"Linking.server.d.ts","sourceRoot":"","sources":["../src/Linking.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW;;EAEjE;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAO/D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D;AAED,wBAAgB,aAAa,WAE5B;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,wBAAsB,UAAU,qBAE/B;AAED,wBAAgB,MAAM,IAAI,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,aAAa,SAE5B;AAED,cAAc,iBAAiB,CAAC;AAEhC,wBAAgB,sBAAsB,YAErC;AAED,wBAAgB,oBAAoB,YAEnC;AAED,wBAAgB,eAAe,YAE9B;AAED,wBAAgB,aAAa,WAE5B;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"Linking.server.d.ts","sourceRoot":"","sources":["../src/Linking.server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW;;EAEjE;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,SAAS,CAAC,CAO/D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3F;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE5D;AAED,wBAAgB,aAAa,WAE5B;AAED,wBAAgB,eAAe,IAAI,IAAI,CAAG;AAE1C,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,wBAAsB,UAAU,qBAE/B;AAED,wBAAgB,MAAM,IAAI,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,aAAa,SAE5B;AAED,cAAc,iBAAiB,CAAC;AAEhC,wBAAgB,sBAAsB,YAErC;AAED,wBAAgB,oBAAoB,YAEnC;AAED,wBAAgB,eAAe,YAE9B;AAED,wBAAgB,aAAa,WAE5B;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -22,6 +22,7 @@ export async function getInitialURL() {
22
22
  export function getLinkingURL() {
23
23
  return '';
24
24
  }
25
+ export function clearInitialURL() { }
25
26
  export async function openURL(url) {
26
27
  return true;
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Linking.server.js","sourceRoot":"","sources":["../src/Linking.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,UAAU,gBAAgB,CAAC,IAAW,EAAE,OAAoB;IAChE,OAAO,EAAE,MAAM,KAAI,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,MAA2B;IAC1E,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,cAAc,iBAAiB,CAAC;AAEhC,MAAM,UAAU,sBAAsB;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\n\nimport { ParsedURL, SendIntentExtras, URLListener } from './Linking.types';\n\nexport function addEventListener(type: 'url', handler: URLListener) {\n return { remove() {} };\n}\n\nexport async function parseInitialURLAsync(): Promise<ParsedURL> {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n}\n\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise<void> {\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\nexport async function openSettings(): Promise<void> {\n throw new UnavailabilityError('Linking', 'openSettings');\n}\n\nexport async function getInitialURL(): Promise<string | null> {\n return '';\n}\n\nexport function getLinkingURL() {\n return '';\n}\n\nexport async function openURL(url: string): Promise<true> {\n return true;\n}\n\nexport async function canOpenURL() {\n return true;\n}\n\nexport function useURL(): string | null {\n return null;\n}\n\nexport function useLinkingURL() {\n return null;\n}\n\nexport * from './Linking.types';\n\nexport function collectManifestSchemes() {\n return [];\n}\n\nexport function hasConstantsManifest() {\n return false;\n}\n\nexport function hasCustomScheme() {\n return false;\n}\n\nexport function resolveScheme() {\n return '';\n}\n\nexport { parse, createURL } from './createURL';\n"]}
1
+ {"version":3,"file":"Linking.server.js","sourceRoot":"","sources":["../src/Linking.server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,UAAU,gBAAgB,CAAC,IAAW,EAAE,OAAoB;IAChE,OAAO,EAAE,MAAM,KAAI,CAAC,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,MAA2B;IAC1E,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,KAAU,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,cAAc,iBAAiB,CAAC;AAEhC,MAAM,UAAU,sBAAsB;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sourcesContent":["import { UnavailabilityError } from 'expo-modules-core';\n\nimport { ParsedURL, SendIntentExtras, URLListener } from './Linking.types';\n\nexport function addEventListener(type: 'url', handler: URLListener) {\n return { remove() {} };\n}\n\nexport async function parseInitialURLAsync(): Promise<ParsedURL> {\n return {\n scheme: null,\n hostname: null,\n path: null,\n queryParams: null,\n };\n}\n\nexport async function sendIntent(action: string, extras?: SendIntentExtras[]): Promise<void> {\n throw new UnavailabilityError('Linking', 'sendIntent');\n}\n\nexport async function openSettings(): Promise<void> {\n throw new UnavailabilityError('Linking', 'openSettings');\n}\n\nexport async function getInitialURL(): Promise<string | null> {\n return '';\n}\n\nexport function getLinkingURL() {\n return '';\n}\n\nexport function clearInitialURL(): void {}\n\nexport async function openURL(url: string): Promise<true> {\n return true;\n}\n\nexport async function canOpenURL() {\n return true;\n}\n\nexport function useURL(): string | null {\n return null;\n}\n\nexport function useLinkingURL() {\n return null;\n}\n\nexport * from './Linking.types';\n\nexport function collectManifestSchemes() {\n return [];\n}\n\nexport function hasConstantsManifest() {\n return false;\n}\n\nexport function hasCustomScheme() {\n return false;\n}\n\nexport function resolveScheme() {\n return '';\n}\n\nexport { parse, createURL } from './createURL';\n"]}
@@ -9,7 +9,7 @@
9
9
  "publication": {
10
10
  "groupId": "host.exp.exponent",
11
11
  "artifactId": "expo.modules.linking",
12
- "version": "55.0.14",
12
+ "version": "55.0.16",
13
13
  "repository": "local-maven-repo"
14
14
  }
15
15
  }
@@ -21,6 +21,10 @@ public class ExpoLinkingModule: Module {
21
21
  Function("getLinkingURL") {
22
22
  return ExpoLinkingRegistry.shared.initialURL?.absoluteString
23
23
  }
24
+
25
+ Function("clearInitialURL") {
26
+ ExpoLinkingRegistry.shared.initialURL = nil
27
+ }
24
28
  }
25
29
 
26
30
  @objc func handleURLReceivedNotification(_ notification: Notification) {
@@ -1,8 +1,25 @@
1
+ import Foundation
2
+
1
3
  typealias OnURLReceivedCallback = (URL) -> Void
2
4
 
3
- class ExpoLinkingRegistry {
5
+ public let clearInitialURLNotification = Notification.Name("ExpoLinkingClearInitialURL")
6
+
7
+ class ExpoLinkingRegistry: NSObject {
4
8
  static let shared = ExpoLinkingRegistry()
5
9
  var initialURL: URL?
6
10
 
7
- private init() { }
11
+ private override init() {
12
+ super.init()
13
+ NotificationCenter.default.addObserver(
14
+ self,
15
+ selector: #selector(handleClearInitialURL),
16
+ name: clearInitialURLNotification,
17
+ object: nil
18
+ )
19
+ }
20
+
21
+ @objc
22
+ private func handleClearInitialURL() {
23
+ initialURL = nil
24
+ }
8
25
  }
@@ -0,0 +1 @@
1
+ a00ae7ad7f5d07a33f01b8af1caa9877b157308b68cff84358de4343c90fb61c
@@ -0,0 +1 @@
1
+ 3ea069737364b616948902aef961a3831d0e9fd65b34c28f475f883e9e7ab4248668d85c48ea7f7815dd86e1f19e6c61d64564bb2cd06f5b56cda5fbe7fa4d6c
@@ -0,0 +1 @@
1
+ 877938747e9d6fb3576223ac8e1f2bd7b4e626667b54f5c1fd667a53656c0a48
@@ -0,0 +1 @@
1
+ 3d3947df56b4e05856f66d8b8b0d6913dccdebabd534f8d4c9c484f78d1cbf1204bc3aa85bac3ba7a823854ca49bfa4267371cc81a89bb950f2bd613f998eb6a
@@ -0,0 +1,87 @@
1
+ {
2
+ "formatVersion": "1.1",
3
+ "component": {
4
+ "group": "host.exp.exponent",
5
+ "module": "expo.modules.linking",
6
+ "version": "55.0.16",
7
+ "attributes": {
8
+ "org.gradle.status": "release"
9
+ }
10
+ },
11
+ "createdBy": {
12
+ "gradle": {
13
+ "version": "9.0.0"
14
+ }
15
+ },
16
+ "variants": [
17
+ {
18
+ "name": "releaseVariantReleaseApiPublication",
19
+ "attributes": {
20
+ "org.gradle.category": "library",
21
+ "org.gradle.dependency.bundling": "external",
22
+ "org.gradle.libraryelements": "aar",
23
+ "org.gradle.usage": "java-api"
24
+ },
25
+ "files": [
26
+ {
27
+ "name": "expo.modules.linking-55.0.16.aar",
28
+ "url": "expo.modules.linking-55.0.16.aar",
29
+ "size": 13020,
30
+ "sha512": "3d3947df56b4e05856f66d8b8b0d6913dccdebabd534f8d4c9c484f78d1cbf1204bc3aa85bac3ba7a823854ca49bfa4267371cc81a89bb950f2bd613f998eb6a",
31
+ "sha256": "877938747e9d6fb3576223ac8e1f2bd7b4e626667b54f5c1fd667a53656c0a48",
32
+ "sha1": "a7bfe5118191635a2a2f7a6f97d473c85bb22b3c",
33
+ "md5": "de85ca6f359b09e41c52a7f0ec33af9a"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "name": "releaseVariantReleaseRuntimePublication",
39
+ "attributes": {
40
+ "org.gradle.category": "library",
41
+ "org.gradle.dependency.bundling": "external",
42
+ "org.gradle.libraryelements": "aar",
43
+ "org.gradle.usage": "java-runtime"
44
+ },
45
+ "dependencies": [
46
+ {
47
+ "group": "org.jetbrains.kotlin",
48
+ "module": "kotlin-stdlib-jdk7",
49
+ "version": {
50
+ "requires": "2.1.20"
51
+ }
52
+ }
53
+ ],
54
+ "files": [
55
+ {
56
+ "name": "expo.modules.linking-55.0.16.aar",
57
+ "url": "expo.modules.linking-55.0.16.aar",
58
+ "size": 13020,
59
+ "sha512": "3d3947df56b4e05856f66d8b8b0d6913dccdebabd534f8d4c9c484f78d1cbf1204bc3aa85bac3ba7a823854ca49bfa4267371cc81a89bb950f2bd613f998eb6a",
60
+ "sha256": "877938747e9d6fb3576223ac8e1f2bd7b4e626667b54f5c1fd667a53656c0a48",
61
+ "sha1": "a7bfe5118191635a2a2f7a6f97d473c85bb22b3c",
62
+ "md5": "de85ca6f359b09e41c52a7f0ec33af9a"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "name": "releaseVariantReleaseSourcePublication",
68
+ "attributes": {
69
+ "org.gradle.category": "documentation",
70
+ "org.gradle.dependency.bundling": "external",
71
+ "org.gradle.docstype": "sources",
72
+ "org.gradle.usage": "java-runtime"
73
+ },
74
+ "files": [
75
+ {
76
+ "name": "expo.modules.linking-55.0.16-sources.jar",
77
+ "url": "expo.modules.linking-55.0.16-sources.jar",
78
+ "size": 2399,
79
+ "sha512": "3ea069737364b616948902aef961a3831d0e9fd65b34c28f475f883e9e7ab4248668d85c48ea7f7815dd86e1f19e6c61d64564bb2cd06f5b56cda5fbe7fa4d6c",
80
+ "sha256": "a00ae7ad7f5d07a33f01b8af1caa9877b157308b68cff84358de4343c90fb61c",
81
+ "sha1": "1b4470675f5e20a168d1bff521317c8a5b16c152",
82
+ "md5": "1db332ac890d60bcde90eb384a4c646b"
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1 @@
1
+ d0eeb8ccf1a1cc4ee3a2112eed69dfabfea032d47b2fe40f03a3d7a430fa5601
@@ -0,0 +1 @@
1
+ cbeb6028914a00778a21535f160e8beb32ed33ecf4f46c0dd6d31ef7967adb400eb73c0c56482063a2289f8c208b99e40532d578175612e9e6ed025a9909d97f
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.linking</artifactId>
12
- <version>55.0.14</version>
12
+ <version>55.0.16</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.linking</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ e76dec55cc3b9f00b3864c25943eed62145453e231b34011727c32672624e9d4
@@ -0,0 +1 @@
1
+ fa12b791b11cf98a37bd5ee922ac87b5b6a82a66b94c22c07a02c953bc758126401ef0940cd219213e5a2f04f325a1a3ef127703fa58eb21a7ca19a9d1a5b257
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.linking</artifactId>
5
5
  <versioning>
6
- <latest>55.0.14</latest>
7
- <release>55.0.14</release>
6
+ <latest>55.0.16</latest>
7
+ <release>55.0.16</release>
8
8
  <versions>
9
- <version>55.0.14</version>
9
+ <version>55.0.16</version>
10
10
  </versions>
11
- <lastUpdated>20260421111030</lastUpdated>
11
+ <lastUpdated>20260625125911</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 89a0c70487cb24ddf6cdbd420d3eba64
1
+ 993c21b2de53cd46a900621d8153ca3a
@@ -1 +1 @@
1
- 02e51658adf41b9ba55c1d2dc49770bac9ddba28
1
+ 833ebd4e4d9d81cab4ac79b95e37943e191aea56
@@ -1 +1 @@
1
- 191d50403df9fd5729e89a5324c540d676889d6b7c30cab250cce749871a4953
1
+ a835b4c452f2ea76427a7e868209b4fe2d980f1dbce5e8cf37562344fd24ad7b
@@ -1 +1 @@
1
- 6c6af573283af5b210c55735a6f24e7fb6fd95bfd9ebd37411dba8724636df4e851c0f059f312ea0c17d7427aad869e6b68baae635a4953a035ba35e6709a98e
1
+ 33cee1e9ab11ca6afa5914d54a2f56d215e4dbd752aab595312f865e48b17019654fa9f12fae32006a99d376666b9154ca41bb966a1d57ed63143d2cb0d00298
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-linking",
3
- "version": "55.0.14",
3
+ "version": "55.0.16",
4
4
  "description": "Create and open deep links universally",
5
5
  "main": "build/Linking.js",
6
6
  "types": "build/Linking.d.ts",
@@ -38,7 +38,7 @@
38
38
  "license": "MIT",
39
39
  "homepage": "https://docs.expo.dev/versions/latest/sdk/linking",
40
40
  "dependencies": {
41
- "expo-constants": "~55.0.15",
41
+ "expo-constants": "~55.0.16",
42
42
  "invariant": "^2.2.4"
43
43
  },
44
44
  "devDependencies": {
@@ -51,5 +51,5 @@
51
51
  "jest": {
52
52
  "preset": "expo-module-scripts"
53
53
  },
54
- "gitHead": "e37e614d97c3ca53f16b91609a787675d044c284"
54
+ "gitHead": "0c1476ccb1494a2019171f5df1d7a1b7803455e9"
55
55
  }
@@ -6,6 +6,7 @@ type ExpoLinkingModuleEvents = {
6
6
 
7
7
  declare class ExpoLinkingNativeModule extends NativeModule<ExpoLinkingModuleEvents> {
8
8
  getLinkingURL(): string | null;
9
+ clearInitialURL(): void;
9
10
  }
10
11
 
11
12
  const ExpoLinking = requireNativeModule<ExpoLinkingNativeModule>('ExpoLinking');
@@ -27,4 +27,6 @@ export default {
27
27
  if (typeof window === 'undefined') return '';
28
28
  return window.location.href;
29
29
  },
30
+
31
+ clearInitialURL(): void {},
30
32
  };
@@ -31,6 +31,8 @@ export function getLinkingURL() {
31
31
  return '';
32
32
  }
33
33
 
34
+ export function clearInitialURL(): void {}
35
+
34
36
  export async function openURL(url: string): Promise<true> {
35
37
  return true;
36
38
  }
package/src/Linking.ts CHANGED
@@ -89,6 +89,18 @@ export function getLinkingURL(): string | null {
89
89
  return ExpoLinking.getLinkingURL();
90
90
  }
91
91
 
92
+ /**
93
+ * Clears the cached initial URL used to launch the app, subsequent
94
+ * calls to [`getLinkingURL()`] return `null` until a new deep link is received.
95
+ *
96
+ * On web this is a no-op.
97
+ * @platform android
98
+ * @platform ios
99
+ */
100
+ export function clearInitialURL(): void {
101
+ ExpoLinking.clearInitialURL?.();
102
+ }
103
+
92
104
  // @needsAudit
93
105
  /**
94
106
  * Attempt to open the given URL with an installed app. See the [Linking guide](/guides/linking)
@@ -1 +0,0 @@
1
- 59d45e2a6cf5b9f1d58570a3a23fbfbcf5eeb66463e7510e727155d94c38cad2
@@ -1 +0,0 @@
1
- d8abe8805c570aa18ee34018f0836e26d825ce9e008a7af2aa9ecc2ffd3f32958037def397960dbdcfb09bfba5938052603637dedc16a6d5d19e92efc0926f47
@@ -1 +0,0 @@
1
- b2e7fe6f8deed45ab138b7575dc620c060a5ae0da829004d71aaa88701aa1f77
@@ -1 +0,0 @@
1
- b2eed551713460d1c11b5570c6e842ccf88505b480be38922e0926ac72182370ea15b1c444cd6ed7b2f32249cd62c39ebf4c931f445308d318b96eb928bd81f7
@@ -1,87 +0,0 @@
1
- {
2
- "formatVersion": "1.1",
3
- "component": {
4
- "group": "host.exp.exponent",
5
- "module": "expo.modules.linking",
6
- "version": "55.0.14",
7
- "attributes": {
8
- "org.gradle.status": "release"
9
- }
10
- },
11
- "createdBy": {
12
- "gradle": {
13
- "version": "9.0.0"
14
- }
15
- },
16
- "variants": [
17
- {
18
- "name": "releaseVariantReleaseApiPublication",
19
- "attributes": {
20
- "org.gradle.category": "library",
21
- "org.gradle.dependency.bundling": "external",
22
- "org.gradle.libraryelements": "aar",
23
- "org.gradle.usage": "java-api"
24
- },
25
- "files": [
26
- {
27
- "name": "expo.modules.linking-55.0.14.aar",
28
- "url": "expo.modules.linking-55.0.14.aar",
29
- "size": 11854,
30
- "sha512": "b2eed551713460d1c11b5570c6e842ccf88505b480be38922e0926ac72182370ea15b1c444cd6ed7b2f32249cd62c39ebf4c931f445308d318b96eb928bd81f7",
31
- "sha256": "b2e7fe6f8deed45ab138b7575dc620c060a5ae0da829004d71aaa88701aa1f77",
32
- "sha1": "44a063ed3278300099d6366b42fd905fbe204271",
33
- "md5": "fb67d01955821bb5067c03e341969795"
34
- }
35
- ]
36
- },
37
- {
38
- "name": "releaseVariantReleaseRuntimePublication",
39
- "attributes": {
40
- "org.gradle.category": "library",
41
- "org.gradle.dependency.bundling": "external",
42
- "org.gradle.libraryelements": "aar",
43
- "org.gradle.usage": "java-runtime"
44
- },
45
- "dependencies": [
46
- {
47
- "group": "org.jetbrains.kotlin",
48
- "module": "kotlin-stdlib-jdk7",
49
- "version": {
50
- "requires": "2.1.20"
51
- }
52
- }
53
- ],
54
- "files": [
55
- {
56
- "name": "expo.modules.linking-55.0.14.aar",
57
- "url": "expo.modules.linking-55.0.14.aar",
58
- "size": 11854,
59
- "sha512": "b2eed551713460d1c11b5570c6e842ccf88505b480be38922e0926ac72182370ea15b1c444cd6ed7b2f32249cd62c39ebf4c931f445308d318b96eb928bd81f7",
60
- "sha256": "b2e7fe6f8deed45ab138b7575dc620c060a5ae0da829004d71aaa88701aa1f77",
61
- "sha1": "44a063ed3278300099d6366b42fd905fbe204271",
62
- "md5": "fb67d01955821bb5067c03e341969795"
63
- }
64
- ]
65
- },
66
- {
67
- "name": "releaseVariantReleaseSourcePublication",
68
- "attributes": {
69
- "org.gradle.category": "documentation",
70
- "org.gradle.dependency.bundling": "external",
71
- "org.gradle.docstype": "sources",
72
- "org.gradle.usage": "java-runtime"
73
- },
74
- "files": [
75
- {
76
- "name": "expo.modules.linking-55.0.14-sources.jar",
77
- "url": "expo.modules.linking-55.0.14-sources.jar",
78
- "size": 2384,
79
- "sha512": "d8abe8805c570aa18ee34018f0836e26d825ce9e008a7af2aa9ecc2ffd3f32958037def397960dbdcfb09bfba5938052603637dedc16a6d5d19e92efc0926f47",
80
- "sha256": "59d45e2a6cf5b9f1d58570a3a23fbfbcf5eeb66463e7510e727155d94c38cad2",
81
- "sha1": "6d333ab0bbfd515cec43299271011985dc02ff1d",
82
- "md5": "ed5b68ea8ace3e98aaaaa1bac77179fb"
83
- }
84
- ]
85
- }
86
- ]
87
- }
@@ -1 +0,0 @@
1
- 33725574413b3a516695952040c283b3770342201eff60fc657b07903f553d41
@@ -1 +0,0 @@
1
- 5d99d57fe006166374f73c15ad205d0fa329d749a5e82dbc758d0c3c3dc5964782d1d00a8f87d1f156ba54c1564e1ccc10bd34451851b9ccf958338fef1d5d6c
@@ -1 +0,0 @@
1
- 3f91cafde34abf208126ff6bc47c1cb46c54360ae6811486d6d1efae923a66c8
@@ -1 +0,0 @@
1
- b39da3a75aa1016a4c83525daaccb914f545a22e491cb83fcc468360f118868d52752d383d77eab8087f8b35856484b870ee0ea38f7848db118ad3a3734460ae